# HG changeset patch # User Mads Kiilerich # Date 1441575365 -7200 # Node ID 6f60bd9090b14c2e3a04c330ec21c26df9d2c49b # Parent 763dc7a96baea4d3b35a369361d0c8398dde521b# Parent 7918ed61032441408da7a2e818a5bb6ca39dc152 release: merge default to stable for 0.3 diff -r 763dc7a96bae -r 6f60bd9090b1 .hgignore --- a/.hgignore Mon Jul 20 15:07:23 2015 +0200 +++ b/.hgignore Sun Sep 06 23:36:05 2015 +0200 @@ -6,6 +6,8 @@ *.egg-info *.egg *.mo +.eggs/ +tarballcache/ syntax: regexp ^rcextensions @@ -14,6 +16,7 @@ ^docs/build/ ^docs/_build/ ^data$ +^kallithea/tests/data$ ^sql_dumps/ ^\.settings$ ^\.project$ diff -r 763dc7a96bae -r 6f60bd9090b1 .hgtags --- a/.hgtags Mon Jul 20 15:07:23 2015 +0200 +++ b/.hgtags Sun Sep 06 23:36:05 2015 +0200 @@ -56,6 +56,7 @@ 78b53ee0d247f90d51b028307ff5717851b6c265 rhodecode-0.0.1.6.0 351ad34d56321349ff5bd38f537bd768b8efef2e rhodecode-0.0.1.7.0 1f71ef689d2a3c9978cea6591a1f4e9107a5ca83 rhodecode-0.0.1.7.1 +cc48c1541c7e2e84114bf92a0f9cd4b8b1341545 0.0 d17e88a1a88a29f6fac948c94498129e405a40d3 0.1 ad0ce803b40cb17fc3988373052943e041030b02 0.2 c6e32714336345403adf76abb6ebf9b8116fcdc7 0.2.1 diff -r 763dc7a96bae -r 6f60bd9090b1 CONTRIBUTORS --- a/CONTRIBUTORS Mon Jul 20 15:07:23 2015 +0200 +++ b/CONTRIBUTORS Sun Sep 06 23:36:05 2015 +0200 @@ -1,80 +1,110 @@ List of contributors to Kallithea project: - Marcin Kuźmiński - Lukasz Balcerzak - Jason Harris - Thayne Harbaugh - cejones <> - Thomas Waldmann - Lorenzo M. Catucci - Dmitri Kuznetsov <> - Jared Bunting - Steve Romanow - Augosto Hermann - Ankit Solanki - Liad Shani - Les Peabody + + Mads Kiilerich 2012-2015 + Takumi IINO 2012-2015 + Unity Technologies 2012-2015 + Andrew Shadura 2012 2014-2015 + Aras Pranckevičius 2012-2013 2015 + Sean Farley 2013-2015 + Christian Oyarzun 2014-2015 + Joseph Rivera 2014-2015 + Thomas De Schampheleire 2014-2015 + Anatoly Bubenkov 2015 + Andrew Bartlett 2015 + Balázs Úr 2015 + Ben Finney 2015 + Branko Majic 2015 + Daniel Hobley 2015 + David Avigni 2015 + Denis Blanchette 2015 + duanhongyi 2015 + EriCSN Chang 2015 + Étienne Gilli 2015 + Grzegorz Krason 2015 + Jan Heylen 2015 + Kazunari Kobayashi 2015 + Kevin Bullock 2015 + kobanari 2015 + Marc Abramowitz 2015 + Marc Villetard 2015 + Matthias Zilk 2015 + Michael Pohl 2015 + Michael V. DePalatis 2015 + Morten Skaaning 2015 + Nick High 2015 + Niemand Jedermann 2015 + Peter Vitt 2015 + Robert Martinez 2015 + Ronny Pfannschmidt 2015 + Sam Jaques 2015 + Søren Løvborg 2015 + Tuux 2015 + Viktar Palstsiuk 2015 + Dominik Ruf 2012 2014 + Bradley M. Kuhn 2014 + Calinou 2014 + Daniel Anderson 2014 + Henrik Stuart 2014 + Ingo von Borstel 2014 + Jelmer Vernooij 2014 + Jim Hague 2014 + Matt Fellows 2014 + Max Roman 2014 + Michal Čihař 2014 + Na'Tosha Bard 2014 + Rasmus Selsmark 2014 + Tim Freund 2014 + Travis Burtrum 2014 + Zoltan Gyarmati 2014 + Marcin Kuźmiński 2010-2013 + xpol 2012-2013 + Aparkar 2013 + Dennis Brakhane 2013 + Grzegorz Rożniecki 2013 + Jonathan Sternberg 2013 + Leonardo Carneiro 2013 + Magnus Ericmats 2013 + Martin Vium 2013 + Simon Lopez 2013 + Ton Plomp 2013 + Augusto Herrmann 2011-2012 + Dan Sheridan 2012 + Dies Koper 2012 + Erwin Kroon 2012 + H Waldo G 2012 + hppj 2012 + Indra Talip 2012 + mikespook 2012 + nansenat16 2012 + Philip Jameson 2012 + Raoul Thill 2012 + Stefan Engel 2012 + Tony Bussieres 2012 + Vincent Caron 2012 + Vincent Duvert 2012 + Vladislav Poluhin 2012 + Zachary Auclair 2012 + Ankit Solanki 2011 + Dmitri Kuznetsov 2011 + Jared Bunting 2011 + Jason Harris 2011 + Les Peabody 2011 + Liad Shani 2011 + Lorenzo M. Catucci 2011 + Matt Zuba 2011 + Nicolas VINOT 2011 + Shawn K. O'Shea 2011 + Thayne Harbaugh 2011 + Łukasz Balcerzak 2010 + Andrew Kesterson + cejones + David A. Sjøen + James Rhodes Jonas Oberschweiber - Matt Zuba - Aras Pranckevicius - Tony Bussieres - Erwin Kroon - nansenat16 - Vincent Duvert - Takumi IINO - Indra Talip - James Rhodes - Dominik Ruf - xpol - Vincent Caron - Zachary Auclair - Stefan Engel - Andrew Shadura - Raoul Thill - Philip Jameson - Mads Kiilerich - Dan Sheridan - Dennis Brakhane - Simon Lopez - Jonathan Sternberg - Grzegorz Rożniecki - Andrew Kesterson - David A. Sjøen - Jelmer Vernooij larikale - SteveCohen RhodeCode GmbH Sebastian Kreutzberger - thomas - Bradley M. Kuhn - Sean Farley - Martin Vium - Daniel Anderson - Travis Burtrum - Calinou - Christian Oyarzun - Denis Blanchette - duanhongyi - Henrik Stuart - Ingo von Borstel - Jan Heylen - Jim Hague - Joseph Rivera - Kazunari Kobayashi - Matt Fellows - Max Roman - Michael Pohl - Michael V. DePalatis - Michal Čihař - Morten Skaaning - Na'Tosha Bard - Nick High - Niemand Jedermann - Peter Vitt - Sam Jaques - Thomas De Schampheleire - Tuux - Zoltan Gyarmati - Kevin Bullock - Marc Villetard - Matthias Zilk - Tim Freund + Steve Romanow + SteveCohen + Thomas + Thomas Waldmann diff -r 763dc7a96bae -r 6f60bd9090b1 LICENSE.md --- a/LICENSE.md Mon Jul 20 15:07:23 2015 +0200 +++ b/LICENSE.md Sun Sep 06 23:36:05 2015 +0200 @@ -13,7 +13,7 @@ However, the definitive list of copyright holders for this project is kept in [the about page template](kallithea/templates/about.html) so that it is displayed appropriately when Kallithea is installed. This is the most -important place to update copyright notices. +important place to update copyright notices. Third-Party Code Incorporated in Kallithea ========================================== diff -r 763dc7a96bae -r 6f60bd9090b1 MANIFEST.in --- a/MANIFEST.in Mon Jul 20 15:07:23 2015 +0200 +++ b/MANIFEST.in Sun Sep 06 23:36:05 2015 +0200 @@ -17,6 +17,5 @@ recursive-include kallithea/templates * recursive-include kallithea/tests/fixtures * recursive-include kallithea/tests/scripts * +include kallithea/tests/test.ini include kallithea/tests/vcs/aconfig -include production.ini -include test.ini diff -r 763dc7a96bae -r 6f60bd9090b1 README.rst --- a/README.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/README.rst Sun Sep 06 23:36:05 2015 +0200 @@ -2,6 +2,7 @@ Kallithea README ================ + About ----- @@ -21,14 +22,17 @@ Kallithea was forked from RhodeCode in July 2014 and has been heavily modified. + Installation ------------ -Official releases of Kallithea can be installed via:: + +Kallithea requires Python_ 2.x and it is recommended to install it in a +virtualenv_. Official releases of Kallithea can be installed with:: pip install kallithea The development repository is kept very stable and used in production by the -developers - you can do the same. +developers -- you can do the same. Please visit https://docs.kallithea-scm.org/en/latest/installation.html for more details. @@ -44,8 +48,7 @@ https://bitbucket.org/conservancy/kallithea. - -Kallithea Features +Kallithea features ------------------ - Has its own middleware to handle Mercurial_ and Git_ protocol requests. Each @@ -115,11 +118,11 @@ --------- **Kallithea** is maintained by its users who contribute the fixes they would - like to see. +like to see. Get in touch with the rest of the community: -- Join the mailing list users and developers - see +- Join the mailing list users and developers -- see http://lists.sfconservancy.org/mailman/listinfo/kallithea-general. - Use IRC and join #kallithea on FreeNode (irc.freenode.net) or use @@ -161,7 +164,7 @@ - keep the database unconverted (intended for testing and evaluation) - convert the database in a one-time step -Maintaining Interoperability +Maintaining interoperability ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Interoperability with RhodeCode 2.2.X installations is provided so you don't @@ -180,7 +183,7 @@ then you will find this location at ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``. -One-time Conversion +One-time conversion ~~~~~~~~~~~~~~~~~~~ Alternatively, if you would like to convert the database for good, you can use @@ -198,6 +201,32 @@ If you started out using the branding interoperability approach mentioned above, watch out for stray brand.pyc after removing brand.py. +Git hooks +~~~~~~~~~ + +After switching to Kallithea, it will be necessary to update the Git_ hooks in +your repositories. If not, the Git_ hooks from RhodeCode will still be called, +which will cause ``git push`` to fail every time. + +If you do not have any custom Git_ hooks deployed, perform the following steps +(this may take some time depending on the number and size of repositories you +have): + +1. Log-in as an administrator. + +2. Open page *Admin > Settings > Remap and Rescan*. + +3. Turn on the option **Install Git Hooks**. + +4. Turn on the option **Overwrite existing Git hooks**. + +5. Click on the button **Rescan Repositories**. + +If you do have custom hooks, you will need to merge those changes manually. In +order to get sample hooks from Kallithea, the easiest way is to create a new Git_ +repository, and have a look at the hooks deployed there. + + .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _Python: http://www.python.org/ .. _Sphinx: http://sphinx.pocoo.org/ diff -r 763dc7a96bae -r 6f60bd9090b1 development.ini --- a/development.ini Mon Jul 20 15:07:23 2015 +0200 +++ b/development.ini Sun Sep 06 23:36:05 2015 +0200 @@ -16,23 +16,55 @@ pdebug = false ################################################################################ -## Uncomment and replace with the address which should receive ## -## any error reports after application crash ## -## Additionally those settings will be used by Kallithea mailing system ## +## Email settings ## +## ## +## Refer to the documentation ("Email settings") for more details. ## +## ## +## It is recommended to use a valid sender address that passes access ## +## validation and spam filtering in mail servers. ## ################################################################################ -#email_to = admin@localhost -#error_email_from = paste_error@localhost -#app_email_from = kallithea-noreply@localhost -#error_message = + +## 'From' header for application emails. You can optionally add a name. +## Default: +#app_email_from = Kallithea +## Examples: +#app_email_from = Kallithea +#app_email_from = kallithea-noreply@example.com + +## Subject prefix for application emails. +## A space between this prefix and the real subject is automatically added. +## Default: +#email_prefix = +## Example: #email_prefix = [Kallithea] +## Recipients for error emails and fallback recipients of application mails. +## Multiple addresses can be specified, space-separated. +## Only addresses are allowed, do not add any name part. +## Default: +#email_to = +## Examples: +#email_to = admin@example.com +#email_to = admin@example.com another_admin@example.com + +## 'From' header for error emails. You can optionally add a name. +## Default: +#error_email_from = pylons@yourapp.com +## Examples: +#error_email_from = Kallithea Errors +#error_email_from = paste_error@example.com + +## SMTP server settings +## Only smtp_server is mandatory. All other settings take the specified default +## values. #smtp_server = mail.server.com #smtp_username = #smtp_password = -#smtp_port = +#smtp_port = 25 #smtp_use_tls = false -#smtp_use_ssl = true -## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.) +#smtp_use_ssl = false +## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.). +## If empty, use any of the authentication parameters supported by the server. #smtp_auth = [server:main] @@ -99,11 +131,11 @@ #max-requests = 1000 ## enable large buffers -#buffer-size=65535 +#buffer-size = 65535 ## socket and http timeouts ## -#http-timeout=3600 -#socket-timeout=3600 +#http-timeout = 3600 +#socket-timeout = 3600 ## Log requests slower than the specified number of milliseconds. #log-slow = 10 @@ -134,7 +166,7 @@ host = 0.0.0.0 port = 5000 -## prefix middleware for rc +## middleware for hosting the WSGI application under a URL prefix #[filter:proxy-prefix] #use = egg:PasteDeploy#prefix #prefix = / @@ -248,7 +280,6 @@ #issue_server_link_wiki = https://mywiki.com/{id} #issue_prefix_wiki = WIKI- - ## instance-id prefix ## a prefix key for this instance used for cache invalidation when running ## multiple instances of kallithea, make sure it's globally unique for @@ -270,7 +301,6 @@ ## allows to setup custom hooks in settings page allow_custom_hooks_settings = True - #################################### ### CELERY CONFIG #### #################################### @@ -303,79 +333,55 @@ ### BEAKER CACHE #### #################################### -beaker.cache.data_dir=%(here)s/data/cache/data -beaker.cache.lock_dir=%(here)s/data/cache/lock - -beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long +beaker.cache.data_dir = %(here)s/data/cache/data +beaker.cache.lock_dir = %(here)s/data/cache/lock -beaker.cache.super_short_term.type=memory -beaker.cache.super_short_term.expire=10 -beaker.cache.super_short_term.key_length = 256 +beaker.cache.regions = short_term,long_term,sql_cache_short -beaker.cache.short_term.type=memory -beaker.cache.short_term.expire=60 +beaker.cache.short_term.type = memory +beaker.cache.short_term.expire = 60 beaker.cache.short_term.key_length = 256 -beaker.cache.long_term.type=memory -beaker.cache.long_term.expire=36000 +beaker.cache.long_term.type = memory +beaker.cache.long_term.expire = 36000 beaker.cache.long_term.key_length = 256 -beaker.cache.sql_cache_short.type=memory -beaker.cache.sql_cache_short.expire=10 +beaker.cache.sql_cache_short.type = memory +beaker.cache.sql_cache_short.expire = 10 beaker.cache.sql_cache_short.key_length = 256 -beaker.cache.sql_cache_med.type=memory -beaker.cache.sql_cache_med.expire=360 -beaker.cache.sql_cache_med.key_length = 256 - -beaker.cache.sql_cache_long.type=file -beaker.cache.sql_cache_long.expire=3600 -beaker.cache.sql_cache_long.key_length = 256 - #################################### ### BEAKER SESSION #### #################################### + +## Name of session cookie. Should be unique for a given host and path, even when running +## on different ports. Otherwise, cookie sessions will be shared and messed up. +beaker.session.key = kallithea +## Sessions should always only be accessible by the browser, not directly by JavaScript. +beaker.session.httponly = true +## Session lifetime. 2592000 seconds is 30 days. +beaker.session.timeout = 2592000 + +## Server secret used with HMAC to ensure integrity of cookies. +beaker.session.secret = development-not-secret +## Further, encrypt the data with AES. +#beaker.session.encrypt_key = +#beaker.session.validate_key = + ## Type of storage used for the session, current types are ## dbm, file, memcached, database, and memory. -## The storage uses the Container API -## that is also used by the cache system. + +## File system storage of session data. (default) +#beaker.session.type = file -## db session ## +## Cookie only, store all session data inside the cookie. Requires secure secrets. +#beaker.session.type = cookie + +## Database storage of session data. #beaker.session.type = ext:database #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea #beaker.session.table_name = db_session -## encrypted cookie client side session, good for many instances ## -#beaker.session.type = cookie - -## file based cookies (default) ## -#beaker.session.type = file - -## beaker.session.key should be unique for a given host, even when running -## on different ports. Otherwise, cookie sessions will be shared and messed up. -beaker.session.key = kallithea -beaker.session.secret = development-not-secret - -## Secure encrypted cookie. Requires AES and AES python libraries -## you must disable beaker.session.secret to use this -#beaker.session.encrypt_key = -#beaker.session.validate_key = - -## sets session as invalid if it haven't been accessed for given amount of time -beaker.session.timeout = 2592000 -beaker.session.httponly = true -#beaker.session.cookie_path = / - -## uncomment for https secure cookie -beaker.session.secure = false - -## auto save the session to not to use .save() -beaker.session.auto = False - -## default cookie expiration time in seconds `true` expire at browser close ## -#beaker.session.cookie_expires = 3600 - - ############################ ## ERROR HANDLING SYSTEMS ## ############################ @@ -407,10 +413,10 @@ errormator.slow_requests = true ## enable hooking to application loggers -# errormator.logging = true +#errormator.logging = true ## minimum log level for log capture -# errormator.logging.level = WARNING +#errormator.logging.level = WARNING ## send logs only from erroneous/slow requests ## (saves API quota for intensive logging) @@ -423,7 +429,6 @@ ## start with HTTP* this list be extended with additional keywords here errormator.environ_keys_whitelist = - ## list of keywords that should be blanked from request object ## can be string with comma separated list of words in lowercase ## (by default client will always blank keys that contain following words @@ -431,13 +436,11 @@ ## this list be extended with additional keywords set here errormator.request_keys_blacklist = - ## list of namespaces that should be ignores when gathering log entries ## can be string with comma separated list of namespaces ## (by default the client ignores own entries: errormator_client.client) errormator.log_namespace_blacklist = - ################ ### [sentry] ### ################ @@ -456,7 +459,6 @@ sentry.include_paths = sentry.exclude_paths = - ################################################################################ ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ## ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ## @@ -481,10 +483,10 @@ sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60 # POSTGRESQL -# sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea +#sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea # MySQL -# sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea +#sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea # see sqlalchemy docs for others @@ -579,11 +581,11 @@ datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter] -class=kallithea.lib.colored_formatter.ColorFormatter -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatter +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter_sql] -class=kallithea.lib.colored_formatter.ColorFormatterSql -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatterSql +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S diff -r 763dc7a96bae -r 6f60bd9090b1 docs/api/api.rst --- a/docs/api/api.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/api/api.rst Sun Sep 06 23:36:05 2015 +0200 @@ -4,10 +4,9 @@ API === - Kallithea has a simple JSON RPC API with a single schema for calling all API methods. Everything is available by sending JSON encoded http(s) requests to -/_admin/api . +``/_admin/api``. API access for web views @@ -16,12 +15,12 @@ API access can also be turned on for each web view in Kallithea that is decorated with the ``@LoginRequired`` decorator. Some views use ``@LoginRequired(api_access=True)`` and are always available. By default only -RSS/ATOM feed views are enabled. Other views are -only available if they have been white listed. Edit the +RSS/Atom feed views are enabled. Other views are +only available if they have been whitelisted. Edit the ``api_access_controllers_whitelist`` option in your .ini file and define views that should have API access enabled. -For example, to enable API access to patch/diff raw file and archive:: +For example, to enable API access to patch/diff, raw file and archive:: api_access_controllers_whitelist = ChangesetController:changeset_patch, @@ -33,7 +32,7 @@ GET parameter ``?api_key=`` to the URL. Exposing raw diffs is a good way to integrate with -3rd party services like code review, or build farms that could download archives. +third-party services like code review, or build farms that can download archives. API access @@ -50,27 +49,28 @@ For example, to pull to a local "CPython" mirror using curl:: - curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}' + curl https://example.com/_admin/api -X POST -H 'content-type:text/plain' \ + --data-binary '{"id":1,"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}' In general, provide - *id*, a value of any type, can be used to match the response with the request that it is replying to. - *api_key*, for authentication and permission validation. - - *method*, the name of the method to call - a list of available methods can be found below. + - *method*, the name of the method to call -- a list of available methods can be found below. - *args*, the arguments to pass to the method. .. note:: - api_key can be found or set on the user account page + api_key can be found or set on the user account page. The response to the JSON-RPC API call will always be a JSON structure:: { - "id":, # the id that was used in the request - "result": ""|null, # JSON formatted result, null if any errors - "error": "null"| # JSON formatted error (if any) + "id": , # the id that was used in the request + "result": |null, # JSON formatted result (null on error) + "error": null| # JSON formatted error (null on success) } -All responses from API will be ``HTTP/1.0 200 OK``. If there is an error, +All responses from the API will be ``HTTP/1.0 200 OK``. If an error occurs, the reponse will have a failure description in *error* and *result* will be null. @@ -78,7 +78,7 @@ API client ++++++++++ -Kallithea comes with a ``kallithea-api`` command line tool providing a convenient +Kallithea comes with a ``kallithea-api`` command line tool, providing a convenient way to call the JSON-RPC API. For example, to call ``get_repo``:: @@ -106,7 +106,7 @@ kallithea-api --save-config --apihost= --apikey= -This will create a ``~/.config/kallithea`` with the specified hostname and apikey +This will create a ``~/.config/kallithea`` with the specified hostname and API key so you don't have to specify them every time. @@ -136,7 +136,6 @@ result : "Pulled from ``" error : null - rescan_repos ------------ @@ -160,7 +159,6 @@ 'removed': []}" error : null - invalidate_cache ---------------- @@ -183,7 +181,6 @@ result : "Caches of repository ``" error : null - lock ---- @@ -215,7 +212,6 @@ } error : null - get_ip ------ @@ -248,7 +244,6 @@ error : null - get_user -------- @@ -257,7 +252,6 @@ Any userid can be specified when the command is executed using the api_key of a user with admin rights. Regular users can only speicy their own userid. - INPUT:: id : @@ -292,17 +286,14 @@ "repositories_groups": {"Group1": "group.read"} }, } - error: null - get_users --------- List all existing users. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -332,6 +323,7 @@ ] error: null +.. _create-user: create_user ----------- @@ -339,7 +331,6 @@ Create new user. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -376,6 +367,9 @@ } error: null +Example:: + + kallithea-api create_user username:bent email:bent@example.com firstname:Bent lastname:Bentsen extern_type:ldap extern_name:uid=bent,dc=example,dc=com update_user ----------- @@ -383,7 +377,6 @@ Update the given user if such user exists. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -422,14 +415,12 @@ } error: null - delete_user ----------- Delete the given user if such a user exists. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -448,14 +439,12 @@ } error: null - get_user_group -------------- Get an existing user group. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -492,14 +481,12 @@ } error : null - get_user_groups --------------- List all existing user groups. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -520,14 +507,12 @@ ] error : null - create_user_group ----------------- Create a new user group. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -535,7 +520,7 @@ method : "create_user_group" args: { "group_name": "", - "owner" : "", + "owner" : "", "active": " = Optional(True)" } @@ -552,7 +537,6 @@ } error: null - add_user_to_user_group ---------------------- @@ -560,7 +544,6 @@ ``false``. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -581,7 +564,6 @@ } error: null - remove_user_from_user_group --------------------------- @@ -589,7 +571,6 @@ be ``false``. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -610,7 +591,6 @@ } error: null - get_repo -------- @@ -700,7 +680,6 @@ } error: null - get_repos --------- @@ -708,7 +687,6 @@ This command can only be executed using the api_key of a user with admin rights, or that of a regular user with at least read access to the repository. - INPUT:: id : @@ -725,7 +703,7 @@ "repo_name" : "" "repo_type" : "", "clone_uri" : "", - "private": : "", + "private" : "", "created_on" : "", "description" : "", "landing_rev": "", @@ -739,7 +717,6 @@ ] error: null - get_repo_nodes -------------- @@ -747,7 +724,6 @@ It is possible to specify ret_type to show only ``files`` or ``dirs``. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -772,7 +748,6 @@ ] error: null - create_repo ----------- @@ -784,7 +759,6 @@ or that of a regular user with create repository permission. Regular users cannot specify owner parameter. - INPUT:: id : @@ -792,7 +766,7 @@ method : "create_repo" args: { "repo_name" : "", - "owner" : "", + "owner" : "", "repo_type" : " = Optional('hg')", "description" : " = Optional('')", "private" : " = Optional(False)", @@ -813,7 +787,7 @@ "repo_name" : "" "repo_type" : "", "clone_uri" : "", - "private": : "", + "private" : "", "created_on" : "", "description" : "", "landing_rev": "", @@ -826,6 +800,65 @@ } error: null +update_repo +----------- + +Update a repository. +This command can only be executed using the api_key of a user with admin rights, +or that of a regular user with create repository permission. +Regular users cannot specify owner parameter. + +INPUT:: + + id : + api_key : "" + method : "update_repo" + args: { + "repoid" : "" + "name" : " = Optional('')", + "group" : " = Optional(None)", + "owner" : "", + "description" : " = Optional('')", + "private" : " = Optional(False)", + "clone_uri" : " = Optional(None)", + "landing_rev" : " = Optional('tip')", + "enable_downloads": " = Optional(False)", + "enable_locking": " = Optional(False)", + "enable_statistics": " = Optional(False)", + } + +OUTPUT:: + + id : + result: { + "msg": "updated repo ID:repo_id ``", + "repository": { + "repo_id" : "", + "repo_name" : "" + "repo_type" : "", + "clone_uri" : "", + "private": "", + "created_on" : "", + "description" : "", + "landing_rev": "", + "owner": "", + "fork_of": "", + "enable_downloads": "", + "enable_locking": "", + "enable_statistics": "", + "last_changeset": { + "author": "", + "date": "", + "message": "", + "raw_id": "", + "revision": "", + "short_id": "" + } + "locked_by": "", + "locked_date": "", + }, + } + error: null fork_repo --------- @@ -838,7 +871,6 @@ repository permission and at least read access to the repository. Regular users cannot specify owner parameter. - INPUT:: id : @@ -864,7 +896,6 @@ } error: null - delete_repo ----------- @@ -873,7 +904,6 @@ or that of a regular user with admin access to the repository. When ``forks`` param is set it is possible to detach or delete forks of the deleted repository. - INPUT:: id : @@ -893,14 +923,12 @@ } error: null - grant_user_permission --------------------- Grant permission for a user on the given repository, or update the existing one if found. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -921,14 +949,12 @@ } error: null - revoke_user_permission ---------------------- Revoke permission for a user on the given repository. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -948,7 +974,6 @@ } error: null - grant_user_group_permission --------------------------- @@ -956,7 +981,6 @@ existing one if found. This command can only be executed using the api_key of a user with admin rights. - INPUT:: id : @@ -977,7 +1001,6 @@ } error: null - revoke_user_group_permission ---------------------------- diff -r 763dc7a96bae -r 6f60bd9090b1 docs/api/models.rst --- a/docs/api/models.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/api/models.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,7 +1,7 @@ .. _models: ======================== -The :mod:`models` Module +The :mod:`models` module ======================== .. automodule:: kallithea.model diff -r 763dc7a96bae -r 6f60bd9090b1 docs/changelog.rst --- a/docs/changelog.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/changelog.rst Sun Sep 06 23:36:05 2015 +0200 @@ -4,6 +4,7 @@ Changelog ========= -Kallithea project doesn't keep its changelog here. We refer you to our Mercurial logs_ . +Kallithea project doesn't keep its changelog here. We refer you to our `Mercurial logs`__. -.. _logs: https://kallithea-scm.org/repos/kallithea/changelog + +.. __: https://kallithea-scm.org/repos/kallithea/changelog diff -r 763dc7a96bae -r 6f60bd9090b1 docs/conf.py --- a/docs/conf.py Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/conf.py Sun Sep 06 23:36:05 2015 +0200 @@ -88,6 +88,7 @@ # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' +highlight_language = 'none' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] diff -r 763dc7a96bae -r 6f60bd9090b1 docs/contributing.rst --- a/docs/contributing.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/contributing.rst Sun Sep 06 23:36:05 2015 +0200 @@ -11,19 +11,20 @@ Infrastructure -------------- -The main repository is hosted at Our Own Kallithea (aka OOK) on -https://kallithea-scm.org/repos/kallithea/ (which is our self-hosted instance -of Kallithea). +The main repository is hosted on Our Own Kallithea (aka OOK) at +https://kallithea-scm.org/repos/kallithea/, our self-hosted instance +of Kallithea. -For now, we use Bitbucket_ for `Pull Requests`_ and `Issue Tracker`_ services. The -issue tracker is for tracking bugs, not for support, discussion, or ideas - -please use the `mailing list`_ to reach the community. +For now, we use Bitbucket_ for `pull requests`_ and `issue tracking`_. The +issue tracker is for tracking bugs, not for support, discussion, or ideas -- +please use the `mailing list`_ or :ref:`IRC ` to reach the community. We use Weblate_ to translate the user interface messages into languages other than English. Join our project on `Hosted Weblate`_ to help us. To register, you can use your Bitbucket or GitHub account. See :ref:`translations` for more details. + Getting started --------------- @@ -48,15 +49,15 @@ After finishing your changes make sure all tests pass cleanly. You can run the testsuite running ``nosetests`` from the project root, or if you use tox -run ``tox`` for python2.6-2.7 with multiple database test. +run ``tox`` for Python 2.6--2.7 with multiple database test. -When using `nosetests`, the `test.ini` file is used with an SQLite database. Edit -this file to change your testing enviroment. +When running tests, Kallithea uses `kallithea/tests/test.ini` and populates the +SQLite database specified there. It is possible to avoid recreating the full test database on each invocation of the tests, thus eliminating the initial delay. To achieve this, run the tests as:: - paster serve test.ini --pid-file=test.pid --daemon + paster serve kallithea/tests/test.ini --pid-file=test.pid --daemon KALLITHEA_WHOOSH_TEST_DISABLE=1 KALLITHEA_NO_TMP_PATH=1 nosetests kill -9 $(cat test.pid) @@ -69,6 +70,7 @@ printed immediately) [NOSE_NOCAPTURE] --failed Run the tests that failed in the last test run. + Coding/contribution guidelines ------------------------------ @@ -85,27 +87,33 @@ We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care about Python 3 compatibility. -We try to support the most common modern web browsers. IE8 is still supported -to the extent it is feasible but we may stop supporting it very soon. +We try to support the most common modern web browsers. IE9 is still supported +to the extent it is feasible, IE8 is not. We primarily support Linux and OS X on the server side but Windows should also work. -Html templates should use 2 spaces for indentation ... but be pragmatic. We +HTML templates should use 2 spaces for indentation ... but be pragmatic. We should use templates cleverly and avoid duplication. We should use reasonable -semantic markup with classes and ids that can be used for styling and testing. +semantic markup with element classes and IDs that can be used for styling and testing. We should only use inline styles in places where it really is semantic (such as -display:none). +``display: none``). -JavaScript must use ';' between/after statements. Indentation 4 spaces. Inline -multiline functions should be indented two levels - one for the () and one for -{}. jQuery value arrays should have a leading $. +JavaScript must use ``;`` between/after statements. Indentation 4 spaces. Inline +multiline functions should be indented two levels -- one for the ``()`` and one for +``{}``. +Variables holding jQuery objects should be named with a leading ``$``. Commit messages should have a leading short line summarizing the changes. For -bug fixes, put "(Issue #123)" at the end of this line. +bug fixes, put ``(Issue #123)`` at the end of this line. + +Use American English grammar and spelling overall. Use `English title case`_ for +page titles, button labels, headers, and 'labels' for fields in forms. -Contributions will be accepted in most formats - such as pull requests on +.. _English title case: https://en.wikipedia.org/wiki/Capitalization#Title_case + +Contributions will be accepted in most formats -- such as pull requests on bitbucket, something hosted on your own Kallithea instance, or patches sent by -mail to the kallithea-general mailing list. +email to the `kallithea-general`_ mailing list. Make sure to test your changes both manually and with the automatic tests before posting. @@ -116,7 +124,7 @@ changes when we apply them. We try to make sure we have consensus on the direction the project is taking. -Everything non-sensitive should be discussed in public - preferably on the +Everything non-sensitive should be discussed in public -- preferably on the mailing list. We aim at having all non-trivial changes reviewed by at least one other core developer before pushing. Obvious non-controversial changes will be handled more casually. @@ -128,11 +136,12 @@ .. _translations: .. include:: ./../kallithea/i18n/how_to + "Roadmap" --------- We do not have a road map but are waiting for your contributions. Refer to the -wiki_ for some ideas of places we might want to go - contributions in these +wiki_ for some ideas of places we might want to go -- contributions in these areas are very welcome. @@ -141,9 +150,10 @@ .. _Weblate: http://weblate.org/ -.. _Issue Tracker: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open -.. _Pull Requests: https://bitbucket.org/conservancy/kallithea/pull-requests +.. _issue tracking: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open +.. _pull requests: https://bitbucket.org/conservancy/kallithea/pull-requests .. _bitbucket: http://bitbucket.org/ .. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general +.. _kallithea-general: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general .. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/ .. _wiki: https://bitbucket.org/conservancy/kallithea/wiki/Home diff -r 763dc7a96bae -r 6f60bd9090b1 docs/index.rst --- a/docs/index.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/index.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,7 +1,8 @@ .. _index: +####################### Kallithea Documentation ------------------------ +####################### **Readme** @@ -15,6 +16,7 @@ .. toctree:: :maxdepth: 1 + overview installation installation_win installation_win_old @@ -31,17 +33,18 @@ usage/locking usage/statistics -**Administrators Guide** +**Administrator's guide** .. toctree:: :maxdepth: 1 + usage/email usage/performance usage/backup usage/debugging usage/troubleshooting -**Develop** +**Development** .. toctree:: :maxdepth: 1 @@ -64,6 +67,7 @@ * :ref:`genindex` * :ref:`search` + .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _python: http://www.python.org/ .. _django: http://www.djangoproject.com/ diff -r 763dc7a96bae -r 6f60bd9090b1 docs/installation.rst --- a/docs/installation.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/installation.rst Sun Sep 06 23:36:05 2015 +0200 @@ -4,16 +4,12 @@ Installation on Unix/Linux ========================== -**Kallithea** is written entirely in Python_ and requires Python version -2.6 or higher. Python 3.x is currently not supported. - -There are several ways to install Kallithea: +The following describes three different ways of installing Kallithea: -- :ref:`installation-source`: The Kallithea development repository is stable - and can be used in production. In fact, the Kallithea maintainers do - use it in production. The advantage of installation from source and regularly - updating it is that you take advantage of the most recent improvements, which - is particularly useful because Kallithea is evolving rapidly. +- :ref:`installation-source`: The simplest way to keep the installation + up-to-date and track any local customizations is to run directly from + source in a Kallithea repository clone, preferably inside a virtualenv + virtual Python environment. - :ref:`installation-virtualenv`: If you prefer to only use released versions of Kallithea, the recommended method is to install Kallithea in a virtual @@ -32,10 +28,11 @@ .. _installation-source: + Installation from repository source ----------------------------------- -To install Kallithea in a virtualenv using the stable branch of the development +To install Kallithea in a virtualenv_ using the stable branch of the development repository, follow the instructions below:: hg clone https://kallithea-scm.org/repos/kallithea -u stable @@ -52,6 +49,7 @@ .. _installation-virtualenv: + Installing a released version in a virtualenv --------------------------------------------- @@ -95,6 +93,7 @@ .. _installation-without-virtualenv: + Installing a released version without virtualenv ------------------------------------------------ @@ -111,8 +110,9 @@ You can now proceed to :ref:`setup`. + Upgrading Kallithea from Python Package Index (PyPI) ------------------------------------------------------ +---------------------------------------------------- .. note:: It is strongly recommended that you **always** perform a database and @@ -123,19 +123,16 @@ instance from version 0.1 to 0.2, the ``my.ini`` file could be backed up to ``my.ini.0-1``. - If using a SQLite database, stop the Kallithea process/daemon/service, and then make a copy of the database file:: service kallithea stop cp kallithea.db kallithea.db.{version} - Back up your configuration file:: cp my.ini my.ini.{version} - Ensure that you are using the Python virtual environment that you originally installed Kallithea in by running:: @@ -146,12 +143,10 @@ source /srv/kallithea/venv/bin/activate - Once you have verified the environment you can upgrade Kallithea with:: pip install --upgrade kallithea - Then run the following command from the installation directory:: paster make-config Kallithea my.ini @@ -164,12 +159,10 @@ Please always make sure your .ini files are up to date. Errors can often be caused by missing parameters added in new versions. - It is also recommended that you rebuild the whoosh index after upgrading since the new whoosh version could introduce some incompatible index changes. Please read the changelog to see if there were any changes to whoosh. - The final step is to upgrade the database. To do this simply run:: paster upgrade-db my.ini @@ -178,7 +171,6 @@ and will always recheck the settings of the application, if there are no new options that need to be set. - .. note:: The DB schema upgrade library has some limitations and can sometimes fail if you try to upgrade from older major releases. In such a case simply run upgrades sequentially, e.g., @@ -205,5 +197,4 @@ .. _virtualenv: http://pypi.python.org/pypi/virtualenv -.. _Python: http://www.python.org/ .. _pylons: http://www.pylonsproject.org/ diff -r 763dc7a96bae -r 6f60bd9090b1 docs/installation_iis.rst --- a/docs/installation_iis.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/installation_iis.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,5 +1,6 @@ .. _installation_iis: +===================================================================== Installing Kallithea on Microsoft Internet Information Services (IIS) ===================================================================== @@ -11,37 +12,38 @@ For the best security, it is strongly recommended to only host the site over a secure connection, e.g. using TLS. + Prerequisites ------------- Apart from the normal requirements for Kallithea, it is also necessary to get an ISAPI-WSGI bridge module, e.g. isapi-wsgi. + Installation ------------ -The following will assume that your Kallithea is at ``c:\inetpub\kallithea`` and +The following assumes that your Kallithea is at ``c:\inetpub\kallithea``, and will be served from the root of its own website. The changes to serve it in its own virtual folder will be noted where appropriate. -Application Pool +Application pool ................ Make sure that there is a unique application pool for the Kallithea application with an identity that has read access to the Kallithea distribution. The application pool does not need to be able to run any managed code. If you -are using a 32-bit Python installation, then you must enable 32 bit program in -the advanced settings for the application pool otherwise Python will not be able -to run on the website and consequently, Kallithea will not be able to run. +are using a 32-bit Python installation, then you must enable 32-bit program in +the advanced settings for the application pool; otherwise Python will not be able +to run on the website and neither will Kallithea. .. note:: - The application pool can be the same as an existing application pool as long - as the requirements to Kallithea are enabled by the existing application - pool. + The application pool can be the same as an existing application pool, + as long as the Kallithea requirements are met by the existing pool. -ISAPI Handler +ISAPI handler ............. The ISAPI handler can be generated using:: @@ -88,6 +90,7 @@ The last necessary step is to enable the relevant authentication in IIS, e.g. Windows authentication. + Troubleshooting --------------- diff -r 763dc7a96bae -r 6f60bd9090b1 docs/installation_win.rst --- a/docs/installation_win.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/installation_win.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,9 +1,10 @@ .. _installation_win: - +================================================================ Installation and upgrade on Windows (7/Server 2008 R2 and newer) ================================================================ + First time install :::::::::::::::::: @@ -13,9 +14,8 @@ To install on an older version of Windows, see ``_ - -Step 1 - Install Python ------------------------ +Step 1 -- Install Python +------------------------ Install Python 2.x.y (x = 6 or 7). Latest version is recommended. If you need another version, they can run side by side. @@ -30,9 +30,8 @@ Remember the specific major and minor versions installed, because they will be needed in the next step. In this case, it is "2.7". - -Step 2 - Python BIN -------------------- +Step 2 -- Python BIN +-------------------- Add Python BIN folder to the path. This can be done manually (editing "PATH" environment variable) or by using Windows Support Tools that @@ -45,9 +44,8 @@ Please substitute [your-python-path] with your Python installation path. Typically this is ``C:\\Python27``. - -Step 3 - Install pywin32 extensions ------------------------------------ +Step 3 -- Install pywin32 extensions +------------------------------------ Download pywin32 from: http://sourceforge.net/projects/pywin32/files/ @@ -62,9 +60,8 @@ http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win32-py2.7.exe/download (Win32) - -Step 4 - Install pip --------------------- +Step 4 -- Install pip +--------------------- pip is a package management system for Python. You will need it to install Kallithea and its dependencies. @@ -87,9 +84,8 @@ SETX PATH "%PATH%;[your-python-path]\Scripts" /M - -Step 5 - Kallithea Folder Structure ------------------------------------ +Step 5 -- Kallithea folder structure +------------------------------------ Create a Kallithea folder structure. @@ -105,9 +101,8 @@ C:\Kallithea\Env C:\Kallithea\Repos - -Step 6 - Install virtualenv ---------------------------- +Step 6 -- Install virtualenv +---------------------------- .. note:: A python virtual environment will allow for isolation between the Python packages of your system and those used for Kallithea. @@ -123,9 +118,8 @@ virtualenv C:\Kallithea\Env - -Step 7 - Install Kallithea --------------------------- +Step 7 -- Install Kallithea +--------------------------- In order to install Kallithea, you need to be able to run "pip install kallithea". It will use pip to install the Kallithea Python package and its dependencies. Some Python packages use managed code and need to be compiled. @@ -150,9 +144,8 @@ complete. Some warnings will appear. Don't worry, they are normal. - -Step 8 - (Optional) Install git -------------------------------- +Step 8 -- Install git (optional) +-------------------------------- Mercurial being a python package, it was installed automatically when doing "pip install kallithea". @@ -160,9 +153,8 @@ See http://git-scm.com/book/en/v2/Getting-Started-Installing-Git#Installing-on-Windows for instructions. - -Step 9 - Configuring Kallithea ------------------------------- +Step 9 -- Configuring Kallithea +------------------------------- Steps taken from ``_ @@ -200,9 +192,8 @@ If you decided not to install git, you will get errors about it that you can ignore. - -Step 10 - Running Kallithea ---------------------------- +Step 10 -- Running Kallithea +---------------------------- In the previous command prompt, being in the C:\\Kallithea\\Bin folder, type:: @@ -215,7 +206,6 @@ Remark: If it does not work the first time, Ctrl-C the CMD process and start it again. Don't forget the "http://" in Internet Explorer. - What this guide does not cover: - Installing Celery diff -r 763dc7a96bae -r 6f60bd9090b1 docs/installation_win_old.rst --- a/docs/installation_win_old.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/installation_win_old.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,29 +1,30 @@ .. _installation_win_old: - +====================================================================== Installation and upgrade on Windows (XP/Vista/Server 2003/Server 2008) ====================================================================== -First time install + +First-time install :::::::::::::::::: -Target OS: Windows XP SP3 32bit English (Clean installation) +Target OS: Windows XP SP3 32-bit English (Clean installation) + All Windows Updates until 24-may-2012 .. note:: - This installation is for 32bit systems, for 64bit windows you might need - to download proper 64bit versions of the different packages(Windows Installer, Win32py extensions) + This installation is for 32-bit systems, for 64-bit Windows you might need + to download proper 64-bit versions of the different packages (Windows Installer, Win32py extensions) plus some extra tweaks. - These extra steps haven been marked as "64bit". + These extra steps haven been marked as "64-bit". Tested on Windows Server 2008 R2 SP1, 9-feb-2013. - If you run into any 64bit related problems, please check these pages: + If you run into any 64-bit related problems, please check these pages: + - http://blog.victorjabur.com/2011/06/05/compiling-python-2-7-modules-on-windows-32-and-64-using-msvc-2008-express/ - http://bugs.python.org/issue7511 -Step1 - Install Visual Studio 2008 Express ------------------------------------------- - +Step 1 -- Install Visual Studio 2008 Express +-------------------------------------------- Optional: You can also install MinGW, but VS2008 installation is easier. @@ -32,7 +33,7 @@ (if not found or relocated, google for "visual studio 2008 express" for updated link. This link was taken from http://stackoverflow.com/questions/15318560/visual-c-2008-express-download-link-dead) You can also download full ISO file for offline installation, just -choose "All - Offline Install ISO image file" in the previous page and +choose "All -- Offline Install ISO image file" in the previous page and choose "Visual C++ 2008 Express" when installing. .. note:: @@ -47,34 +48,33 @@ .. note:: - 64bit: You also need to install the Microsoft Windows SDK for .NET 3.5 SP1 (.NET 4.0 won't work). + 64-bit: You also need to install the Microsoft Windows SDK for .NET 3.5 SP1 (.NET 4.0 won't work). Download from: http://www.microsoft.com/en-us/download/details.aspx?id=3138 .. note:: - 64bit: You also need to copy and rename a .bat file to make the Visual C++ compiler work. - I am not sure why this is not necessary for 32bit. + 64-bit: You also need to copy and rename a .bat file to make the Visual C++ compiler work. + I am not sure why this is not necessary for 32-bit. Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat to C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat +Step 2 -- Install Python +------------------------ -Step2 - Install Python ----------------------- - -Install Python 2.x.y (x = 6 or 7) x86 version (32bit). DO NOT USE A 3.x version. +Install Python 2.x.y (x = 6 or 7) x86 version (32-bit). DO NOT USE A 3.x version. Download Python 2.x.y from: http://www.python.org/download/ -Choose "Windows Installer" (32bit version) not "Windows X86-64 +Choose "Windows Installer" (32-bit version) not "Windows X86-64 Installer". While writing this guide, the latest version was v2.7.3. Remember the specific major and minor version installed, because it will be needed in the next step. In this case, it is "2.7". .. note:: - 64bit: Just download and install the 64bit version of python. + 64-bit: Just download and install the 64-bit version of python. -Step3 - Install Win32py extensions ----------------------------------- +Step 3 -- Install Win32py extensions +------------------------------------ Download pywin32 from: http://sourceforge.net/projects/pywin32/files/ @@ -88,12 +88,12 @@ .. note:: - 64bit: Download and install the 64bit version. + 64-bit: Download and install the 64-bit version. At the time of writing you can find this at: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win-amd64-py2.7.exe/download -Step4 - Python BIN ------------------- +Step 4 -- Python BIN +-------------------- Add Python BIN folder to the path @@ -119,9 +119,8 @@ Please substitute [your-python-path] with your Python installation path. Typically: C:\\Python27 - -Step5 - Kallithea folder structure ----------------------------------- +Step 5 -- Kallithea folder structure +------------------------------------ Create a Kallithea folder structure @@ -137,9 +136,8 @@ C:\Kallithea\Env C:\Kallithea\Repos - -Step6 - Install virtualenv ---------------------------- +Step 6 -- Install virtualenv +---------------------------- Install Virtual Env for Python @@ -158,9 +156,8 @@ (--no-site-packages is now the default behaviour of virtualenv, no need to include it) - -Step7 - Install Kallithea -------------------------- +Step 7 -- Install Kallithea +--------------------------- Finally, install Kallithea @@ -171,7 +168,7 @@ .. note:: - 64bit: For 64bit you need to modify the shortcut that is used to start the + 64-bit: For 64-bit you need to modify the shortcut that is used to start the Visual Studio 2008 Command Prompt. Use right-mouse click to open properties. Change commandline from:: @@ -182,7 +179,6 @@ %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" amd64 - In that CMD (loaded with VS2008 PATHs) type:: cd C:\Kallithea\Env\Scripts (or similar) @@ -197,10 +193,8 @@ Some warnings will appear, don't worry as they are normal. - -Step8 - Configuring Kallithea ------------------------------ - +Step 8 -- Configuring Kallithea +------------------------------- steps taken from http://packages.python.org/Kallithea/setup.html @@ -211,7 +205,7 @@ cd C:\Kallithea\Bin paster make-config Kallithea production.ini -Then, you must edit production.ini to fit your needs (ip address, ip +Then, you must edit production.ini to fit your needs (network address and port, mail settings, database, whatever). I recommend using NotePad++ (free) or similar text editor, as it handles well the EndOfLine character differences between Unix and Windows @@ -237,10 +231,8 @@ If you make some mistake and the script does not end, don't worry, start it again. - -Step9 - Running Kallithea -------------------------- - +Step 9 -- Running Kallithea +--------------------------- In the previous command prompt, being in the C:\\Kallithea\\Bin folder, just type:: @@ -255,8 +247,6 @@ If it does not work first time, just Ctrl-C the CMD process and start it again. Don't forget the "http://" in Internet Explorer - - What this Guide does not cover: - Installing Celery diff -r 763dc7a96bae -r 6f60bd9090b1 docs/overview.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/overview.rst Sun Sep 06 23:36:05 2015 +0200 @@ -0,0 +1,141 @@ +.. _overview: + +===================== +Installation overview +===================== + +Some overview and some details that can help understanding the options when +installing Kallithea. + + +Python environment +------------------ + +**Kallithea** is written entirely in Python_ and requires Python version +2.6 or higher. Python 3.x is currently not supported. + +Given a Python installation, there are different ways of providing the +environment for running Python applications. Each of them pretty much +corresponds to a ``site-packages`` directory somewhere where packages can be +installed. + +Kallithea itself can be run from source or be installed, but even when running +from source, there are some dependencies that must be installed in the Python +environment used for running Kallithea. + +- Packages *could* be installed in Python's ``site-packages`` directory ... but + that would require running pip_ as root and it would be hard to uninstall or + upgrade and is probably not a good idea unless using a package manager. + +- Packages could also be installed in ``~/.local`` ... but that is probably + only a good idea if using a dedicated user per application or instance. + +- Finally, it can be installed in a virtualenv_. That is a very lightweight + "container" where each Kallithea instance can get its own dedicated and + self-contained virtual environment. + +We recommend using virtualenv for installing Kallithea. + + +Installation methods +-------------------- + +Kallithea must be installed on a server. Kallithea is installed in a Python +environment so it can use packages that are installed there and make itself +available for other packages. + +Two different cases will pretty much cover the options for how it can be +installed. + +- The Kallithea source repository can be cloned and used -- it is kept stable and + can be used in production. The Kallithea maintainers use the development + branch in production. The advantage of installation from source and regularly + updating it is that you take advantage of the most recent improvements. Using + it directly from a DVCS also means that it is easy to track local customizations. + + Running ``setup.py develop`` in the source will use pip to install the + necessary dependencies in the Python environment and create a + ``.../site-packages/Kallithea.egg-link`` file there that points at the Kallithea + source. + +- Kallithea can also be installed from ready-made packages using a package manager. + The official released versions are available on PyPI_ and can be downloaded and + installed with all dependencies using ``pip install kallithea``. + + With this method, Kallithea is installed in the Python environment as any + other package, usually as a ``.../site-packages/Kallithea-X-py2.7.egg/`` + directory with Python files and everything else that is needed. + + (``pip install kallithea`` from a source tree will do pretty much the same + but build the Kallithea package itself locally instead of downloading it.) + + +Web server +---------- + +Kallithea is (primarily) a WSGI_ application that must be run from a web +server that serves WSGI applications over HTTP. + +Kallithea itself is not serving HTTP (or HTTPS); that is the web server's +responsibility. Kallithea does however need to know its own user facing URL +(protocol, address, port and path) for each HTTP request. Kallithea will +usually use its own HTML/cookie based authentication but can also be configured +to use web server authentication. + +There are several web server options: + +- Kallithea uses the Paste_ tool as command line interface. Paste provides + ``paster serve`` as a convenient way to launch a Python WSGI / web server + from the command line. That is perfect for development and evaluation. + Actual use in production might have different requirements and need extra + work to make it manageable as a scalable system service. + + Paste comes with its own built-in web server but Kallithea defaults to use + Waitress_. Gunicorn_ is also an option. These web servers have different + limited feature sets. + + The web server used by ``paster`` is configured in the ``.ini`` file passed + to it. The entry point for the WSGI application is configured + in ``setup.py`` as ``kallithea.config.middleware:make_app``. + +- `Apache httpd`_ can serve WSGI applications directly using mod_wsgi_ and a + simple Python file with the necessary configuration. This is a good option if + Apache is an option. + +- uWSGI_ is also a full web server with built-in WSGI module. + +- IIS_ can also server WSGI applications directly using isapi-wsgi_. + +- A `reverse HTTP proxy `_ + can be put in front of another web server which has WSGI support. + Such a layered setup can be complex but might in some cases be the right + option, for example to standardize on one internet-facing web server, to add + encryption or special authentication or for other security reasons, to + provide caching of static files, or to provide load balancing or fail-over. + Nginx_, Varnish_ and HAProxy_ are often used for this purpose, often in front + of a ``paster`` server that somehow is wrapped as a service. + +The best option depends on what you are familiar with and the requirements for +performance and stability. Also, keep in mind that Kallithea mainly is serving +dynamically generated pages from a relatively slow Python process. Kallithea is +also often used inside organizations with a limited amount of users and thus no +continuous hammering from the internet. + + +.. _Python: http://www.python.org/ +.. _Gunicorn: http://gunicorn.org/ +.. _Waitress: http://waitress.readthedocs.org/en/latest/ +.. _virtualenv: http://pypi.python.org/pypi/virtualenv +.. _Paste: http://pythonpaste.org/ +.. _PyPI: https://pypi.python.org/pypi +.. _Apache httpd: http://httpd.apache.org/ +.. _mod_wsgi: https://code.google.com/p/modwsgi/ +.. _isapi-wsgi: https://github.com/hexdump42/isapi-wsgi +.. _uWSGI: https://uwsgi-docs.readthedocs.org/en/latest/ +.. _nginx: http://nginx.org/en/ +.. _iis: http://en.wikipedia.org/wiki/Internet_Information_Services +.. _pip: http://en.wikipedia.org/wiki/Pip_%28package_manager%29 +.. _WSGI: http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface +.. _pylons: http://www.pylonsproject.org/ +.. _HAProxy: http://www.haproxy.org/ +.. _Varnish: https://www.varnish-cache.org/ diff -r 763dc7a96bae -r 6f60bd9090b1 docs/setup.rst --- a/docs/setup.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/setup.rst Sun Sep 06 23:36:05 2015 +0200 @@ -14,11 +14,10 @@ paster make-config Kallithea my.ini This will create the file ``my.ini`` in the current directory. This -configuration file contains the various settings for Kallithea, e.g., +configuration file contains the various settings for Kallithea, e.g. proxy port, email settings, usage of static files, cache, Celery settings, and logging. - Next, you need to create the databases used by Kallithea. It is recommended to use PostgreSQL or SQLite (default). If you choose a database other than the default, ensure you properly adjust the database URL in your ``my.ini`` @@ -34,12 +33,12 @@ and password for the initial admin account which ``setup-db`` sets up for you. -The setup process can be fully automated, example for lazy:: +The ``setup-db`` values can also be given on the command line. +Example:: - paster setup-db my.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/srv/repos + paster setup-db my.ini --user=nn --password=secret --email=nn@example.org --repos=/srv/repos - -The ``setup-db`` command will create all of the needed tables and an +The ``setup-db`` command will create all 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 @@ -58,26 +57,31 @@ paster serve my.ini - This command runs the Kallithea server. The web app should be available at - http://127.0.0.1:5000. This ip and port is configurable via the my.ini - file created in previous step -- Use the admin account you created above when running ``setup-db`` - to login to the web app. + http://127.0.0.1:5000. The IP address and port is configurable via the + configuration file created in the previous step. +- Log in to Kallithea using the admin account created when running ``setup-db``. - 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, and permissions settings, as well as edit more advanced options on users and - repositories + repositories. + -Optionally users can create an ``rcextensions`` package that extends Kallithea -functionality. To do this simply execute:: +Extensions +---------- + +Optionally one can create an ``rcextensions`` package that extends Kallithea +functionality. +To generate a skeleton extensions package, run:: paster make-rcext my.ini -This will create an ``rcextensions`` package in the same place that your ``ini`` file -lives. With ``rcextensions`` it's possible to add additional mapping for whoosh, +This will create an ``rcextensions`` package next to the specified ``ini`` file. +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 example for sending signals to build-bots such as Jenkins. + +See the ``__init__.py`` file inside the generated ``rcextensions`` package for more details. @@ -115,48 +119,41 @@ to the Kallithea db and run check functions for permissions against that. + Setting up Whoosh full text search ---------------------------------- -The whoosh index can be built 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 Kallithea database. -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 +Kallithea provides full text search of repositories using `Whoosh`__. -You may optionally pass the option ``-f`` to enable a full index rebuild. Without -the ``-f`` option, indexing will run always in "incremental" mode. +.. __: https://pythonhosted.org/Whoosh/ -For an incremental index build use:: +For an incremental index build, run:: paster make-index my.ini -For a full index rebuild use:: +For a full index rebuild, run:: paster make-index my.ini -f +The ``--repo-location`` option allows the location of the repositories to be overriden; +usually, the location is retrieved from the Kallithea database. -Building an index for just selected repositories is possible with such command:: +The ``--index-only`` option can be used to limit the indexed repositories to a comma-separated list:: paster make-index my.ini --index-only=vcs,kallithea +To keep your index up-to-date it is necessary to do periodic index builds; +for this, it is recommended to use a crontab entry. Example:: -In order to do periodic index builds and keep your index always up to -date, it is recommended to use a crontab entry. An example entry -might look like this:: + 0 3 * * * /path/to/virtualenv/bin/paster make-index /path/to/kallithea/my.ini - /path/to/python/bin/paster make-index /path/to/kallithea/my.ini - -When using incremental mode (the default) whoosh will check the last +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 the index from scratch, you can use the ``-f`` flag as above, -or in the admin panel you can check the "build from scratch" flag. +or in the admin panel you can check the "build from scratch" checkbox. Setting up LDAP support @@ -164,7 +161,7 @@ Kallithea 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:: +available via PyPI, so you can install it by running:: pip install python-ldap @@ -172,7 +169,8 @@ your system, so before installing it check that you have at least the ``openldap`` and ``sasl`` libraries. -LDAP settings are located in the Admin->LDAP section. +Choose *Admin > Authentication*, click the ``kallithea.lib.auth_modules.auth_ldap`` button +and then *Save*, to enable the LDAP plugin and configure its settings. Here's a typical LDAP setup:: @@ -194,7 +192,7 @@ Login Attribute = uid First Name Attribute = firstName Last Name Attribute = lastName - E-mail Attribute = mail + Email Attribute = mail If your user groups are placed in an Organisation Unit (OU) structure, the Search Settings configuration differs:: @@ -251,7 +249,7 @@ .. _Certificate Checks: Certificate Checks : optional - How SSL certificates verification is handled - this is only useful when + 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 @@ -359,7 +357,7 @@ Login Attribute = sAMAccountName First Name Attribute = givenName Last Name Attribute = sn - E-mail Attribute = mail + Email Attribute = mail All other LDAP settings will likely be site-specific and should be appropriately configured. @@ -373,16 +371,16 @@ clients access the application. When these authentication methods are enabled in Kallithea, it uses the -username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't +username that the container/proxy (Apache or Nginx, etc.) provides and doesn't perform the authentication itself. The authorization, however, is still done by Kallithea according to its settings. When a user logs in for the first time using these authentication methods, a matching user account is created in Kallithea with default permissions. An administrator can then modify it using Kallithea'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. - +permissions before the user logs in for the first time, using the :ref:`create-user` API. Container-based authentication '''''''''''''''''''''''''''''' @@ -390,11 +388,10 @@ In a container-based authentication setup, Kallithea 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 +After setting up your container (see `Apache with mod_wsgi`_), you'll need to configure it to require authentication on the location configured for Kallithea. - Proxy pass-through authentication ''''''''''''''''''''''''''''''''' @@ -403,22 +400,24 @@ 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 +`Apache as subdirectory`_ or `Nginx virtual host example`_), you'll 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:: +reverse-proxy setup with basic auth: + +.. code-block:: apache - > - ProxyPass http://127.0.0.1:5000/ - ProxyPassReverse http://127.0.0.1:5000/ + + 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 "Kallithea authentication" AuthUserFile /srv/kallithea/.htpasswd - require valid-user + Require valid-user RequestHeader unset X-Forwarded-User @@ -428,19 +427,19 @@ RequestHeader set X-Forwarded-User %{RU}e - .. 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 + +Integration with issue trackers ------------------------------- Kallithea provides a simple integration with issue trackers. It's possible -to define a regular expression that will fetch an issue id stored in a commit -messages and replace that with a URL to the issue. To enable this simply +to define a regular expression that will match an issue ID in commit messages, +and have that replaced with a URL to the issue. To enable this simply uncomment the following variables in the ini file:: issue_pat = (?:^#|\s#)(\w+) @@ -453,12 +452,14 @@ The default expression matches issues in the format ``#``, e.g., ``#300``. -Matched issues are replaced with the link specified as -``issue_server_link`` ``{id}`` is replaced with issue id, and +Matched issue references are replaced with the link specified in +``issue_server_link``. ``{id}`` is replaced with the issue ID, and ``{repo}`` with the repository name. Since the # is stripped away, ``issue_prefix`` is prepended to the link text. ``issue_prefix`` doesn't necessarily need to be ``#``: if you set issue prefix to ``ISSUE-`` this will -generate a URL in the format:: +generate a URL in the format: + +.. code-block:: html ISSUE-300 @@ -470,7 +471,9 @@ issue_prefix_wiki = WIKI- With these settings, wiki pages can be referenced as wiki-some-id, and every -such reference will be transformed into:: +such reference will be transformed into: + +.. code-block:: html WIKI-some-id @@ -479,13 +482,12 @@ --------------- Hooks can be managed in similar way to that used in ``.hgrc`` files. -To access hooks setting click `advanced setup` in the `Hooks` section -of Mercurial Settings in Admin. +To manage hooks, choose *Admin > Settings > Hooks*. -There are four built in hooks that cannot be changed (only enabled/disabled by -checkboxes in the previous section). -To add another custom hook simply fill in the first section with -``.`` and the second one with hook path. Example hooks +The built-in hooks cannot be modified, though they can be enabled or disabled in the *VCS* section. + +To add another custom hook simply fill in the first textbox with +``.`` and the second with the hook path. Example hooks can be found in ``kallithea.lib.hooks``. @@ -504,7 +506,7 @@ -------------------- Kallithea can use the distributed task queue system Celery_ to run tasks like -cloning repositories or sending mails. +cloning repositories or sending emails. Kallithea will in most setups work perfectly fine out of the box (without Celery), executing all tasks in the web server process. Some tasks can however @@ -530,11 +532,11 @@ paster celeryd - .. note:: Make sure you run this command from the same virtualenv, and with the same user that Kallithea runs. + HTTPS support ------------- @@ -543,15 +545,19 @@ Alternatively, you can use some special configuration settings to control directly which scheme/protocol Kallithea will use when generating URLs: -- With ``https_fixup = true``, the scheme will be taken from the ``HTTP_X_URL_SCHEME``, - ``HTTP_X_FORWARDED_SCHEME`` or ``HTTP_X_FORWARDED_PROTO HTTP`` header (default ``http``). +- With ``https_fixup = true``, the scheme will be taken from the + ``X-Url-Scheme``, ``X-Forwarded-Scheme`` or ``X-Forwarded-Proto`` HTTP header + (default ``http``). - With ``force_https = true`` the default will be ``https``. -- With ``use_htsts = true``, it will set ``Strict-Transport-Security`` when using https. +- With ``use_htsts = true``, Kallithea will set ``Strict-Transport-Security`` when using https. + Nginx virtual host example -------------------------- -Sample config for nginx using proxy:: +Sample config for Nginx using proxy: + +.. code-block:: nginx upstream kallithea { server 127.0.0.1:5000; @@ -637,15 +643,21 @@ Apache virtual host reverse proxy example ----------------------------------------- -Here is a sample configuration file for apache using proxy:: +Here is a sample configuration file for Apache using proxy: + +.. code-block:: apache ServerName hg.myserver.com ServerAlias hg.myserver.com - Order allow,deny - Allow from all + # For Apache 2.4 and later: + Require all granted + + # For Apache 2.2 and earlier, instead use: + # Order allow,deny + # Allow from all #important ! @@ -658,10 +670,8 @@ #to enable https use line below #SetEnvIf X-Url-Scheme https HTTPS=1 - - Additional tutorial http://pylonsbook.com/en/1.1/deployment.html#using-apache-to-proxy-requests-to-pylons @@ -669,7 +679,9 @@ Apache as subdirectory ---------------------- -Apache subdirectory part:: +Apache subdirectory part: + +.. code-block:: apache > ProxyPass http://127.0.0.1:5000/ @@ -688,10 +700,10 @@ use = egg:PasteDeploy#prefix prefix = / - then change ```` into your chosen prefix -Apache's WSGI config + +Apache with mod_wsgi -------------------- Alternatively, Kallithea can be set up with Apache under mod_wsgi. For @@ -713,7 +725,9 @@ 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:: +Here is a sample excerpt from an Apache Virtual Host configuration file: + +.. code-block:: apache WSGIDaemonProcess kallithea \ processes=1 threads=4 \ @@ -721,13 +735,14 @@ WSGIScriptAlias / /srv/kallithea/dispatch.wsgi WSGIPassAuthorization On -Or if using a dispatcher WSGI script with proper virtualenv activation:: +Or if using a dispatcher WSGI script with proper virtualenv activation: + +.. code-block:: apache WSGIDaemonProcess kallithea processes=1 threads=4 WSGIScriptAlias / /srv/kallithea/dispatch.wsgi WSGIPassAuthorization On - .. note:: When running apache as root, please make sure it doesn't run Kallithea as root, for examply by adding: ``user=www-data group=www-data`` to the configuration. @@ -737,8 +752,9 @@ make sure you set ``instance_id = *`` in the configuration so each process gets it's own cache invalidation key. +Example WSGI dispatch script: -Example WSGI dispatch script:: +.. code-block:: python import os os.environ["HGENCODING"] = "UTF-8" @@ -756,10 +772,12 @@ fileConfig('/srv/kallithea/my.ini') application = loadapp('config:/srv/kallithea/my.ini') -Or using proper virtualenv activation:: +Or using proper virtualenv activation: + +.. code-block:: python activate_this = '/srv/kallithea/venv/bin/activate_this.py' - execfile(activate_this,dict(__file__=activate_this)) + execfile(activate_this, dict(__file__=activate_this)) import os os.environ['HOME'] = '/srv/kallithea' @@ -774,8 +792,11 @@ Other configuration files ------------------------- -Some example init.d scripts can be found in the ``init.d`` directory: -https://kallithea-scm.org/repos/kallithea/files/tip/init.d/ . +A number of `example init.d scripts`__ can be found in +the ``init.d`` directory of the Kallithea source. + +.. __: https://kallithea-scm.org/repos/kallithea/files/tip/init.d/ . + .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _python: http://www.python.org/ diff -r 763dc7a96bae -r 6f60bd9090b1 docs/theme/nature/layout.html --- a/docs/theme/nature/layout.html Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/theme/nature/layout.html Sun Sep 06 23:36:05 2015 +0200 @@ -1,15 +1,15 @@ {% extends "basic/layout.html" %} {% block sidebarlogo %} -
- +
+

Support Kallithea development

- +
diff -r 763dc7a96bae -r 6f60bd9090b1 docs/theme/nature/static/nature.css_t --- a/docs/theme/nature/static/nature.css_t Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/theme/nature/static/nature.css_t Sun Sep 06 23:36:05 2015 +0200 @@ -122,6 +122,10 @@ div.sphinxsidebar input[type=text]{ margin-left: 20px; } + +div.sphinxsidebar input[type=image] { + border: 0; +} /* -- body styles ----------------------------------------------------------- */ @@ -216,8 +220,7 @@ border: 1px solid #C6C9CB; font-size: 1.2em; margin: 1.5em 0 1.5em 0; - -webkit-box-shadow: 1px 1px 1px #d8d8d8; - -moz-box-shadow: 1px 1px 1px #d8d8d8; + box-shadow: 1px 1px 1px #d8d8d8; } tt { diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/backup.rst --- a/docs/usage/backup.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/backup.rst Sun Sep 06 23:36:05 2015 +0200 @@ -10,6 +10,7 @@ Just copy your .ini file, it contains all Kallithea settings. + Whoosh index ------------ diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/debugging.rst --- a/docs/usage/debugging.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/debugging.rst Sun Sep 06 23:36:05 2015 +0200 @@ -9,6 +9,7 @@ .. note:: First make sure you're using the latest version available. + Enable detailed debug --------------------- diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/email.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/usage/email.rst Sun Sep 06 23:36:05 2015 +0200 @@ -0,0 +1,79 @@ +.. _email: + +============== +Email settings +============== + +The Kallithea configuration file has several email related settings. When +these contain correct values, Kallithea will send email in the situations +described below. If the email configuration is not correct so that emails +cannot be sent, all mails will show up in the log output. + +Before any email can be sent, an SMTP server has to be configured using the +configuration file setting ``smtp_server``. If required for that server, specify +a username (``smtp_username``) and password (``smtp_password``), a non-standard +port (``smtp_port``), encryption settings (``smtp_use_tls`` or ``smtp_use_ssl``) +and/or specific authentication parameters (``smtp_auth``). + + +Application emails +------------------ + +Kallithea sends an email to `users` on several occasions: + +- when comments are given on one of their changesets +- when comments are given on changesets they are reviewer on or on which they + commented regardless +- when they are invited as reviewer in pull requests +- when they request a password reset + +Kallithea sends an email to all `administrators` upon new account registration. +Administrators are users with the ``Admin`` flag set on the *Admin > Users* +page. + +When Kallithea wants to send an email but due to an error cannot correctly +determine the intended recipients, the administrators and the addresses +specified in ``email_to`` in the configuration file are used as fallback. + +Recipients will see these emails originating from the sender specified in the +``app_email_from`` setting in the configuration file. This setting can either +contain only an email address, like `kallithea-noreply@example.com`, or both +a name and an address in the following format: `Kallithea +`. However, if the email is sent due to an +action of a particular user, for example when a comment is given or a pull +request created, the name of that user will be combined with the email address +specified in ``app_email_from`` to form the sender (and any name part in that +configuration setting disregarded). + +The subject of these emails can optionally be prefixed with the value of +``email_prefix`` in the configuration file. + + +Error emails +------------ + +When an exception occurs in Kallithea -- and unless interactive debugging is +enabled using ``set debug = true`` in the ``[app:main]`` section of the +configuration file -- an email with exception details is sent by WebError_'s +``ErrorMiddleware`` to the addresses specified in ``email_to`` in the +configuration file. + +Recipients will see these emails originating from the sender specified in the +``error_email_from`` setting in the configuration file. This setting can either +contain only an email address, like `kallithea-noreply@example.com`, or both +a name and an address in the following format: `Kallithea Errors +`. + +*Note:* The WebError_ package does not respect ``smtp_port`` and assumes the +standard SMTP port (25). If you have a remote SMTP server with a different port, +you could set up a local forwarding SMTP server on port 25. + + +References +---------- + +- `Error Middleware (Pylons documentation) `_ +- `ErrorHandler (Pylons modules documentation) `_ + + +.. _WebError: https://pypi.python.org/pypi/WebError diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/general.rst --- a/docs/usage/general.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/general.rst Sun Sep 06 23:36:05 2015 +0200 @@ -5,7 +5,7 @@ ======================= -Repository deleting +Repository deletion ------------------- Currently when an admin or owner deletes a repository, Kallithea does @@ -13,7 +13,7 @@ renames it in a special way so that it is not possible to push, clone or access the repository. -There is a special command for cleaning up such archived repos:: +There is a special command for cleaning up such archived repositories:: paster cleanup-repos --older-than=30d my.ini @@ -27,6 +27,7 @@ Kallithea and deletes a repository, you can easily restore such an action by renaming the repository directory, removing the ``rm__`` prefix. + File view: follow current branch -------------------------------- @@ -70,17 +71,18 @@ (and its ancestors) by selecting it and clicking the ``Open new pull request for selected changesets`` button. + Permanent repository URLs ------------------------- Due to the complicated nature of repository grouping, URLs of repositories can often change. For example, a repository originally accessible from:: - http://server.com/repo_name + http://example.com/repo_name would get a new URL after moving it to test_group:: - http://server.com/test_group/repo_name + http://example.com/test_group/repo_name Such moving of a repository to a group can be an issue for build systems and other scripts where the repository paths are hardcoded. To mitigate this, @@ -92,19 +94,20 @@ In the example, the repository could also be accessible as:: - http://server.com/_ + http://example.com/_ The ID of a given repository can be shown from the repository ``Summary`` page, by selecting the ``Show by ID`` button next to ``Clone URL``. -E-mail notifications --------------------- -When the administrator correctly specified the e-mail settings in the Kallithea -configuration file, Kallithea will send e-mails on user registration and when +Email notifications +------------------- + +With email settings properly configured in the Kallithea +configuration file, Kallithea will send emails on user registration and when errors occur. -Mails are also sent for comments on changesets. In this case, an e-mail is sent +Emails are also sent for comments on changesets. In this case, an email is sent to the committer of the changeset (if known to Kallithea), to all reviewers of the pull request (if applicable) and to all people mentioned in the comment using @mention notation. @@ -129,7 +132,6 @@ - svn -> hg clone - git -> git clone - .. note:: svn -> hg cloning requires the ``hgsubversion`` library to be installed. @@ -151,22 +153,23 @@ Repository extra fields ~~~~~~~~~~~~~~~~~~~~~~~ -In the `Visual` tab, there is an option `Use repository extra -fields`, which allows to set custom fields for each repository in the system. -Each new field consists of 3 attributes: ``field key``, ``field label``, -``field description``. +In the *Visual* tab, there is an option "Use repository extra +fields", which allows to set custom fields for each repository in the system. + +Once enabled site-wide, the custom fields can be edited per-repository under +*Options* | *Settings* | *Extra Fields*. Example usage of such fields would be to define company-specific information into repositories, e.g., defining a ``repo_manager`` key that would give info about a manager of each repository. There's no limit for adding custom fields. Newly created fields are accessible via the API. -Meta-Tagging +Meta tagging ~~~~~~~~~~~~ -In the `Visual` tab, option `Stylify recognised meta tags` will cause Kallithea -to turn certain meta-tags, detected in repository and repository group -descriptions, into colored tags. Currently recognised tags are:: +In the *Visual* tab, option "Stylify recognised meta tags" will cause Kallithea +to turn certain text fragments in repository and repository group +descriptions into colored tags. Currently recognised tags are:: [featured] [stale] diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/locking.rst --- a/docs/usage/locking.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/locking.rst Sun Sep 06 23:36:05 2015 +0200 @@ -4,24 +4,24 @@ Repository locking ================== -Kallithea has a ``repository locking`` feature, disabled by default. When +Kallithea has a *repository locking* feature, disabled by default. When enabled, every initial clone and every pull gives users (with write permission) the exclusive right to do a push. -When repository locking is enabled, repositories get a ``locked`` state that -can be true or false. The hg/git commands ``hg/git clone``, ``hg/git pull``, +When repository locking is enabled, repositories get a ``locked`` flag. +The hg/git commands ``hg/git clone``, ``hg/git pull``, and ``hg/git push`` influence this state: -- A ``clone`` or ``pull`` action on the repository locks it (``locked=true``) +- A ``clone`` or ``pull`` action locks the target repository if the user has write/admin permissions on this repository. - Kallithea will remember the user who locked the repository so only this - specific user can unlock the repo (``locked=false``) by performing a ``push`` + specific user can unlock the repo by performing a ``push`` command. - Every other command on a locked repository from this user and every command from any other user will result in an HTTP return code 423 (Locked). - Additionally, the HTTP error includes the that locked the repository + Additionally, the HTTP error will mention the user that locked the repository (e.g., “repository locked by user ”). Each repository can be manually unlocked by an administrator from the diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/performance.rst --- a/docs/usage/performance.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/performance.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,7 +1,7 @@ .. _performance: ================================ -Optimizing Kallithea Performance +Optimizing Kallithea performance ================================ When serving a large amount of big repositories, Kallithea can start @@ -9,42 +9,32 @@ amounts of data from version control systems, here are some tips on how to get the best performance. -* Kallithea will perform better on machines with faster disks (SSD/SAN). It's - more important to have a faster disk than a faster CPU. +* Kallithea is often I/O bound, and hence a fast disk (SSD/SAN) is + usually more important than a fast CPU. -* Slowness on initial page can be easily fixed by grouping repositories, and/or +* Sluggish loading of the front page can easily be fixed by grouping repositories or by increasing cache size (see below). This includes using the lightweight dashboard - option and ``vcs_full_cache`` setting in .ini file - + option and ``vcs_full_cache`` setting in .ini file. Follow these few steps to improve performance of Kallithea system. - 1. Increase cache - In the .ini file:: + Tweak beaker cache settings in the ini file. The actual effect of that + is questionable. - beaker.cache.sql_cache_long.expire=3600 <-- set this to higher number +2. Switch from SQLite to PostgreSQL or MySQL - This option affects the cache expiration time for the main - page. Having several hundreds of repositories on main page can - sometimes make the system behave slowly when the cache expires for - all of them. Increasing the ``expire`` option to a day (86400) or a - week (604800) will improve general response times for the main - page. Kallithea has an intelligent cache expiration system and it - will expire the cache for repositories that have been changed. - -2. Switch from sqlite to postgres or mysql - - sqlite is a good option when having a small load on the system. But due to - locking issues with sqlite, it is not recommended to use it for larger - deployments. Switching to mysql or postgres will result in an immediate - performance increase. + SQLite is a good option when having a small load on the system. But due to + locking issues with SQLite, it is not recommended to use it for larger + deployments. Switching to MySQL or PostgreSQL will result in an immediate + performance increase. A tool like SQLAlchemyGrate_ can be used for + migrating to another database platform. 3. Scale Kallithea horizontally - Scaling horizontally can give huge performance increases when dealing with - large traffic (large amount of users, CI servers etc). Kallithea can be + Scaling horizontally can give huge performance benefits when dealing with + large amounts of traffic (many users, CI servers, etc.). Kallithea can be scaled horizontally on one (recommended) or multiple machines. In order to scale horizontally you need to do the following: @@ -61,3 +51,6 @@ - Load balance using round robin or IP hash, recommended is writing LB rules that will separate regular user traffic from automated processes like CI servers or build bots. + + +.. _SQLAlchemyGrate: https://github.com/shazow/sqlalchemygrate diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/statistics.rst --- a/docs/usage/statistics.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/statistics.rst Sun Sep 06 23:36:05 2015 +0200 @@ -4,7 +4,7 @@ Repository statistics ===================== -Kallithea has a ``repository statistics`` feature, disabled by default. When +Kallithea has a *repository statistics* feature, disabled by default. When enabled, the amount of commits per committer is visualized in a timeline. This feature can be enabled using the ``Enable statistics`` checkbox on the repository ``Settings`` page. diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/troubleshooting.rst --- a/docs/usage/troubleshooting.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/troubleshooting.rst Sun Sep 06 23:36:05 2015 +0200 @@ -1,6 +1,5 @@ .. _troubleshooting: - =============== Troubleshooting =============== diff -r 763dc7a96bae -r 6f60bd9090b1 docs/usage/vcs_support.rst --- a/docs/usage/vcs_support.rst Mon Jul 20 15:07:23 2015 +0200 +++ b/docs/usage/vcs_support.rst Sun Sep 06 23:36:05 2015 +0200 @@ -17,18 +17,21 @@ #'git': 'Git repository', } + Git support ----------- + Web server with chunked encoding ```````````````````````````````` + Large Git pushes require an HTTP server with support for chunked encoding for POST. The Python web servers waitress_ and gunicorn_ (Linux only) can be used. By default, Kallithea uses waitress_ for `paster serve` instead of the built-in `paste` WSGI server. -The default paste server is controlled in the .ini file:: +The paster server is controlled in the .ini file:: use = egg:waitress#main @@ -36,7 +39,6 @@ use = egg:gunicorn#main - Also make sure to comment out the following options:: threadpool_workers = @@ -47,8 +49,10 @@ Mercurial support ----------------- + Working with Mercurial subrepositories `````````````````````````````````````` + This section explains how to use Mercurial subrepositories_ in Kallithea. Example usage:: @@ -77,6 +81,7 @@ Next we can edit the subrepository data, and push back to Kallithea. This will update both repositories. + .. _waitress: http://pypi.python.org/pypi/waitress .. _gunicorn: http://pypi.python.org/pypi/gunicorn .. _subrepositories: http://mercurial.aragost.com/kick-start/en/subrepositories/ diff -r 763dc7a96bae -r 6f60bd9090b1 init.d/kallithea-daemon-arch diff -r 763dc7a96bae -r 6f60bd9090b1 init.d/kallithea-daemon-redhat diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/__init__.py --- a/kallithea/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.__init__ -~~~~~~~~~~~~~~~~~~ +kallithea +~~~~~~~~~ Kallithea, a web based repository management based on pylons versioning implementation: http://www.python.org/dev/peps/pep-0386/ @@ -71,7 +71,7 @@ from kallithea.lib import get_current_revision _rev = get_current_revision(quiet=True) if _rev and len(VERSION) > 3: - VERSION += ('%s' % _rev[0],) + VERSION += (_rev[0],) except ImportError: pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/__init__.py --- a/kallithea/bin/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.bin.__init__ -~~~~~~~~~~~~~~~~~~~~~~ +kallithea.bin +~~~~~~~~~~~~~ Binary scripts for Kallithea diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/base.py --- a/kallithea/bin/base.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/base.py Sun Sep 06 23:36:05 2015 +0200 @@ -146,7 +146,7 @@ try: with open(self._conf_name, 'rb') as conf: config = json.load(conf) - except IOError, e: + except IOError as e: sys.stderr.write(str(e) + '\n') config.update(new_config) @@ -159,6 +159,6 @@ try: with open(self._conf_name, 'rb') as conf: return json.load(conf) - except IOError, e: + except IOError as e: #sys.stderr.write(str(e) + '\n') pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/kallithea_api.py --- a/kallithea/bin/kallithea_api.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/kallithea_api.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.bin.api -~~~~~~~~~~~~~~~~~ +kallithea.bin.kallithea_api +~~~~~~~~~~~~~~~~~~~~~~~~~~~ Api CLI client for Kallithea @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import sys import argparse diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/kallithea_backup.py --- a/kallithea/bin/kallithea_backup.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/kallithea_backup.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.bin.backup_manager -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.bin.kallithea_backup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Repositories backup manager, it allows to backups all repositories and send it to backup server using RSA key via ssh. diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/kallithea_config.py --- a/kallithea/bin/kallithea_config.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/kallithea_config.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- # This program is free software: you can redistribute it and/or modify @@ -28,7 +28,6 @@ """ -from __future__ import with_statement import os import sys import uuid @@ -132,13 +131,13 @@ tmpl_file = args.template with open(tmpl_file, 'rb') as f: - tmpl_data = f.read() + tmpl_data = f.read().decode('utf-8') if args.raw: tmpl = tmpl_data else: tmpl = Template(tmpl_data).render(**tmpl_stored_args) with open(args.filename, 'wb') as f: - f.write(tmpl) + f.write(tmpl.encode('utf-8')) print 'Wrote new config file in %s' % (os.path.abspath(args.filename)) except Exception: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/kallithea_gist.py --- a/kallithea/bin/kallithea_gist.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/kallithea_gist.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys import stat @@ -164,7 +163,7 @@ try: return _run(argv) - except Exception, e: + except Exception as e: print e return 1 diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/ldap_sync.py --- a/kallithea/bin/ldap_sync.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/ldap_sync.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.bin.__init__ -~~~~~~~~~~~~~~~~~~~~~~ +kallithea.bin.ldap_sync +~~~~~~~~~~~~~~~~~~~~~~~ LDAP sync script @@ -198,8 +198,8 @@ config.get("default", "ldap_user"), config.get("default", "ldap_key"), config.get("default", "base_dn")) - self.rhodocode_api = API(config.get("default", "api_url"), - config.get("default", "api_key")) + self.kallithea_api = API(config.get("default", "api_url"), + config.get("default", "api_key")) def update_groups_from_ldap(self): """Add all the groups from LDAP to Kallithea.""" @@ -225,7 +225,7 @@ for member in members: if member not in group_users: try: - self.rhodocode_api.remove_membership(group, + self.kallithea_api.remove_membership(group, member) except UserNotInGroupError: pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/rebranddb.py --- a/kallithea/bin/rebranddb.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/rebranddb.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -57,7 +57,7 @@ t = metadata.tables[old_ui_name] print 'Renaming', t, 'to', new_ui_name migrate.changeset.rename_table(t, new_ui_name) - except KeyError, e: + except KeyError as e: print 'Not renaming ui:', e if new_settings_name == old_settings_name: @@ -67,7 +67,7 @@ t = metadata.tables[old_settings_name] print 'Renaming', t, 'to', new_settings_name migrate.changeset.rename_table(t, new_settings_name) - except KeyError, e: + except KeyError as e: print 'Not renaming settings:', e old_auth_name = 'internal' if old == 'kallithea' else old diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/bin/template.ini.mako --- a/kallithea/bin/template.ini.mako Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/bin/template.ini.mako Sun Sep 06 23:36:05 2015 +0200 @@ -1,32 +1,64 @@ ## -*- coding: utf-8 -*- -<%text>################################################################################ -################################################################################ +<%text>################################################################################ +<%text>################################################################################ # Kallithea - config file generated with kallithea-config # -################################################################################ -################################################################################ - +<%text>################################################################################ +<%text>################################################################################ + [DEFAULT] debug = true pdebug = false -<%text> -################################################################################ -## Uncomment and replace with the address which should receive ## -## any error reports after application crash ## -## Additionally those settings will be used by Kallithea mailing system ## -################################################################################ -#email_to = admin@localhost -#error_email_from = paste_error@localhost -#app_email_from = kallithea-noreply@localhost -#error_message = + +<%text>################################################################################ +<%text>## Email settings ## +<%text>## ## +<%text>## Refer to the documentation ("Email settings") for more details. ## +<%text>## ## +<%text>## It is recommended to use a valid sender address that passes access ## +<%text>## validation and spam filtering in mail servers. ## +<%text>################################################################################ + +<%text>## 'From' header for application emails. You can optionally add a name. +<%text>## Default: +#app_email_from = Kallithea +<%text>## Examples: +#app_email_from = Kallithea +#app_email_from = kallithea-noreply@example.com + +<%text>## Subject prefix for application emails. +<%text>## A space between this prefix and the real subject is automatically added. +<%text>## Default: +#email_prefix = +<%text>## Example: #email_prefix = [Kallithea] +<%text>## Recipients for error emails and fallback recipients of application mails. +<%text>## Multiple addresses can be specified, space-separated. +<%text>## Only addresses are allowed, do not add any name part. +<%text>## Default: +#email_to = +<%text>## Examples: +#email_to = admin@example.com +#email_to = admin@example.com another_admin@example.com + +<%text>## 'From' header for error emails. You can optionally add a name. +<%text>## Default: +#error_email_from = pylons@yourapp.com +<%text>## Examples: +#error_email_from = Kallithea Errors +#error_email_from = paste_error@example.com + +<%text>## SMTP server settings +<%text>## Only smtp_server is mandatory. All other settings take the specified default +<%text>## values. #smtp_server = mail.server.com #smtp_username = #smtp_password = -#smtp_port = +#smtp_port = 25 #smtp_use_tls = false -#smtp_use_ssl = true -<%text>## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.) +#smtp_use_ssl = false +<%text>## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.). +<%text>## If empty, use any of the authentication parameters supported by the server. #smtp_auth = [server:main] @@ -39,8 +71,8 @@ threadpool_max_requests = 10 <%text>## option to use threads of process use_threadpool = true -%endif -%if http_server == 'waitress': + +%elif http_server == 'waitress': <%text>## WAITRESS ## use = egg:waitress#main <%text>## number of worker threads @@ -50,8 +82,8 @@ <%text>## use poll instead of select, fixes fd limits, may not work on old <%text>## windows systems. #asyncore_use_poll = True -%endif -%if http_server == 'gunicorn': + +%elif http_server == 'gunicorn': <%text>## GUNICORN ## use = egg:gunicorn#main <%text>## number of process workers. You must set `instance_id = *` when this option @@ -66,8 +98,8 @@ <%text>## ammount of time a worker can handle request before it gets killed and <%text>## restarted timeout = 3600 -%endif -%if http_server == 'uwsgi': + +%elif http_server == 'uwsgi': <%text>## UWSGI ## <%text>## run with uwsgi --ini-paste-logged [uwsgi] @@ -97,11 +129,11 @@ max-requests = 1000 <%text>## enable large buffers -buffer-size=65535 +buffer-size = 65535 <%text>## socket and http timeouts ## -http-timeout=3600 -socket-timeout=3600 +http-timeout = 3600 +socket-timeout = 3600 <%text>## Log requests slower than the specified number of milliseconds. log-slow = 10 @@ -127,12 +159,13 @@ <%text>## how many workers should be spawned at a time cheaper-step = 1 + %endif <%text>## COMMON ## host = ${host} port = ${port} -<%text>## prefix middleware for rc +<%text>## middleware for hosting the WSGI application under a URL prefix #[filter:proxy-prefix] #use = egg:PasteDeploy#prefix #prefix = / @@ -245,7 +278,6 @@ #issue_server_link_wiki = https://mywiki.com/{id} #issue_prefix_wiki = WIKI- - <%text>## instance-id prefix <%text>## a prefix key for this instance used for cache invalidation when running <%text>## multiple instances of kallithea, make sure it's globally unique for @@ -267,11 +299,10 @@ <%text>## allows to setup custom hooks in settings page allow_custom_hooks_settings = True -<%text> -#################################### -### CELERY CONFIG #### -#################################### - +<%text>#################################### +<%text>### CELERY CONFIG #### +<%text>#################################### + use_celery = false broker.host = localhost broker.vhost = rabbitmqhost @@ -295,99 +326,73 @@ <%text>## tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false -<%text> -#################################### -### BEAKER CACHE #### -#################################### - -beaker.cache.data_dir=${here}/data/cache/data -beaker.cache.lock_dir=${here}/data/cache/lock + +<%text>#################################### +<%text>### BEAKER CACHE #### +<%text>#################################### -beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long +beaker.cache.data_dir = ${here}/data/cache/data +beaker.cache.lock_dir = ${here}/data/cache/lock -beaker.cache.super_short_term.type=memory -beaker.cache.super_short_term.expire=10 -beaker.cache.super_short_term.key_length = 256 +beaker.cache.regions = short_term,long_term,sql_cache_short -beaker.cache.short_term.type=memory -beaker.cache.short_term.expire=60 +beaker.cache.short_term.type = memory +beaker.cache.short_term.expire = 60 beaker.cache.short_term.key_length = 256 -beaker.cache.long_term.type=memory -beaker.cache.long_term.expire=36000 +beaker.cache.long_term.type = memory +beaker.cache.long_term.expire = 36000 beaker.cache.long_term.key_length = 256 -beaker.cache.sql_cache_short.type=memory -beaker.cache.sql_cache_short.expire=10 +beaker.cache.sql_cache_short.type = memory +beaker.cache.sql_cache_short.expire = 10 beaker.cache.sql_cache_short.key_length = 256 -beaker.cache.sql_cache_med.type=memory -beaker.cache.sql_cache_med.expire=360 -beaker.cache.sql_cache_med.key_length = 256 +<%text>#################################### +<%text>### BEAKER SESSION #### +<%text>#################################### + +<%text>## Name of session cookie. Should be unique for a given host and path, even when running +<%text>## on different ports. Otherwise, cookie sessions will be shared and messed up. +beaker.session.key = kallithea +<%text>## Sessions should always only be accessible by the browser, not directly by JavaScript. +beaker.session.httponly = true +<%text>## Session lifetime. 2592000 seconds is 30 days. +beaker.session.timeout = 2592000 -beaker.cache.sql_cache_long.type=file -beaker.cache.sql_cache_long.expire=3600 -beaker.cache.sql_cache_long.key_length = 256 -<%text> -#################################### -### BEAKER SESSION #### -#################################### -## Type of storage used for the session, current types are -## dbm, file, memcached, database, and memory. -## The storage uses the Container API -## that is also used by the cache system. - -<%text>## db session ## +<%text>## Server secret used with HMAC to ensure integrity of cookies. +beaker.session.secret = ${uuid()} +<%text>## Further, encrypt the data with AES. +#beaker.session.encrypt_key = +#beaker.session.validate_key = + +<%text>## Type of storage used for the session, current types are +<%text>## dbm, file, memcached, database, and memory. + +<%text>## File system storage of session data. (default) +#beaker.session.type = file + +<%text>## Cookie only, store all session data inside the cookie. Requires secure secrets. +#beaker.session.type = cookie + +<%text>## Database storage of session data. #beaker.session.type = ext:database #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea #beaker.session.table_name = db_session -<%text>## encrypted cookie client side session, good for many instances ## -#beaker.session.type = cookie - -<%text>## file based cookies (default) ## -#beaker.session.type = file - -<%text> -## beaker.session.key should be unique for a given host, even when running -## on different ports. Otherwise, cookie sessions will be shared and messed up. - -beaker.session.key = kallithea -beaker.session.secret = ${uuid()} - -<%text>## Secure encrypted cookie. Requires AES and AES python libraries -<%text>## you must disable beaker.session.secret to use this -#beaker.session.encrypt_key = -#beaker.session.validate_key = - -<%text>## sets session as invalid if it haven't been accessed for given amount of time -beaker.session.timeout = 2592000 -beaker.session.httponly = true -#beaker.session.cookie_path = / +%if error_aggregation_service == 'errormator': +<%text>############################ +<%text>## ERROR HANDLING SYSTEMS ## +<%text>############################ -<%text>## uncomment for https secure cookie -beaker.session.secure = false - -<%text>## auto save the session to not to use .save() -beaker.session.auto = False - -<%text>## default cookie expiration time in seconds `true` expire at browser close ## -#beaker.session.cookie_expires = 3600 +<%text>#################### +<%text>### [errormator] ### +<%text>#################### -%if error_aggregation_service == 'errormator': -<%text> -############################ -## ERROR HANDLING SYSTEMS ## -############################ +<%text>## Errormator is tailored to work with Kallithea, see +<%text>## http://errormator.com for details how to obtain an account +<%text>## you must install python package `errormator_client` to make it work -#################### -### [errormator] ### -#################### - -## Errormator is tailored to work with Kallithea, see -## http://errormator.com for details how to obtain an account -## you must install python package `errormator_client` to make it work - <%text>## errormator enabled errormator = false @@ -407,10 +412,10 @@ errormator.slow_requests = true <%text>## enable hooking to application loggers -# errormator.logging = true +#errormator.logging = true <%text>## minimum log level for log capture -# errormator.logging.level = WARNING +#errormator.logging.level = WARNING <%text>## send logs only from erroneous/slow requests <%text>## (saves API quota for intensive logging) @@ -423,7 +428,6 @@ <%text>## start with HTTP* this list be extended with additional keywords here errormator.environ_keys_whitelist = - <%text>## list of keywords that should be blanked from request object <%text>## can be string with comma separated list of words in lowercase <%text>## (by default client will always blank keys that contain following words @@ -431,20 +435,19 @@ <%text>## this list be extended with additional keywords set here errormator.request_keys_blacklist = - <%text>## list of namespaces that should be ignores when gathering log entries <%text>## can be string with comma separated list of namespaces <%text>## (by default the client ignores own entries: errormator_client.client) errormator.log_namespace_blacklist = + %elif error_aggregation_service == 'sentry': -<%text> -################ -### [sentry] ### -################ +<%text>################ +<%text>### [sentry] ### +<%text>################ -## sentry is a alternative open source error aggregator -## you must install python packages `sentry` and `raven` to enable - +<%text>## sentry is a alternative open source error aggregator +<%text>## you must install python packages `sentry` and `raven` to enable + sentry.dsn = YOUR_DNS sentry.servers = sentry.name = @@ -455,47 +458,50 @@ sentry.site = sentry.include_paths = sentry.exclude_paths = + %endif -<%text> -################################################################################ -## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ## -## Debug mode will enable the interactive debugging tool, allowing ANYONE to ## -## execute malicious code after an exception is raised. ## -################################################################################ +<%text>################################################################################ +<%text>## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ## +<%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ## +<%text>## execute malicious code after an exception is raised. ## +<%text>################################################################################ set debug = false -<%text> -################################## -### LOGVIEW CONFIG ### -################################## - + +<%text>################################## +<%text>### LOGVIEW CONFIG ### +<%text>################################## + logview.sqlalchemy = #faa logview.pylons.templating = #bfb logview.pylons.util = #eee -<%text> -######################################################### -### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ### -######################################################### - + +<%text>######################################################### +<%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ### +<%text>######################################################### + %if database_engine == 'sqlite': # SQLITE [default] sqlalchemy.db1.url = sqlite:///${here}/kallithea.db?timeout=60 + %elif database_engine == 'postgres': # POSTGRESQL sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea + %elif database_engine == 'mysql': # MySQL sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea + %endif # see sqlalchemy docs for others sqlalchemy.db1.echo = false sqlalchemy.db1.pool_recycle = 3600 sqlalchemy.db1.convert_unicode = true -<%text> -################################ -### LOGGING CONFIGURATION #### -################################ - + +<%text>################################ +<%text>### LOGGING CONFIGURATION #### +<%text>################################ + [loggers] keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer @@ -504,11 +510,11 @@ [formatters] keys = generic, color_formatter, color_formatter_sql -<%text> -############# -## LOGGERS ## -############# - + +<%text>############# +<%text>## LOGGERS ## +<%text>############# + [logger_root] level = NOTSET handlers = console @@ -549,11 +555,11 @@ handlers = qualname = whoosh_indexer propagate = 1 -<%text> -############## -## HANDLERS ## -############## - + +<%text>############## +<%text>## HANDLERS ## +<%text>############## + [handler_console] class = StreamHandler args = (sys.stderr,) @@ -565,21 +571,21 @@ args = (sys.stderr,) level = WARN formatter = generic -<%text> -################ -## FORMATTERS ## -################ - + +<%text>################ +<%text>## FORMATTERS ## +<%text>################ + [formatter_generic] format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter] -class=kallithea.lib.colored_formatter.ColorFormatter -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatter +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter_sql] -class=kallithea.lib.colored_formatter.ColorFormatterSql -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatterSql +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/deployment.ini_tmpl --- a/kallithea/config/deployment.ini_tmpl Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/deployment.ini_tmpl Sun Sep 06 23:36:05 2015 +0200 @@ -11,23 +11,55 @@ pdebug = false ################################################################################ -## Uncomment and replace with the address which should receive ## -## any error reports after application crash ## -## Additionally those settings will be used by Kallithea mailing system ## +## Email settings ## +## ## +## Refer to the documentation ("Email settings") for more details. ## +## ## +## It is recommended to use a valid sender address that passes access ## +## validation and spam filtering in mail servers. ## ################################################################################ -#email_to = admin@localhost -#error_email_from = paste_error@localhost -#app_email_from = kallithea-noreply@localhost -#error_message = + +## 'From' header for application emails. You can optionally add a name. +## Default: +#app_email_from = Kallithea +## Examples: +#app_email_from = Kallithea +#app_email_from = kallithea-noreply@example.com + +## Subject prefix for application emails. +## A space between this prefix and the real subject is automatically added. +## Default: +#email_prefix = +## Example: #email_prefix = [Kallithea] +## Recipients for error emails and fallback recipients of application mails. +## Multiple addresses can be specified, space-separated. +## Only addresses are allowed, do not add any name part. +## Default: +#email_to = +## Examples: +#email_to = admin@example.com +#email_to = admin@example.com another_admin@example.com + +## 'From' header for error emails. You can optionally add a name. +## Default: +#error_email_from = pylons@yourapp.com +## Examples: +#error_email_from = Kallithea Errors +#error_email_from = paste_error@example.com + +## SMTP server settings +## Only smtp_server is mandatory. All other settings take the specified default +## values. #smtp_server = mail.server.com #smtp_username = #smtp_password = -#smtp_port = +#smtp_port = 25 #smtp_use_tls = false -#smtp_use_ssl = true -## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.) +#smtp_use_ssl = false +## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.). +## If empty, use any of the authentication parameters supported by the server. #smtp_auth = [server:main] @@ -94,11 +126,11 @@ #max-requests = 1000 ## enable large buffers -#buffer-size=65535 +#buffer-size = 65535 ## socket and http timeouts ## -#http-timeout=3600 -#socket-timeout=3600 +#http-timeout = 3600 +#socket-timeout = 3600 ## Log requests slower than the specified number of milliseconds. #log-slow = 10 @@ -129,7 +161,7 @@ host = 127.0.0.1 port = 5000 -## prefix middleware for rc +## middleware for hosting the WSGI application under a URL prefix #[filter:proxy-prefix] #use = egg:PasteDeploy#prefix #prefix = / @@ -242,7 +274,6 @@ #issue_server_link_wiki = https://mywiki.com/{id} #issue_prefix_wiki = WIKI- - ## instance-id prefix ## a prefix key for this instance used for cache invalidation when running ## multiple instances of kallithea, make sure it's globally unique for @@ -264,7 +295,6 @@ ## allows to setup custom hooks in settings page allow_custom_hooks_settings = True - #################################### ### CELERY CONFIG #### #################################### @@ -297,79 +327,55 @@ ### BEAKER CACHE #### #################################### -beaker.cache.data_dir=%(here)s/data/cache/data -beaker.cache.lock_dir=%(here)s/data/cache/lock - -beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long +beaker.cache.data_dir = %(here)s/data/cache/data +beaker.cache.lock_dir = %(here)s/data/cache/lock -beaker.cache.super_short_term.type=memory -beaker.cache.super_short_term.expire=10 -beaker.cache.super_short_term.key_length = 256 +beaker.cache.regions = short_term,long_term,sql_cache_short -beaker.cache.short_term.type=memory -beaker.cache.short_term.expire=60 +beaker.cache.short_term.type = memory +beaker.cache.short_term.expire = 60 beaker.cache.short_term.key_length = 256 -beaker.cache.long_term.type=memory -beaker.cache.long_term.expire=36000 +beaker.cache.long_term.type = memory +beaker.cache.long_term.expire = 36000 beaker.cache.long_term.key_length = 256 -beaker.cache.sql_cache_short.type=memory -beaker.cache.sql_cache_short.expire=10 +beaker.cache.sql_cache_short.type = memory +beaker.cache.sql_cache_short.expire = 10 beaker.cache.sql_cache_short.key_length = 256 -beaker.cache.sql_cache_med.type=memory -beaker.cache.sql_cache_med.expire=360 -beaker.cache.sql_cache_med.key_length = 256 - -beaker.cache.sql_cache_long.type=file -beaker.cache.sql_cache_long.expire=3600 -beaker.cache.sql_cache_long.key_length = 256 - #################################### ### BEAKER SESSION #### #################################### + +## Name of session cookie. Should be unique for a given host and path, even when running +## on different ports. Otherwise, cookie sessions will be shared and messed up. +beaker.session.key = kallithea +## Sessions should always only be accessible by the browser, not directly by JavaScript. +beaker.session.httponly = true +## Session lifetime. 2592000 seconds is 30 days. +beaker.session.timeout = 2592000 + +## Server secret used with HMAC to ensure integrity of cookies. +beaker.session.secret = ${app_instance_uuid} +## Further, encrypt the data with AES. +#beaker.session.encrypt_key = +#beaker.session.validate_key = + ## Type of storage used for the session, current types are ## dbm, file, memcached, database, and memory. -## The storage uses the Container API -## that is also used by the cache system. + +## File system storage of session data. (default) +#beaker.session.type = file -## db session ## +## Cookie only, store all session data inside the cookie. Requires secure secrets. +#beaker.session.type = cookie + +## Database storage of session data. #beaker.session.type = ext:database #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea #beaker.session.table_name = db_session -## encrypted cookie client side session, good for many instances ## -#beaker.session.type = cookie - -## file based cookies (default) ## -#beaker.session.type = file - -## beaker.session.key should be unique for a given host, even when running -## on different ports. Otherwise, cookie sessions will be shared and messed up. -beaker.session.key = kallithea -beaker.session.secret = ${app_instance_uuid} - -## Secure encrypted cookie. Requires AES and AES python libraries -## you must disable beaker.session.secret to use this -#beaker.session.encrypt_key = -#beaker.session.validate_key = - -## sets session as invalid if it haven't been accessed for given amount of time -beaker.session.timeout = 2592000 -beaker.session.httponly = true -#beaker.session.cookie_path = / - -## uncomment for https secure cookie -beaker.session.secure = false - -## auto save the session to not to use .save() -beaker.session.auto = False - -## default cookie expiration time in seconds `true` expire at browser close ## -#beaker.session.cookie_expires = 3600 - - ############################ ## ERROR HANDLING SYSTEMS ## ############################ @@ -401,10 +407,10 @@ errormator.slow_requests = true ## enable hooking to application loggers -# errormator.logging = true +#errormator.logging = true ## minimum log level for log capture -# errormator.logging.level = WARNING +#errormator.logging.level = WARNING ## send logs only from erroneous/slow requests ## (saves API quota for intensive logging) @@ -417,7 +423,6 @@ ## start with HTTP* this list be extended with additional keywords here errormator.environ_keys_whitelist = - ## list of keywords that should be blanked from request object ## can be string with comma separated list of words in lowercase ## (by default client will always blank keys that contain following words @@ -425,13 +430,11 @@ ## this list be extended with additional keywords set here errormator.request_keys_blacklist = - ## list of namespaces that should be ignores when gathering log entries ## can be string with comma separated list of namespaces ## (by default the client ignores own entries: errormator_client.client) errormator.log_namespace_blacklist = - ################ ### [sentry] ### ################ @@ -450,7 +453,6 @@ sentry.include_paths = sentry.exclude_paths = - ################################################################################ ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ## ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ## @@ -474,10 +476,10 @@ sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60 # POSTGRESQL -# sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea +#sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea # MySQL -# sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea +#sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea # see sqlalchemy docs for others @@ -568,11 +570,11 @@ datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter] -class=kallithea.lib.colored_formatter.ColorFormatter -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatter +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S [formatter_color_formatter_sql] -class=kallithea.lib.colored_formatter.ColorFormatterSql -format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s +class = kallithea.lib.colored_formatter.ColorFormatterSql +format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/environment.py --- a/kallithea/config/environment.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/environment.py Sun Sep 06 23:36:05 2015 +0200 @@ -20,9 +20,9 @@ import kallithea import platform -from mako.lookup import TemplateLookup -from pylons.configuration import PylonsConfig -from pylons.error import handle_mako_error +import pylons +import mako.lookup +import beaker # don't remove this import it does magic for celery from kallithea.lib import celerypylons @@ -49,7 +49,7 @@ Configure the Pylons environment via the ``pylons.config`` object """ - config = PylonsConfig() + config = pylons.configuration.PylonsConfig() # Pylons paths root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -75,13 +75,12 @@ load_rcextensions(root_path=config['here']) # Setup cache object as early as possible - import pylons pylons.cache._push_object(config['pylons.app_globals'].cache) # Create the Mako TemplateLookup, with the default auto-escaping - config['pylons.app_globals'].mako_lookup = TemplateLookup( + config['pylons.app_globals'].mako_lookup = mako.lookup.TemplateLookup( directories=paths['templates'], - error_handler=handle_mako_error, + error_handler=pylons.error.handle_mako_error, module_directory=os.path.join(app_conf['cache_dir'], 'templates'), input_encoding='utf-8', default_filters=['escape'], imports=['from webhelpers.html import escape']) @@ -137,5 +136,5 @@ if str2bool(config.get('initial_repo_scan', True)): repo2db_mapper(ScmModel().repo_scan(repos_path), - remove_obsolete=False, install_git_hook=False) + remove_obsolete=False, install_git_hooks=False) return config diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/middleware.py --- a/kallithea/config/middleware.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/middleware.py Sun Sep 06 23:36:05 2015 +0200 @@ -15,7 +15,6 @@ Pylons middleware initialization """ -from beaker.middleware import SessionMiddleware from routes.middleware import RoutesMiddleware from paste.cascade import Cascade from paste.registry import RegistryManager @@ -29,6 +28,7 @@ from kallithea.lib.middleware.simplehg import SimpleHg from kallithea.lib.middleware.simplegit import SimpleGit from kallithea.lib.middleware.https_fixup import HttpsFixup +from kallithea.lib.middleware.sessionmiddleware import SecureSessionMiddleware from kallithea.config.environment import load_environment from kallithea.lib.middleware.wrapper import RequestWrapper @@ -60,7 +60,7 @@ # Routing/Session/Cache Middleware app = RoutesMiddleware(app, config['routes.map']) - app = SessionMiddleware(app, config) + app = SecureSessionMiddleware(app, config) # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) if asbool(config['pdebug']): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/post_receive_tmpl.py --- a/kallithea/config/post_receive_tmpl.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/post_receive_tmpl.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/pre_receive_tmpl.py --- a/kallithea/config/pre_receive_tmpl.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/pre_receive_tmpl.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/config/routing.py --- a/kallithea/config/routing.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/config/routing.py Sun Sep 06 23:36:05 2015 +0200 @@ -19,7 +19,6 @@ refer to the routes manual at http://routes.groovie.org/docs/ """ -from __future__ import with_statement from routes import Mapper # prefix for non repository related links needs to be prefixed with `/` @@ -120,15 +119,12 @@ action="index", conditions=dict(method=["GET"])) m.connect("new_repo", "/create_repository", action="create_repository", conditions=dict(method=["GET"])) - m.connect("/repos/{repo_name:.*?}", + m.connect("put_repo", "/repos/{repo_name:.*?}", action="update", conditions=dict(method=["PUT"], function=check_repo)) m.connect("delete_repo", "/repos/{repo_name:.*?}", action="delete", conditions=dict(method=["DELETE"], )) - m.connect("repo", "/repos/{repo_name:.*?}", - action="show", conditions=dict(method=["GET"], - function=check_repo)) #ADMIN REPOSITORY GROUPS ROUTES with rmap.submapper(path_prefix=ADMIN_PREFIX, @@ -206,7 +202,7 @@ m.connect("edit_user_api_keys", "/users/{id}/edit/api_keys", action="edit_api_keys", conditions=dict(method=["GET"])) m.connect("edit_user_api_keys", "/users/{id}/edit/api_keys", - action="add_api_key", conditions=dict(method=["PUT"])) + action="add_api_key", conditions=dict(method=["POST"])) m.connect("edit_user_api_keys", "/users/{id}/edit/api_keys", action="delete_api_key", conditions=dict(method=["DELETE"])) @@ -699,11 +695,6 @@ action='create', conditions=dict(function=check_repo, method=["POST"])) - rmap.connect('pullrequest_copy_update', - '/{repo_name:.*?}/pull-request-update/{pull_request_id}', controller='pullrequests', - action='copy_update', conditions=dict(function=check_repo, - method=["POST"])) - rmap.connect('pullrequest_show', '/{repo_name:.*?}/pull-request/{pull_request_id:\\d+}{extra:(/.*)?}', extra='', controller='pullrequests', diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/admin.py --- a/kallithea/controllers/admin/admin.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/admin.py Sun Sep 06 23:36:05 2015 +0200 @@ -54,13 +54,13 @@ :param user_log: :param search_term: """ - log.debug('Initial search term: %r' % search_term) + log.debug('Initial search term: %r', search_term) qry = None if search_term: qp = QueryParser('repository', schema=JOURNAL_SCHEMA) qp.add_plugin(DateParserPlugin()) qry = qp.parse(unicode(search_term)) - log.debug('Filtering using parsed query %r' % qry) + log.debug('Filtering using parsed query %r', qry) def wildcard_handler(col, wc_term): if wc_term.startswith('*') and not wc_term.endswith('*'): @@ -85,7 +85,7 @@ field = getattr(UserLog, 'username') else: field = getattr(UserLog, field) - log.debug('filter field: %s val=>%s' % (field, val)) + log.debug('filter field: %s val=>%s', field, val) #sql filtering if isinstance(term, query.Wildcard): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/auth_settings.py --- a/kallithea/controllers/admin/auth_settings.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/auth_settings.py Sun Sep 06 23:36:05 2015 +0200 @@ -23,7 +23,6 @@ :author: akesterson """ -import pprint import logging import formencode.htmlfill import traceback @@ -61,56 +60,67 @@ ] c.enabled_plugins = Setting.get_auth_plugins() - def index(self, defaults=None, errors=None, prefix_error=False): - self.__load_defaults() - _defaults = {} - # default plugins loaded - formglobals = { - "auth_plugins": ["kallithea.lib.auth_modules.auth_internal"] - } - formglobals.update(Setting.get_auth_settings()) - formglobals["plugin_settings"] = {} - formglobals["auth_plugins_shortnames"] = {} - _defaults["auth_plugins"] = formglobals["auth_plugins"] + def __render(self, defaults, errors): + c.defaults = {} + c.plugin_settings = {} + c.plugin_shortnames = {} - for module in formglobals["auth_plugins"]: + for module in c.enabled_plugins: plugin = auth_modules.loadplugin(module) plugin_name = plugin.name - formglobals["auth_plugins_shortnames"][module] = plugin_name - formglobals["plugin_settings"][module] = plugin.plugin_settings() - for v in formglobals["plugin_settings"][module]: + c.plugin_shortnames[module] = plugin_name + c.plugin_settings[module] = plugin.plugin_settings() + for v in c.plugin_settings[module]: fullname = ("auth_" + plugin_name + "_" + v["name"]) if "default" in v: - _defaults[fullname] = v["default"] + c.defaults[fullname] = v["default"] # Current values will be the default on the form, if there are any setting = Setting.get_by_name(fullname) - if setting: - _defaults[fullname] = setting.app_settings_value + if setting is not None: + c.defaults[fullname] = setting.app_settings_value # we want to show , separated list of enabled plugins - _defaults['auth_plugins'] = ','.join(_defaults['auth_plugins']) - if defaults: - _defaults.update(defaults) + c.defaults['auth_plugins'] = ','.join(c.enabled_plugins) - formglobals["defaults"] = _defaults - # set template context variables - for k, v in formglobals.iteritems(): - setattr(c, k, v) + if defaults: + c.defaults.update(defaults) - log.debug(pprint.pformat(formglobals, indent=4)) log.debug(formatted_json(defaults)) return formencode.htmlfill.render( render('admin/auth/auth_settings.html'), - defaults=_defaults, + defaults=c.defaults, errors=errors, - prefix_error=prefix_error, + prefix_error=False, encoding="UTF-8", force_defaults=False) + def index(self): + self.__load_defaults() + return self.__render(defaults=None, errors=None) + def auth_settings(self): """POST create and store auth settings""" self.__load_defaults() + log.debug("POST Result: %s", formatted_json(dict(request.POST))) + + # First, parse only the plugin list (not the plugin settings). + _auth_plugins_validator = AuthSettingsForm([]).fields['auth_plugins'] + try: + new_enabled_plugins = _auth_plugins_validator.to_python(request.POST.get('auth_plugins')) + except formencode.Invalid: + # User provided an invalid plugin list. Just fall back to + # the list of currently enabled plugins. (We'll re-validate + # and show an error message to the user, below.) + pass + else: + # Hide plugins that the user has asked to be disabled, but + # do not show plugins that the user has asked to be enabled + # (yet), since that'll cause validation errors and/or wrong + # settings being applied (e.g. checkboxes being cleared), + # since the plugin settings will not be in the POST data. + c.enabled_plugins = [ p for p in c.enabled_plugins if p in new_enabled_plugins ] + + # Next, parse everything including plugin settings. _form = AuthSettingsForm(c.enabled_plugins)() - log.debug("POST Result: %s" % formatted_json(dict(request.POST))) try: form_result = _form.to_python(dict(request.POST)) @@ -118,19 +128,19 @@ if k == 'auth_plugins': # we want to store it comma separated inside our settings v = ','.join(v) - log.debug("%s = %s" % (k, str(v))) + log.debug("%s = %s", k, str(v)) setting = Setting.create_or_update(k, v) Session().add(setting) Session().commit() h.flash(_('Auth settings updated successfully'), category='success') - except formencode.Invalid, errors: + except formencode.Invalid as errors: log.error(traceback.format_exc()) e = errors.error_dict or {} - return self.index( + return self.__render( defaults=errors.value, errors=e, - prefix_error=False) + ) except Exception: log.error(traceback.format_exc()) h.flash(_('error occurred during update of auth settings'), diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/defaults.py --- a/kallithea/controllers/admin/defaults.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/defaults.py Sun Sep 06 23:36:05 2015 +0200 @@ -97,7 +97,7 @@ h.flash(_('Default settings updated successfully'), category='success') - except formencode.Invalid, errors: + except formencode.Invalid as errors: defaults = errors.value return htmlfill.render( diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/gists.py --- a/kallithea/controllers/admin/gists.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/gists.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.controllers.admin.gist -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.controllers.admin.gists +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gist controller for Kallithea @@ -56,7 +56,7 @@ def __load_defaults(self, extra_values=None): c.lifetime_values = [ - (str(-1), _('forever')), + (str(-1), _('Forever')), (str(5), _('5 minutes')), (str(60), _('1 hour')), (str(60 * 24), _('1 day')), @@ -130,7 +130,7 @@ ) Session().commit() new_gist_id = gist.gist_access_id - except formencode.Invalid, errors: + except formencode.Invalid as errors: defaults = errors.value return formencode.htmlfill.render( @@ -141,7 +141,7 @@ encoding="UTF-8", force_defaults=False) - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('Error occurred during gist creation'), category='error') return redirect(url('new_gist')) @@ -196,8 +196,8 @@ #check if this gist is not expired if c.gist.gist_expires != -1: if time.time() > c.gist.gist_expires: - log.error('Gist expired at %s' % - (time_to_datetime(c.gist.gist_expires))) + log.error('Gist expired at %s', + time_to_datetime(c.gist.gist_expires)) raise HTTPNotFound() try: c.file_changeset, c.files = GistModel().get_gist_files(gist_id, @@ -221,8 +221,8 @@ #check if this gist is not expired if c.gist.gist_expires != -1: if time.time() > c.gist.gist_expires: - log.error('Gist expired at %s' % - (time_to_datetime(c.gist.gist_expires))) + log.error('Gist expired at %s', + time_to_datetime(c.gist.gist_expires)) raise HTTPNotFound() try: c.file_changeset, c.files = GistModel().get_gist_files(gist_id) @@ -230,7 +230,7 @@ log.error(traceback.format_exc()) raise HTTPNotFound() - self.__load_defaults(extra_values=('0', _('unmodified'))) + self.__load_defaults(extra_values=('0', _('Unmodified'))) rendered = render('admin/gists/edit.html') if request.POST: @@ -285,8 +285,8 @@ ##TODO: maybe move this to model ? if revision != last_rev.raw_id: - log.error('Last revision %s is different than submitted %s' - % (revision, last_rev)) + log.error('Last revision %s is different than submitted %s', + revision, last_rev) # our gist has newer version than we success = False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/my_account.py --- a/kallithea/controllers/admin/my_account.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/my_account.py Sun Sep 06 23:36:05 2015 +0200 @@ -37,12 +37,12 @@ from kallithea import EXTERN_TYPE_INTERNAL from kallithea.lib import helpers as h +from kallithea.lib import auth_modules from kallithea.lib.auth import LoginRequired, NotAnonymous, AuthUser from kallithea.lib.base import BaseController, render from kallithea.lib.utils2 import generate_api_key, safe_int from kallithea.lib.compat import json -from kallithea.model.db import Repository, \ - UserEmailMap, UserApiKeys, User, UserFollowing +from kallithea.model.db import Repository, UserEmailMap, User, UserFollowing from kallithea.model.forms import UserForm, PasswordChangeForm from kallithea.model.user import UserModel from kallithea.model.repo import RepoModel @@ -98,10 +98,14 @@ # url('my_account') c.active = 'profile' self.__load_data() - c.perm_user = AuthUser(user_id=self.authuser.user_id, - ip_addr=self.ip_addr) - c.extern_type = c.user.extern_type - c.extern_name = c.user.extern_name + c.perm_user = AuthUser(user_id=self.authuser.user_id) + c.ip_addr = self.ip_addr + managed_fields = auth_modules.get_managed_fields(c.user) + def_user_perms = User.get_default_user().AuthUser.permissions['global'] + if 'hg.register.none' in def_user_perms: + managed_fields.extend(['username', 'firstname', 'lastname', 'email']) + + c.readonly = lambda n: 'readonly' if n in managed_fields else None defaults = c.user.get_dict() update = False @@ -117,11 +121,8 @@ form_result = _form.to_python(post_data) # skip updating those attrs for my account skip_attrs = ['admin', 'active', 'extern_type', 'extern_name', - 'new_password', 'password_confirmation'] - #TODO: plugin should define if username can be updated - if c.extern_type != EXTERN_TYPE_INTERNAL: - # forbid updating username for external accounts - skip_attrs.append('username') + 'new_password', 'password_confirmation', + ] + managed_fields UserModel().update(self.authuser.user_id, form_result, skip_attrs=skip_attrs) @@ -130,7 +131,7 @@ Session().commit() update = True - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/my_account/my_account.html'), defaults=errors.value, @@ -153,7 +154,11 @@ def my_account_password(self): c.active = 'password' self.__load_data() - if request.POST: + + managed_fields = auth_modules.get_managed_fields(c.user) + c.can_change_password = 'password' not in managed_fields + + if request.POST and c.can_change_password: _form = PasswordChangeForm(self.authuser.username)() try: form_result = _form.to_python(request.POST) @@ -193,8 +198,8 @@ def my_account_perms(self): c.active = 'perms' self.__load_data() - c.perm_user = AuthUser(user_id=self.authuser.user_id, - ip_addr=self.ip_addr) + c.perm_user = AuthUser(user_id=self.authuser.user_id) + c.ip_addr = self.ip_addr return render('admin/my_account/my_account.html') @@ -213,7 +218,7 @@ UserModel().add_extra_email(self.authuser.user_id, email) Session().commit() h.flash(_("Added email %s to user") % email, category='success') - except formencode.Invalid, error: + except formencode.Invalid as error: msg = error.error_dict['email'] h.flash(msg, category='error') except Exception: @@ -235,7 +240,7 @@ self.__load_data() show_expired = True c.lifetime_values = [ - (str(-1), _('forever')), + (str(-1), _('Forever')), (str(5), _('5 minutes')), (str(60), _('1 hour')), (str(60 * 24), _('1 day')), @@ -251,7 +256,7 @@ description = request.POST.get('description') ApiKeyModel().create(self.authuser.user_id, description, lifetime) Session().commit() - h.flash(_("Api key successfully created"), category='success') + h.flash(_("API key successfully created"), category='success') return redirect(url('my_account_api_keys')) def my_account_api_keys_delete(self): @@ -259,14 +264,14 @@ user_id = self.authuser.user_id if request.POST.get('del_api_key_builtin'): user = User.get(user_id) - if user: + if user is not None: user.api_key = generate_api_key() Session().add(user) Session().commit() - h.flash(_("Api key successfully reset"), category='success') + h.flash(_("API key successfully reset"), category='success') elif api_key: ApiKeyModel().delete(api_key, self.authuser.user_id) Session().commit() - h.flash(_("Api key successfully deleted"), category='success') + h.flash(_("API key successfully deleted"), category='success') return redirect(url('my_account_api_keys')) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/notifications.py --- a/kallithea/controllers/admin/notifications.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/notifications.py Sun Sep 06 23:36:05 2015 +0200 @@ -160,7 +160,7 @@ # if this association to user is not valid, we don't want to show # this message - if unotification: + if unotification is not None: if not unotification.read: unotification.mark_as_read() Session().commit() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/permissions.py --- a/kallithea/controllers/admin/permissions.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/permissions.py Sun Sep 06 23:36:05 2015 +0200 @@ -36,8 +36,7 @@ from pylons.i18n.translation import _ from kallithea.lib import helpers as h -from kallithea.lib.auth import LoginRequired, HasPermissionAllDecorator,\ - AuthUser +from kallithea.lib.auth import LoginRequired, HasPermissionAllDecorator from kallithea.lib.base import BaseController, render from kallithea.model.forms import DefaultPermissionsForm from kallithea.model.permission import PermissionModel @@ -125,7 +124,7 @@ h.flash(_('Global permissions updated successfully'), category='success') - except formencode.Invalid, errors: + except formencode.Invalid as errors: defaults = errors.value return htmlfill.render( diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/repo_groups.py --- a/kallithea/controllers/admin/repo_groups.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/repo_groups.py Sun Sep 06 23:36:05 2015 +0200 @@ -39,12 +39,12 @@ import kallithea from kallithea.lib import helpers as h from kallithea.lib.compat import json -from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator,\ - HasRepoGroupPermissionAnyDecorator, HasRepoGroupPermissionAll,\ +from kallithea.lib.auth import LoginRequired, \ + HasRepoGroupPermissionAnyDecorator, HasRepoGroupPermissionAll, \ HasPermissionAll from kallithea.lib.base import BaseController, render from kallithea.model.db import RepoGroup, Repository -from kallithea.model.scm import RepoGroupList +from kallithea.model.scm import RepoGroupList, AvailableRepoGroupChoices from kallithea.model.repo_group import RepoGroupModel from kallithea.model.forms import RepoGroupForm, RepoGroupPermsForm from kallithea.model.meta import Session @@ -58,27 +58,21 @@ class RepoGroupsController(BaseController): - """REST Controller styled on the Atom Publishing Protocol""" @LoginRequired() def __before__(self): super(RepoGroupsController, self).__before__() - def __load_defaults(self, allow_empty_group=False, exclude_group_ids=[]): - if HasPermissionAll('hg.admin')('group edit'): - #we're global admin, we're ok and we can create TOP level groups - allow_empty_group = True + def __load_defaults(self, extras=(), exclude=()): + """extras is used for keeping current parent ignoring permissions + exclude is used for not moving group to itself TODO: also exclude descendants + Note: only admin can create top level groups + """ + repo_groups = AvailableRepoGroupChoices([], ['group.admin'], extras) + exclude_group_ids = set(rg.group_id for rg in exclude) + c.repo_groups = [rg for rg in repo_groups + if rg[0] not in exclude_group_ids] - #override the choices for this form, we need to filter choices - #and display only those we have ADMIN right - groups_with_admin_rights = RepoGroupList(RepoGroup.query().all(), - perm_set=['group.admin']) - c.repo_groups = RepoGroup.groups_choices(groups=groups_with_admin_rights, - show_empty_group=allow_empty_group) - # exclude filtered ids - c.repo_groups = filter(lambda x: x[0] not in exclude_group_ids, - c.repo_groups) - c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) repo_model = RepoModel() c.users_array = repo_model.get_users_js() c.user_groups_array = repo_model.get_user_groups_js() @@ -169,22 +163,19 @@ # permissions for can create group based on parent_id are checked # here in the Form - repo_group_form = RepoGroupForm(available_groups= - map(lambda k: unicode(k[0]), c.repo_groups))() + repo_group_form = RepoGroupForm(repo_groups=c.repo_groups) try: form_result = repo_group_form.to_python(dict(request.POST)) - RepoGroupModel().create( + gr = RepoGroupModel().create( group_name=form_result['group_name'], group_description=form_result['group_description'], parent=form_result['group_parent_id'], - owner=self.authuser.user_id, + owner=self.authuser.user_id, # TODO: make editable copy_permissions=form_result['group_copy_permissions'] ) Session().commit() - h.flash(_('Created repository group %s') \ - % form_result['group_name'], category='success') #TODO: in futureaction_logger(, '', '', '', self.sa) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/repo_groups/repo_group_add.html'), defaults=errors.value, @@ -196,9 +187,12 @@ log.error(traceback.format_exc()) h.flash(_('Error occurred during creation of repository group %s') \ % request.POST.get('group_name'), category='error') - parent_group_id = form_result['group_parent_id'] - #TODO: maybe we should get back to the main view, not the admin one - return redirect(url('repos_groups', parent_group=parent_group_id)) + parent_group_id = form_result['group_parent_id'] + #TODO: maybe we should get back to the main view, not the admin one + return redirect(url('repos_groups', parent_group=parent_group_id)) + h.flash(_('Created repository group %s') % gr.group_name, + category='success') + return redirect(url('repos_group_home', group_name=gr.group_name)) def new(self): """GET /repo_groups/new: Form to create a new item""" @@ -231,6 +225,10 @@ # url('repos_group', group_name=GROUP_NAME) c.repo_group = RepoGroupModel()._get_repo_group(group_name) + self.__load_defaults(extras=[c.repo_group.parent_group], + exclude=[c.repo_group]) + + # TODO: kill allow_empty_group - it is only used for redundant form validation! if HasPermissionAll('hg.admin')('group edit'): #we're global admin, we're ok and we can create TOP level groups allow_empty_group = True @@ -238,13 +236,10 @@ allow_empty_group = True else: allow_empty_group = False - self.__load_defaults(allow_empty_group=allow_empty_group, - exclude_group_ids=[c.repo_group.group_id]) - repo_group_form = RepoGroupForm( edit=True, old_data=c.repo_group.get_dict(), - available_groups=c.repo_groups_choices, + repo_groups=c.repo_groups, can_create_in_root=allow_empty_group, )() try: @@ -257,7 +252,7 @@ # we now have new name ! group_name = new_gr.group_name #TODO: in future action_logger(, '', '', '', self.sa) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/repo_groups/repo_group_edit.html'), @@ -358,18 +353,8 @@ c.active = 'settings' c.repo_group = RepoGroupModel()._get_repo_group(group_name) - #we can only allow moving empty group if it's already a top-level - #group, ie has no parents, or we're admin - if HasPermissionAll('hg.admin')('group edit'): - #we're global admin, we're ok and we can create TOP level groups - allow_empty_group = True - elif not c.repo_group.parent_group: - allow_empty_group = True - else: - allow_empty_group = False - - self.__load_defaults(allow_empty_group=allow_empty_group, - exclude_group_ids=[c.repo_group.group_id]) + self.__load_defaults(extras=[c.repo_group.parent_group], + exclude=[c.repo_group]) defaults = self.__load_data(c.repo_group.group_id) return htmlfill.render( @@ -432,7 +417,7 @@ #action_logger(self.authuser, 'admin_changed_repo_permissions', # repo_name, self.ip_addr, self.sa) Session().commit() - h.flash(_('Repository Group permissions updated'), category='success') + h.flash(_('Repository group permissions updated'), category='success') return redirect(url('edit_repo_group_perms', group_name=group_name)) @HasRepoGroupPermissionAnyDecorator('group.admin') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/repos.py --- a/kallithea/controllers/admin/repos.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/repos.py Sun Sep 06 23:36:05 2015 +0200 @@ -36,17 +36,17 @@ from sqlalchemy.sql.expression import func from kallithea.lib import helpers as h -from kallithea.lib.auth import LoginRequired, HasPermissionAllDecorator, \ - HasRepoPermissionAllDecorator, NotAnonymous,HasPermissionAny, \ - HasRepoGroupPermissionAny, HasRepoPermissionAnyDecorator +from kallithea.lib.auth import LoginRequired, \ + HasRepoPermissionAllDecorator, NotAnonymous, HasPermissionAny, \ + HasRepoPermissionAnyDecorator from kallithea.lib.base import BaseRepoController, render -from kallithea.lib.utils import action_logger, repo_name_slug, jsonify +from kallithea.lib.utils import action_logger, jsonify from kallithea.lib.vcs import RepositoryError from kallithea.model.meta import Session from kallithea.model.db import User, Repository, UserFollowing, RepoGroup,\ Setting, RepositoryField from kallithea.model.forms import RepoForm, RepoFieldForm, RepoPermsForm -from kallithea.model.scm import ScmModel, RepoGroupList, RepoList +from kallithea.model.scm import ScmModel, AvailableRepoGroupChoices, RepoList from kallithea.model.repo import RepoModel from kallithea.lib.compat import json from kallithea.lib.exceptions import AttachedForksError @@ -76,24 +76,15 @@ return repo_obj def __load_defaults(self, repo=None): - acl_groups = RepoGroupList(RepoGroup.query().all(), - perm_set=['group.write', 'group.admin']) - c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) - c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) - - # in case someone no longer have a group.write access to a repository - # pre fill the list with this entry, we don't care if this is the same - # but it will allow saving repo data properly. + top_perms = ['hg.create.repository'] + repo_group_perms = ['group.admin'] + if HasPermissionAny('hg.create.write_on_repogroup.true')(): + repo_group_perms.append('group.write') + extras = [] if repo is None else [repo.group] - repo_group = None - if repo: - repo_group = repo.group - if repo_group and unicode(repo_group.group_id) not in c.repo_groups_choices: - c.repo_groups_choices.append(unicode(repo_group.group_id)) - c.repo_groups.append(RepoGroup._generate_choice(repo_group)) + c.repo_groups = AvailableRepoGroupChoices(top_perms, repo_group_perms, extras) - choices, c.landing_revs = ScmModel().get_repo_landing_revs() - c.landing_revs_choices = choices + c.landing_revs_choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo) def __load_data(self, repo_name=None): """ @@ -104,10 +95,8 @@ c.repo_info = self._load_repo(repo_name) self.__load_defaults(c.repo_info) - ##override defaults for exact repo info here git/hg etc - choices, c.landing_revs = ScmModel().get_repo_landing_revs(c.repo_info) - c.landing_revs_choices = choices defaults = RepoModel()._get_defaults(repo_name) + defaults['clone_uri'] = c.repo_info.clone_uri_hidden # don't show password return defaults @@ -137,8 +126,8 @@ form_result = {} task_id = None try: - # CanWriteToGroup validators checks permissions of this POST - form_result = RepoForm(repo_groups=c.repo_groups_choices, + # CanWriteGroup validators checks permissions of this POST + form_result = RepoForm(repo_groups=c.repo_groups, landing_revs=c.landing_revs_choices)()\ .to_python(dict(request.POST)) @@ -148,7 +137,8 @@ from celery.result import BaseAsyncResult if isinstance(task, BaseAsyncResult): task_id = task.task_id - except formencode.Invalid, errors: + except formencode.Invalid as errors: + log.info(errors) return htmlfill.render( render('admin/repos/repo_add.html'), defaults=errors.value, @@ -171,31 +161,18 @@ @NotAnonymous() def create_repository(self): """GET /_admin/create_repository: Form to create a new item""" - new_repo = request.GET.get('repo', '') + self.__load_defaults() + if not c.repo_groups: + raise HTTPForbidden parent_group = request.GET.get('parent_group') - if not HasPermissionAny('hg.admin', 'hg.create.repository')(): - #you're not super admin nor have global create permissions, - #but maybe you have at least write permission to a parent group ? - _gr = RepoGroup.get(parent_group) - gr_name = _gr.group_name if _gr else None - # create repositories with write permission on group is set to true - create_on_write = HasPermissionAny('hg.create.write_on_repogroup.true')() - group_admin = HasRepoGroupPermissionAny('group.admin')(group_name=gr_name) - group_write = HasRepoGroupPermissionAny('group.write')(group_name=gr_name) - if not (group_admin or (group_write and create_on_write)): - raise HTTPForbidden - - acl_groups = RepoGroupList(RepoGroup.query().all(), - perm_set=['group.write', 'group.admin']) - c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) - c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) - choices, c.landing_revs = ScmModel().get_repo_landing_revs() - - c.new_repo = repo_name_slug(new_repo) ## apply the defaults from defaults page defaults = Setting.get_default_repo_settings(strip_prefix=True) if parent_group: + prg = RepoGroup.get(parent_group) + if prg is None or not any(rgc[0] == prg.group_id + for rgc in c.repo_groups): + raise HTTPForbidden defaults.update({'repo_group': parent_group}) return htmlfill.render( @@ -233,15 +210,14 @@ repo = Repository.get_by_repo_name(repo_name) if repo and repo.repo_state == Repository.STATE_CREATED: if repo.clone_uri: - clone_uri = repo.clone_uri_hidden h.flash(_('Created repository %s from %s') - % (repo.repo_name, clone_uri), category='success') + % (repo.repo_name, repo.clone_uri_hidden), category='success') else: repo_url = h.link_to(repo.repo_name, h.url('summary_home', repo_name=repo.repo_name)) fork = repo.fork - if fork: + if fork is not None: fork_name = fork.repo_name h.flash(h.literal(_('Forked repository %s as %s') % (fork_name, repo_url)), category='success') @@ -258,20 +234,17 @@ # Forms posted to this method should contain a hidden field: # # Or using helpers: - # h.form(url('repo', repo_name=ID), + # h.form(url('put_repo', repo_name=ID), # method='put') - # url('repo', repo_name=ID) + # url('put_repo', repo_name=ID) c.repo_info = self._load_repo(repo_name) + self.__load_defaults(c.repo_info) c.active = 'settings' c.repo_fields = RepositoryField.query()\ .filter(RepositoryField.repository == c.repo_info).all() - self.__load_defaults(c.repo_info) repo_model = RepoModel() changed_name = repo_name - #override the choices with extracted revisions ! - choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo_name) - c.landing_revs_choices = choices repo = Repository.get_by_repo_name(repo_name) old_data = { 'repo_name': repo_name, @@ -279,7 +252,7 @@ 'repo_type': repo.repo_type, } _form = RepoForm(edit=True, old_data=old_data, - repo_groups=c.repo_groups_choices, + repo_groups=c.repo_groups, landing_revs=c.landing_revs_choices)() try: @@ -292,9 +265,11 @@ action_logger(self.authuser, 'admin_updated_repo', changed_name, self.ip_addr, self.sa) Session().commit() - except formencode.Invalid, errors: + except formencode.Invalid as errors: + log.info(errors) defaults = self.__load_data(repo_name) defaults.update(errors.value) + c.users_array = repo_model.get_users_js() return htmlfill.render( render('admin/repos/repo_edit.html'), defaults=defaults, @@ -316,9 +291,9 @@ # Forms posted to this method should contain a hidden field: # # Or using helpers: - # h.form(url('repo', repo_name=ID), + # h.form(url('delete_repo', repo_name=ID), # method='delete') - # url('repo', repo_name=ID) + # url('delete_repo', repo_name=ID) repo_model = RepoModel() repo = repo_model.get_by_repo_name(repo_name) @@ -343,7 +318,7 @@ h.flash(_('Deleted repository %s') % repo_name, category='success') Session().commit() except AttachedForksError: - h.flash(_('Cannot delete %s it still contains attached forks') + h.flash(_('Cannot delete repository %s which still has forks') % repo_name, category='warning') except Exception: @@ -355,21 +330,15 @@ return redirect(url('repos_group_home', group_name=repo.group.group_name)) return redirect(url('repos')) - @HasPermissionAllDecorator('hg.admin') - def show(self, repo_name, format='html'): - """GET /repos/repo_name: Show a specific item""" - # url('repo', repo_name=ID) - @HasRepoPermissionAllDecorator('repository.admin') def edit(self, repo_name): """GET /repo_name/settings: Form to edit an existing item""" # url('edit_repo', repo_name=ID) defaults = self.__load_data(repo_name) - if 'clone_uri' in defaults: - del defaults['clone_uri'] - c.repo_fields = RepositoryField.query()\ .filter(RepositoryField.repository == c.repo_info).all() + repo_model = RepoModel() + c.users_array = repo_model.get_users_js() c.active = 'settings' return htmlfill.render( render('admin/repos/repo_edit.html'), @@ -456,7 +425,7 @@ new_field.field_label = form_result['new_field_label'] Session().add(new_field) Session().commit() - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) msg = _('An error occurred during creation of field') if isinstance(e, formencode.Invalid): @@ -470,7 +439,7 @@ try: Session().delete(field) Session().commit() - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) msg = _('An error occurred during removal of field') h.flash(msg, category='error') @@ -542,12 +511,12 @@ self.authuser.username) fork = repo.fork.repo_name if repo.fork else _('Nothing') Session().commit() - h.flash(_('Marked repo %s as fork of %s') % (repo_name, fork), + h.flash(_('Marked repository %s as fork of %s') % (repo_name, fork), category='success') - except RepositoryError, e: + except RepositoryError as e: log.error(traceback.format_exc()) h.flash(str(e), category='error') - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during this operation'), category='error') @@ -565,11 +534,11 @@ repo = Repository.get_by_repo_name(repo_name) if request.POST.get('set_lock'): Repository.lock(repo, c.authuser.user_id) - h.flash(_('Locked repository'), category='success') + h.flash(_('Repository has been locked'), category='success') elif request.POST.get('set_unlock'): Repository.unlock(repo) - h.flash(_('Unlocked repository'), category='success') - except Exception, e: + h.flash(_('Repository has been unlocked'), category='success') + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during unlocking'), category='error') @@ -589,14 +558,12 @@ if repo.enable_locking: if repo.locked[0]: Repository.unlock(repo) - action = _('Unlocked') + h.flash(_('Repository has been unlocked'), category='success') else: Repository.lock(repo, c.authuser.user_id) - action = _('Locked') + h.flash(_('Repository has been locked'), category='success') - h.flash(_('Repository has been %s') % action, - category='success') - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during unlocking'), category='error') @@ -614,7 +581,7 @@ Session().commit() h.flash(_('Cache invalidation successful'), category='success') - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during cache invalidation'), category='error') @@ -632,7 +599,7 @@ try: ScmModel().pull_changes(repo_name, self.authuser.username) h.flash(_('Pulled from remote location'), category='success') - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during pull from remote location'), category='error') @@ -665,7 +632,7 @@ try: RepoModel().delete_stats(repo_name) Session().commit() - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) h.flash(_('An error occurred during deletion of repository stats'), category='error') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/settings.py --- a/kallithea/controllers/admin/settings.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/settings.py Sun Sep 06 23:36:05 2015 +0200 @@ -94,7 +94,7 @@ application_form = ApplicationUiSettingsForm()() try: form_result = application_form.to_python(dict(request.POST)) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/settings/settings.html'), defaults=errors.value, @@ -177,7 +177,7 @@ except Exception: log.error(traceback.format_exc()) - h.flash(_('Error occurred during updating ' + h.flash(_('Error occurred while updating ' 'application settings'), category='error') defaults = Setting.get_app_settings() @@ -197,9 +197,11 @@ if request.POST: rm_obsolete = request.POST.get('destroy', False) install_git_hooks = request.POST.get('hooks', False) + overwrite_git_hooks = request.POST.get('hooks_overwrite', False); invalidate_cache = request.POST.get('invalidate', False) - log.debug('rescanning repo location with destroy obsolete=%s and ' - 'install git hooks=%s' % (rm_obsolete,install_git_hooks)) + log.debug('rescanning repo location with destroy obsolete=%s, ' + 'install git hooks=%s and ' + 'overwrite git hooks=%s' % (rm_obsolete, install_git_hooks, overwrite_git_hooks)) if invalidate_cache: log.debug('invalidating all repositories cache') @@ -208,8 +210,9 @@ filesystem_repos = ScmModel().repo_scan() added, removed = repo2db_mapper(filesystem_repos, rm_obsolete, - install_git_hook=install_git_hooks, - user=c.authuser.username) + install_git_hooks=install_git_hooks, + user=c.authuser.username, + overwrite_git_hooks=overwrite_git_hooks) h.flash(h.literal(_('Repositories successfully rescanned. Added: %s. Removed: %s.') % (', '.join(h.link_to(safe_unicode(repo_name), h.url('summary_home', repo_name=repo_name)) for repo_name in added) or '-', @@ -235,7 +238,7 @@ application_form = ApplicationSettingsForm()() try: form_result = application_form.to_python(dict(request.POST)) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/settings/settings.html'), defaults=errors.value, @@ -271,7 +274,7 @@ except Exception: log.error(traceback.format_exc()) - h.flash(_('Error occurred during updating ' + h.flash(_('Error occurred while updating ' 'application settings'), category='error') @@ -295,7 +298,7 @@ application_form = ApplicationVisualisationForm()() try: form_result = application_form.to_python(dict(request.POST)) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/settings/settings.html'), defaults=errors.value, @@ -497,16 +500,16 @@ try: import kallithea ver = kallithea.__version__ - log.debug('Checking for upgrade on `%s` server' % _update_url) + log.debug('Checking for upgrade on `%s` server', _update_url) opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'Kallithea-SCM/%s' % ver)] response = opener.open(_update_url) response_data = response.read() data = json.loads(response_data) - except urllib2.URLError, e: + except urllib2.URLError as e: log.error(traceback.format_exc()) return _err('Failed to contact upgrade server: %r' % e) - except ValueError, e: + except ValueError as e: log.error(traceback.format_exc()) return _err('Bad data sent from update server') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/user_groups.py --- a/kallithea/controllers/admin/user_groups.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/user_groups.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.controllers.admin.users_groups -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.controllers.admin.user_groups +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ User Groups crud controller for pylons @@ -40,18 +40,18 @@ import kallithea from kallithea.lib import helpers as h -from kallithea.lib.exceptions import UserGroupsAssignedException,\ +from kallithea.lib.exceptions import UserGroupsAssignedException, \ RepoGroupAssignmentError from kallithea.lib.utils2 import safe_unicode, safe_int -from kallithea.lib.auth import LoginRequired, HasPermissionAllDecorator,\ +from kallithea.lib.auth import LoginRequired, \ HasUserGroupPermissionAnyDecorator, HasPermissionAnyDecorator from kallithea.lib.base import BaseController, render from kallithea.model.scm import UserGroupList from kallithea.model.user_group import UserGroupModel from kallithea.model.repo import RepoModel -from kallithea.model.db import User, UserGroup, UserGroupToPerm,\ +from kallithea.model.db import User, UserGroup, UserGroupToPerm, \ UserGroupRepoToPerm, UserGroupRepoGroupToPerm -from kallithea.model.forms import UserGroupForm, UserGroupPermsForm,\ +from kallithea.model.forms import UserGroupForm, UserGroupPermsForm, \ CustomDefaultPermissionsForm from kallithea.model.meta import Session from kallithea.lib.utils import action_logger @@ -150,7 +150,7 @@ h.flash(h.literal(_('Created user group %s') % h.link_to(h.escape(gr), url('edit_users_group', id=ug.users_group_id))), category='success') Session().commit() - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/user_groups/user_group_add.html'), defaults=errors.value, @@ -200,7 +200,7 @@ None, self.ip_addr, self.sa) h.flash(_('Updated user group %s') % gr, category='success') Session().commit() - except formencode.Invalid, errors: + except formencode.Invalid as errors: ug_model = UserGroupModel() defaults = errors.value e = errors.error_dict or {} @@ -240,7 +240,7 @@ UserGroupModel().delete(usr_gr) Session().commit() h.flash(_('Successfully deleted user group'), category='success') - except UserGroupsAssignedException, e: + except UserGroupsAssignedException as e: h.flash(e, category='error') except Exception: log.error(traceback.format_exc()) @@ -317,7 +317,7 @@ #action_logger(self.authuser, 'admin_changed_repo_permissions', # repo_name, self.ip_addr, self.sa) Session().commit() - h.flash(_('User Group permissions updated'), category='success') + h.flash(_('User group permissions updated'), category='success') return redirect(url('edit_user_group_perms', id=id)) @HasUserGroupPermissionAnyDecorator('usergroup.admin') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/admin/users.py --- a/kallithea/controllers/admin/users.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/admin/users.py Sun Sep 06 23:36:05 2015 +0200 @@ -34,6 +34,7 @@ from pylons.controllers.util import redirect from pylons.i18n.translation import _ from sqlalchemy.sql.expression import func +from webob.exc import HTTPNotFound import kallithea from kallithea.lib.exceptions import DefaultUserException, \ @@ -41,8 +42,8 @@ from kallithea.lib import helpers as h from kallithea.lib.auth import LoginRequired, HasPermissionAllDecorator, \ AuthUser -import kallithea.lib.auth_modules.auth_internal from kallithea.lib import auth_modules +from kallithea.lib.auth_modules import auth_internal from kallithea.lib.base import BaseController, render from kallithea.model.api_key import ApiKeyModel @@ -120,7 +121,8 @@ def create(self): """POST /users: Create a new item""" # url('users') - c.default_extern_type = auth_modules.auth_internal.KallitheaAuthPlugin.name + c.default_extern_type = auth_internal.KallitheaAuthPlugin.name + c.default_extern_name = auth_internal.KallitheaAuthPlugin.name user_model = UserModel() user_form = UserForm()() try: @@ -132,7 +134,7 @@ h.flash(h.literal(_('Created user %s') % h.link_to(h.escape(usr), url('edit_user', id=user.user_id))), category='success') Session().commit() - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('admin/users/user_add.html'), defaults=errors.value, @@ -140,7 +142,7 @@ prefix_error=False, encoding="UTF-8", force_defaults=False) - except UserCreationError, e: + except UserCreationError as e: h.flash(e, 'error') except Exception: log.error(traceback.format_exc()) @@ -151,7 +153,8 @@ def new(self, format='html'): """GET /users/new: Form to create a new item""" # url('new_user') - c.default_extern_type = auth_modules.auth_internal.KallitheaAuthPlugin.name + c.default_extern_type = auth_internal.KallitheaAuthPlugin.name + c.default_extern_name = auth_internal.KallitheaAuthPlugin.name return render('admin/users/user_add.html') def update(self, id): @@ -162,22 +165,15 @@ # h.form(url('update_user', id=ID), # method='put') # url('user', id=ID) - c.active = 'profile' user_model = UserModel() - c.user = user_model.get(id) - c.extern_type = c.user.extern_type - c.extern_name = c.user.extern_name - c.perm_user = AuthUser(user_id=id, ip_addr=self.ip_addr) + user = user_model.get(id) _form = UserForm(edit=True, old_data={'user_id': id, - 'email': c.user.email})() + 'email': user.email})() form_result = {} try: form_result = _form.to_python(dict(request.POST)) - skip_attrs = ['extern_type', 'extern_name'] - #TODO: plugin should define if username can be updated - if c.extern_type != kallithea.EXTERN_TYPE_INTERNAL: - # forbid updating username for external accounts - skip_attrs.append('username') + skip_attrs = ['extern_type', 'extern_name', + ] + auth_modules.get_managed_fields(user) user_model.update(id, form_result, skip_attrs=skip_attrs) usr = form_result['username'] @@ -185,7 +181,7 @@ None, self.ip_addr, self.sa) h.flash(_('User updated successfully'), category='success') Session().commit() - except formencode.Invalid, errors: + except formencode.Invalid as errors: defaults = errors.value e = errors.error_dict or {} defaults.update({ @@ -195,7 +191,7 @@ '_method': 'put' }) return htmlfill.render( - render('admin/users/user_edit.html'), + self._render_edit_profile(user), defaults=defaults, errors=e, prefix_error=False, @@ -220,7 +216,7 @@ UserModel().delete(usr) Session().commit() h.flash(_('Successfully deleted user'), category='success') - except (UserOwnsReposException, DefaultUserException), e: + except (UserOwnsReposException, DefaultUserException) as e: h.flash(e, category='warning') except Exception: log.error(traceback.format_exc()) @@ -233,34 +229,39 @@ # url('user', id=ID) User.get_or_404(-1) + def _get_user_or_raise_if_default(self, id): + try: + return User.get_or_404(id, allow_default=False) + except DefaultUserException: + h.flash(_("The default user cannot be edited"), category='warning') + raise HTTPNotFound + + def _render_edit_profile(self, user): + c.user = user + c.active = 'profile' + c.perm_user = AuthUser(dbuser=user) + c.ip_addr = self.ip_addr + managed_fields = auth_modules.get_managed_fields(user) + c.readonly = lambda n: 'readonly' if n in managed_fields else None + return render('admin/users/user_edit.html') + def edit(self, id, format='html'): """GET /users/id/edit: Form to edit an existing item""" # url('edit_user', id=ID) - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) + user = self._get_user_or_raise_if_default(id) + defaults = user.get_dict() - c.active = 'profile' - c.extern_type = c.user.extern_type - c.extern_name = c.user.extern_name - c.perm_user = AuthUser(user_id=id, ip_addr=self.ip_addr) - - defaults = c.user.get_dict() return htmlfill.render( - render('admin/users/user_edit.html'), + self._render_edit_profile(user), defaults=defaults, encoding="UTF-8", force_defaults=False) def edit_advanced(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) - + c.user = self._get_user_or_raise_if_default(id) c.active = 'advanced' - c.perm_user = AuthUser(user_id=id, ip_addr=self.ip_addr) + c.perm_user = AuthUser(user_id=id) + c.ip_addr = self.ip_addr umodel = UserModel() defaults = c.user.get_dict() @@ -277,15 +278,11 @@ force_defaults=False) def edit_api_keys(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) - + c.user = self._get_user_or_raise_if_default(id) c.active = 'api_keys' show_expired = True c.lifetime_values = [ - (str(-1), _('forever')), + (str(-1), _('Forever')), (str(5), _('5 minutes')), (str(60), _('1 hour')), (str(60 * 24), _('1 day')), @@ -302,36 +299,30 @@ force_defaults=False) def add_api_key(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) + c.user = self._get_user_or_raise_if_default(id) lifetime = safe_int(request.POST.get('lifetime'), -1) description = request.POST.get('description') ApiKeyModel().create(c.user.user_id, description, lifetime) Session().commit() - h.flash(_("Api key successfully created"), category='success') + h.flash(_("API key successfully created"), category='success') return redirect(url('edit_user_api_keys', id=c.user.user_id)) def delete_api_key(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) + c.user = self._get_user_or_raise_if_default(id) api_key = request.POST.get('del_api_key') if request.POST.get('del_api_key_builtin'): user = User.get(c.user.user_id) - if user: + if user is not None: user.api_key = generate_api_key() Session().add(user) Session().commit() - h.flash(_("Api key successfully reset"), category='success') + h.flash(_("API key successfully reset"), category='success') elif api_key: ApiKeyModel().delete(api_key, c.user.user_id) Session().commit() - h.flash(_("Api key successfully deleted"), category='success') + h.flash(_("API key successfully deleted"), category='success') return redirect(url('edit_user_api_keys', id=c.user.user_id)) @@ -339,13 +330,10 @@ pass def edit_perms(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) - + c.user = self._get_user_or_raise_if_default(id) c.active = 'perms' - c.perm_user = AuthUser(user_id=id, ip_addr=self.ip_addr) + c.perm_user = AuthUser(user_id=id) + c.ip_addr = self.ip_addr umodel = UserModel() defaults = c.user.get_dict() @@ -364,7 +352,7 @@ def update_perms(self, id): """PUT /users_perm/id: Update an existing item""" # url('user_perm', id=ID, method='put') - user = User.get_or_404(id) + user = self._get_user_or_raise_if_default(id) try: form = CustomDefaultPermissionsForm()() @@ -402,11 +390,7 @@ return redirect(url('edit_user_perms', id=id)) def edit_emails(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) - + c.user = self._get_user_or_raise_if_default(id) c.active = 'emails' c.user_email_map = UserEmailMap.query()\ .filter(UserEmailMap.user == c.user).all() @@ -421,7 +405,7 @@ def add_email(self, id): """POST /user_emails:Add an existing item""" # url('user_emails', id=ID, method='put') - + user = self._get_user_or_raise_if_default(id) email = request.POST.get('new_email') user_model = UserModel() @@ -429,7 +413,7 @@ user_model.add_extra_email(id, email) Session().commit() h.flash(_("Added email %s to user") % email, category='success') - except formencode.Invalid, error: + except formencode.Invalid as error: msg = error.error_dict['email'] h.flash(msg, category='error') except Exception: @@ -441,6 +425,7 @@ def delete_email(self, id): """DELETE /user_emails_delete/id: Delete an existing item""" # url('user_emails_delete', id=ID, method='delete') + user = self._get_user_or_raise_if_default(id) email_id = request.POST.get('del_email_id') user_model = UserModel() user_model.delete_extra_email(id, email_id) @@ -449,11 +434,7 @@ return redirect(url('edit_user_emails', id=id)) def edit_ips(self, id): - c.user = User.get_or_404(id) - if c.user.username == User.DEFAULT_USER: - h.flash(_("You can't edit this user"), category='warning') - return redirect(url('users')) - + c.user = self._get_user_or_raise_if_default(id) c.active = 'ips' c.user_ip_map = UserIpMap.query()\ .filter(UserIpMap.user == c.user).all() @@ -479,13 +460,13 @@ try: user_model.add_extra_ip(id, ip) Session().commit() - h.flash(_("Added ip %s to user whitelist") % ip, category='success') - except formencode.Invalid, error: + h.flash(_("Added IP address %s to user whitelist") % ip, category='success') + except formencode.Invalid as error: msg = error.error_dict['ip'] h.flash(msg, category='error') except Exception: log.error(traceback.format_exc()) - h.flash(_('An error occurred during ip saving'), + h.flash(_('An error occurred while adding IP address'), category='error') if 'default_user' in request.POST: @@ -499,7 +480,7 @@ user_model = UserModel() user_model.delete_extra_ip(id, ip_id) Session().commit() - h.flash(_("Removed ip address from user whitelist"), category='success') + h.flash(_("Removed IP address from user whitelist"), category='success') if 'default_user' in request.POST: return redirect(url('admin_permissions_ips')) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/api/__init__.py --- a/kallithea/controllers/api/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/api/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -117,7 +117,7 @@ else: length = environ['CONTENT_LENGTH'] or 0 length = int(environ['CONTENT_LENGTH']) - log.debug('Content-Length: %s' % length) + log.debug('Content-Length: %s', length) if length == 0: log.debug("Content-Length is 0") @@ -128,13 +128,13 @@ try: json_body = json.loads(raw_body) - except ValueError, e: + except ValueError as e: # catch JSON errors Here return jsonrpc_error(retid=self._req_id, message="JSON parse error ERR:%s RAW:%r" % (e, raw_body)) - # check AUTH based on API KEY + # check AUTH based on API key try: self._req_api_key = json_body['api_key'] self._req_id = json_body['id'] @@ -144,10 +144,10 @@ self._request_params = {} log.debug( - 'method: %s, params: %s' % (self._req_method, - self._request_params) + 'method: %s, params: %s', self._req_method, + self._request_params ) - except KeyError, e: + except KeyError as e: return jsonrpc_error(retid=self._req_id, message='Incorrect JSON query missing %s' % e) @@ -156,24 +156,23 @@ u = User.get_by_api_key(self._req_api_key) if u is None: return jsonrpc_error(retid=self._req_id, - message='Invalid API KEY') + message='Invalid API key') - #check if we are allowed to use this IP - auth_u = AuthUser(u.user_id, self._req_api_key, ip_addr=ip_addr) - if not auth_u.ip_allowed: + auth_u = AuthUser(dbuser=u) + if not AuthUser.check_ip_allowed(auth_u, ip_addr): return jsonrpc_error(retid=self._req_id, message='request from IP:%s not allowed' % (ip_addr,)) else: - log.info('Access for IP:%s allowed' % (ip_addr,)) + log.info('Access for IP:%s allowed', ip_addr) - except Exception, e: + except Exception as e: return jsonrpc_error(retid=self._req_id, - message='Invalid API KEY') + message='Invalid API key') self._error = None try: self._func = self._find_method() - except AttributeError, e: + except AttributeError as e: return jsonrpc_error(retid=self._req_id, message=str(e)) @@ -208,7 +207,7 @@ # get our arglist and check if we provided them as args for arg, default in func_kwargs.iteritems(): if arg == USER_SESSION_ATTR: - # USER_SESSION_ATTR is something translated from api key and + # USER_SESSION_ATTR is something translated from API key and # this is checked before so we don't need validate it continue @@ -259,11 +258,11 @@ raw_response = self._inspect_call(self._func) if isinstance(raw_response, HTTPError): self._error = str(raw_response) - except JSONRPCError, e: + except JSONRPCError as e: self._error = safe_str(e) - except Exception, e: - log.error('Encountered unhandled exception: %s' - % (traceback.format_exc(),)) + except Exception as e: + log.error('Encountered unhandled exception: %s', + traceback.format_exc(),) json_exc = JSONRPCError('Internal server error') self._error = safe_str(json_exc) @@ -273,8 +272,8 @@ response = dict(id=self._req_id, result=raw_response, error=self._error) try: return json.dumps(response) - except TypeError, e: - log.error('API FAILED. Error encoding response: %s' % e) + except TypeError as e: + log.error('API FAILED. Error encoding response: %s', e) return json.dumps( dict( id=self._req_id, @@ -287,7 +286,7 @@ """ Return method named by `self._req_method` in controller if able """ - log.debug('Trying to find JSON-RPC method: %s' % (self._req_method,)) + log.debug('Trying to find JSON-RPC method: %s', self._req_method) if self._req_method.startswith('_'): raise AttributeError("Method not allowed") diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/api/api.py --- a/kallithea/controllers/api/api.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/api/api.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.controllers.api -~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.controllers.api.api +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ API controller for Kallithea @@ -463,7 +463,7 @@ if time_: _api_data = r.get_api_data() # if we use userfilter just show the locks for this user - if user: + if user is not None: if safe_int(userid) == user.user_id: ret.append(_api_data) else: @@ -553,7 +553,7 @@ { "user_id" : "", "api_key" : "", - "api_keys": "[]" + "api_keys": "[]" "username" : "", "firstname": "", "lastname" : "", @@ -672,10 +672,10 @@ """ - if UserModel().get_by_username(username): + if User.get_by_username(username): raise JSONRPCError("user `%s` already exist" % (username,)) - if UserModel().get_by_email(email, case_insensitive=True): + if User.get_by_email(email, case_insensitive=True): raise JSONRPCError("email `%s` already exist" % (email,)) if Optional.extract(extern_name): @@ -1066,7 +1066,7 @@ (user_group.users_group_id, user_group.users_group_name), user_group=None ) - except UserGroupsAssignedException, e: + except UserGroupsAssignedException as e: log.error(traceback.format_exc()) raise JSONRPCError(str(e)) except Exception: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/changelog.py --- a/kallithea/controllers/changelog.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/changelog.py Sun Sep 06 23:36:05 2015 +0200 @@ -82,10 +82,10 @@ try: return c.db_repo_scm_instance.get_changeset(rev) - except EmptyRepositoryError, e: + except EmptyRepositoryError as e: h.flash(h.literal(_('There are no changesets yet')), category='error') - except RepositoryError, e: + except RepositoryError as e: log.error(traceback.format_exc()) h.flash(safe_str(e), category='error') raise HTTPBadRequest() @@ -94,6 +94,15 @@ @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def index(self, repo_name, revision=None, f_path=None): + # Fix URL after page size form submission via GET + # TODO: Somehow just don't send this extra junk in the GET URL + if request.GET.get('set'): + request.GET.pop('set', None) + request.GET.pop('_authentication_token', None) + if revision is None: + return redirect(url('changelog_home', repo_name=repo_name, **request.GET)) + return redirect(url('changelog_file_home', repo_name=repo_name, revision=revision, f_path=f_path, **request.GET)) + limit = 2000 default = 100 if request.GET.get('size'): @@ -120,7 +129,7 @@ try: if f_path: - log.debug('generating changelog for path %s' % f_path) + log.debug('generating changelog for path %s', f_path) # get the history for the file ! tip_cs = c.db_repo_scm_instance.get_changeset() try: @@ -130,7 +139,7 @@ try: cs = self.__get_cs(revision, repo_name) collection = cs.get_file_history(f_path) - except RepositoryError, e: + except RepositoryError as e: h.flash(safe_str(e), category='warning') redirect(h.url('changelog_home', repo_name=repo_name)) collection = list(reversed(collection)) @@ -145,10 +154,10 @@ page_revisions = [x.raw_id for x in c.pagination] c.comments = c.db_repo.get_comments(page_revisions) c.statuses = c.db_repo.statuses(page_revisions) - except (EmptyRepositoryError), e: + except EmptyRepositoryError as e: h.flash(safe_str(e), category='warning') return redirect(url('summary_home', repo_name=c.repo_name)) - except (RepositoryError, ChangesetDoesNotExistError, Exception), e: + except (RepositoryError, ChangesetDoesNotExistError, Exception) as e: log.error(traceback.format_exc()) h.flash(safe_str(e), category='error') return redirect(url('changelog_home', repo_name=c.repo_name)) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/changeset.py --- a/kallithea/controllers/changeset.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/changeset.py Sun Sep 06 23:36:05 2015 +0200 @@ -166,7 +166,7 @@ if ig_ws: params[ig_ws_key] += [ig_ws_val] - lbl = _('increase diff context to %(num)s lines') % {'num': ln_ctx} + lbl = _('Increase diff context to %(num)s lines') % {'num': ln_ctx} params['anchor'] = fileid icon = h.literal('') @@ -208,7 +208,7 @@ raise RepositoryError('Changeset range returned empty result') except(ChangesetDoesNotExistError,), e: - log.error(traceback.format_exc()) + log.debug(traceback.format_exc()) msg = _('Such revision does not exist for this repository') h.flash(msg, category='error') raise HTTPNotFound() @@ -241,7 +241,8 @@ comments.update((st.changeset_comment_id, st.comment) for st in ChangesetStatusModel() .get_statuses(c.db_repo.repo_id, - changeset.raw_id, with_revisions=True)) + changeset.raw_id, with_revisions=True) + if st.changeset_comment_id is not None) inlines = ChangesetCommentsModel()\ .get_inline_comments(c.db_repo.repo_id, @@ -349,9 +350,9 @@ @jsonify def comment(self, repo_name, revision): status = request.POST.get('changeset_status') - text = request.POST.get('text', '').strip() or _('No comments.') + text = request.POST.get('text', '').strip() - c.co = comm = ChangesetCommentsModel().create( + c.comment = comment = ChangesetCommentsModel().create( text=text, repo=c.db_repo.repo_id, user=c.authuser.user_id, @@ -373,12 +374,12 @@ c.db_repo.repo_id, status, c.authuser.user_id, - comm, + comment, revision=revision, dont_allow_on_closed_pull_request=True ) except StatusChangeOnClosedPullRequestError: - log.error(traceback.format_exc()) + log.debug(traceback.format_exc()) msg = _('Changing status on a changeset associated with ' 'a closed pull request is not allowed') h.flash(msg, category='warning') @@ -397,8 +398,8 @@ data = { 'target_id': h.safeid(h.safe_unicode(request.POST.get('f_path'))), } - if comm: - data.update(comm.get_dict()) + if comment is not None: + data.update(comment.get_dict()) data.update({'rendered_text': render('changeset/changeset_comment_block.html')}) @@ -442,7 +443,7 @@ if request.is_xhr: try: return c.db_repo_scm_instance.get_changeset(revision) - except ChangesetDoesNotExistError, e: + except ChangesetDoesNotExistError as e: return EmptyChangeset(message=str(e)) else: raise HTTPBadRequest() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/compare.py --- a/kallithea/controllers/compare.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/compare.py Sun Sep 06 23:36:05 2015 +0200 @@ -42,8 +42,7 @@ from kallithea.lib import diffs from kallithea.model.db import Repository from kallithea.lib.diffs import LimitedDiffContainer -from kallithea.controllers.changeset import _ignorews_url,\ - _context_url, get_line_ctx, get_ignore_ws +from kallithea.controllers.changeset import _ignorews_url, _context_url from kallithea.lib.graphmod import graph_data from kallithea.lib.compat import json @@ -70,7 +69,7 @@ :param other_rev: revision we want out compare to be made on other_repo """ ancestor = None - if org_rev == other_rev or org_repo.EMPTY_CHANGESET in (org_rev, other_rev): + if org_rev == other_rev: org_changesets = [] other_changesets = [] ancestor = org_rev @@ -88,14 +87,18 @@ else: hgrepo = other_repo._repo - ancestors = hgrepo.revs("ancestor(id(%s), id(%s))", org_rev, other_rev) - if ancestors: - # FIXME: picks arbitrary ancestor - but there is usually only one - try: - ancestor = hgrepo[ancestors.first()].hex() - except AttributeError: - # removed in hg 3.2 - ancestor = hgrepo[ancestors[0]].hex() + if org_repo.EMPTY_CHANGESET in (org_rev, other_rev): + # work around unexpected behaviour in Mercurial < 3.4 + ancestor = org_repo.EMPTY_CHANGESET + else: + ancestors = hgrepo.revs("ancestor(id(%s), id(%s))", org_rev, other_rev) + if ancestors: + # FIXME: picks arbitrary ancestor - but there is usually only one + try: + ancestor = hgrepo[ancestors.first()].hex() + except AttributeError: + # removed in hg 3.2 + ancestor = hgrepo[ancestors[0]].hex() other_revs = hgrepo.revs("ancestors(id(%s)) and not ancestors(id(%s)) and not id(%s)", other_rev, org_rev, org_rev) @@ -130,13 +133,13 @@ else: so, se = org_repo.run_git_command( - 'log --reverse --pretty="format: %%H" -s %s..%s' - % (org_rev, other_rev) + ['log', '--reverse', '--pretty=format:%H', + '-s', '%s..%s' % (org_rev, other_rev)] ) other_changesets = [org_repo.get_changeset(cs) for cs in re.findall(r'[0-9a-fA-F]{40}', so)] so, se = org_repo.run_git_command( - 'merge-base %s %s' % (org_rev, other_rev) + ['merge-base', org_rev, other_rev] ) ancestor = re.findall(r'[0-9a-fA-F]{40}', so)[0] org_changesets = [] @@ -162,6 +165,9 @@ @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def compare(self, repo_name, org_ref_type, org_ref_name, other_ref_type, other_ref_name): + org_ref_name = org_ref_name.strip() + other_ref_name = other_ref_name.strip() + org_repo = c.db_repo.repo_name other_repo = request.GET.get('other_repo', org_repo) # If merge is True: @@ -242,8 +248,8 @@ # case we want a simple diff without incoming changesets, # previewing what will be merged. # Make the diff on the other repo (which is known to have other_rev) - log.debug('Using ancestor %s as rev1 instead of %s' - % (c.ancestor, c.a_rev)) + log.debug('Using ancestor %s as rev1 instead of %s', + c.ancestor, c.a_rev) rev1 = c.ancestor org_repo = other_repo else: # comparing tips, not necessarily linearly related @@ -258,8 +264,8 @@ diff_limit = self.cut_off_limit if not c.fulldiff else None - log.debug('running diff between %s and %s in %s' - % (rev1, c.cs_rev, org_repo.scm_instance.path)) + log.debug('running diff between %s and %s in %s', + rev1, c.cs_rev, org_repo.scm_instance.path) txtdiff = org_repo.scm_instance.get_diff(rev1=rev1, rev2=c.cs_rev, ignore_whitespace=ignore_whitespace, context=line_context) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/error.py --- a/kallithea/controllers/error.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/error.py Sun Sep 06 23:36:05 2015 +0200 @@ -32,7 +32,7 @@ from pylons import tmpl_context as c, request, config from pylons.i18n.translation import _ -from pylons.middleware import media_path +from pylons.middleware import media_path from kallithea.lib.base import BaseController, render @@ -50,22 +50,26 @@ """ def __before__(self): - #disable all base actions since we don't need them here + # disable all base actions since we don't need them here pass def document(self): resp = request.environ.get('pylons.original_response') c.site_name = config.get('title') - log.debug('### %s ###' % (resp and resp.status or 'no response')) + log.debug('### %s ###', resp and resp.status or 'no response') e = request.environ - c.serv_p = r'%(protocol)s://%(host)s/' \ - % {'protocol': e.get('wsgi.url_scheme'), - 'host': e.get('HTTP_HOST'), } - - c.error_message = resp and cgi.escape(request.GET.get('code', str(resp.status))) - c.error_explanation = resp and self.get_error_explanation(resp.status_int) + c.serv_p = r'%(protocol)s://%(host)s/' % { + 'protocol': e.get('wsgi.url_scheme'), + 'host': e.get('HTTP_HOST'), } + if resp: + c.error_message = cgi.escape(request.GET.get('code', + str(resp.status))) + c.error_explanation = self.get_error_explanation(resp.status_int) + else: + c.error_message = _('No response') + c.error_explanation = _('Unknown error') return render('/errors/error_document.html') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/feed.py --- a/kallithea/controllers/feed.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/feed.py Sun Sep 06 23:36:05 2015 +0200 @@ -65,9 +65,7 @@ self.feed_diff_limit = safe_int(CONF.get('rss_cut_off_limit', 32 * 1024)) def _get_title(self, cs): - return "%s" % ( - h.shorter(cs.message, 160) - ) + return h.shorter(cs.message, 160) def __changes(self, cs): changes = [] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/files.py --- a/kallithea/controllers/files.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/files.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import logging import traceback @@ -83,7 +82,7 @@ try: return c.db_repo_scm_instance.get_changeset(rev) - except EmptyRepositoryError, e: + except EmptyRepositoryError as e: if silent_empty: return None url_ = url('files_add_home', @@ -97,7 +96,7 @@ msg = _('Such revision does not exist for this repository') h.flash(msg, category='error') raise HTTPNotFound() - except RepositoryError, e: + except RepositoryError as e: h.flash(safe_str(e), category='error') raise HTTPNotFound() @@ -117,7 +116,7 @@ msg = _('Such revision does not exist for this repository') h.flash(msg, category='error') raise HTTPNotFound() - except RepositoryError, e: + except RepositoryError as e: h.flash(safe_str(e), category='error') raise HTTPNotFound() @@ -182,7 +181,7 @@ c.authors.append((h.email(a), h.person(a))) else: c.authors = c.file_history = [] - except RepositoryError, e: + except RepositoryError as e: h.flash(safe_str(e), category='error') raise HTTPNotFound() @@ -490,12 +489,12 @@ h.flash(_('Successfully committed to %s') % node_path, category='success') - except NonRelativePathError, e: + except NonRelativePathError as e: h.flash(_('Location must be relative path and must not ' 'contain .. in path'), category='warning') return redirect(url('changeset_home', repo_name=c.repo_name, revision='tip')) - except (NodeError, NodeAlreadyExistsError), e: + except (NodeError, NodeAlreadyExistsError) as e: h.flash(_(e), category='error') except Exception: log.error(traceback.format_exc()) @@ -509,7 +508,6 @@ @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def archivefile(self, repo_name, fname): - fileformat = None revision = None ext = None @@ -525,7 +523,7 @@ try: dbrepo = RepoModel().get_by_repo_name(repo_name) if not dbrepo.enable_downloads: - return _('Downloads disabled') + return _('Downloads disabled') # TODO: do something else? if c.db_repo_scm_instance.alias == 'hg': # patch and reset hooks section of UI config to not run any @@ -541,58 +539,57 @@ return _('Empty repository') except (ImproperArchiveTypeError, KeyError): return _('Unknown archive type') - # archive cache + from kallithea import CONFIG rev_name = cs.raw_id[:12] archive_name = '%s-%s%s' % (safe_str(repo_name.replace('/', '_')), safe_str(rev_name), ext) - use_cached_archive = False # defines if we use cached version of archive - archive_cache_enabled = CONFIG.get('archive_cache_dir') - if not subrepos and archive_cache_enabled: - #check if we it's ok to write - if not os.path.isdir(CONFIG['archive_cache_dir']): - os.makedirs(CONFIG['archive_cache_dir']) - cached_archive_path = os.path.join(CONFIG['archive_cache_dir'], archive_name) + archive_path = None + cached_archive_path = None + archive_cache_dir = CONFIG.get('archive_cache_dir') + if archive_cache_dir and not subrepos: # TOOD: subrepo caching? + if not os.path.isdir(archive_cache_dir): + os.makedirs(archive_cache_dir) + cached_archive_path = os.path.join(archive_cache_dir, archive_name) if os.path.isfile(cached_archive_path): - log.debug('Found cached archive in %s' % cached_archive_path) - archive = cached_archive_path - use_cached_archive = True + log.debug('Found cached archive in %s', cached_archive_path) + archive_path = cached_archive_path else: - log.debug('Archive %s is not yet cached' % (archive_name)) + log.debug('Archive %s is not yet cached', archive_name) - if not use_cached_archive: + if archive_path is None: # generate new archive - fd, archive = tempfile.mkstemp() - os.close(fd) - temp_stream = open(archive, 'wb') - log.debug('Creating new temp archive in %s' % archive) - cs.fill_archive(stream=temp_stream, kind=fileformat, subrepos=subrepos) - temp_stream.close() - if not subrepos and archive_cache_enabled: - #if we generated the archive and use cache rename that - log.debug('Storing new archive in %s' % cached_archive_path) - shutil.move(archive, cached_archive_path) - archive = cached_archive_path + fd, archive_path = tempfile.mkstemp() + log.debug('Creating new temp archive in %s', archive_path) + with os.fdopen(fd, 'wb') as stream: + cs.fill_archive(stream=stream, kind=fileformat, subrepos=subrepos) + # stream (and thus fd) has been closed by cs.fill_archive + if cached_archive_path is not None: + # we generated the archive - move it to cache + log.debug('Storing new archive in %s', cached_archive_path) + shutil.move(archive_path, cached_archive_path) + archive_path = cached_archive_path - def get_chunked_archive(archive): - stream = open(archive, 'rb') + def get_chunked_archive(archive_path): + stream = open(archive_path, 'rb') while True: data = stream.read(16 * 1024) if not data: - stream.close() - if not archive_cache_enabled: - log.debug('Destroying temp archive %s' % archive) - os.remove(archive) break yield data - # store download action + stream.close() + if archive_path != cached_archive_path: + log.debug('Destroying temp archive %s', archive_path) + os.remove(archive_path) + action_logger(user=c.authuser, action='user_downloaded_archive:%s' % (archive_name), repo=repo_name, ipaddr=self.ip_addr, commit=True) + response.content_disposition = str('attachment; filename=%s' % (archive_name)) response.content_type = str(content_type) - return get_chunked_archive(archive) + return get_chunked_archive(archive_path) @LoginRequired() @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/forks.py --- a/kallithea/controllers/forks.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/forks.py Sun Sep 06 23:36:05 2015 +0200 @@ -38,13 +38,12 @@ from kallithea.lib.helpers import Page from kallithea.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator, \ - NotAnonymous, HasRepoPermissionAny, HasPermissionAnyDecorator + NotAnonymous, HasRepoPermissionAny, HasPermissionAnyDecorator, HasPermissionAny from kallithea.lib.base import BaseRepoController, render -from kallithea.model.db import Repository, RepoGroup, UserFollowing, User,\ - Ui +from kallithea.model.db import Repository, UserFollowing, User, Ui from kallithea.model.repo import RepoModel from kallithea.model.forms import RepoForkForm -from kallithea.model.scm import ScmModel, RepoGroupList +from kallithea.model.scm import ScmModel, AvailableRepoGroupChoices from kallithea.lib.utils2 import safe_int log = logging.getLogger(__name__) @@ -56,12 +55,13 @@ super(ForksController, self).__before__() def __load_defaults(self): - acl_groups = RepoGroupList(RepoGroup.query().all(), - perm_set=['group.write', 'group.admin']) - c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) - c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) - choices, c.landing_revs = ScmModel().get_repo_landing_revs() - c.landing_revs_choices = choices + repo_group_perms = ['group.admin'] + if HasPermissionAny('hg.create.write_on_repogroup.true')(): + repo_group_perms.append('group.write') + c.repo_groups = AvailableRepoGroupChoices(['hg.create.repository'], repo_group_perms) + + c.landing_revs_choices, c.landing_revs = ScmModel().get_repo_landing_revs() + c.can_update = Ui.get_by_key(Ui.HOOK_UPDATE).ui_active def __load_data(self, repo_name=None): @@ -156,7 +156,7 @@ self.__load_defaults() c.repo_info = Repository.get_by_repo_name(repo_name) _form = RepoForkForm(old_data={'repo_type': c.repo_info.repo_type}, - repo_groups=c.repo_groups_choices, + repo_groups=c.repo_groups, landing_revs=c.landing_revs_choices)() form_result = {} task_id = None @@ -173,8 +173,7 @@ from celery.result import BaseAsyncResult if isinstance(task, BaseAsyncResult): task_id = task.task_id - except formencode.Invalid, errors: - c.new_repo = errors.value['repo_name'] + except formencode.Invalid as errors: return htmlfill.render( render('forks/fork.html'), defaults=errors.value, diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/journal.py --- a/kallithea/controllers/journal.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/journal.py Sun Sep 06 23:36:05 2015 +0200 @@ -108,11 +108,11 @@ journal = self._get_journal_data(repos) if public: _link = h.canonical_url('public_journal_atom') - _desc = '%s %s %s' % (c.site_name, _('public journal'), + _desc = '%s %s %s' % (c.site_name, _('Public Journal'), 'atom feed') else: _link = h.canonical_url('journal_atom') - _desc = '%s %s %s' % (c.site_name, _('journal'), 'atom feed') + _desc = '%s %s %s' % (c.site_name, _('Journal'), 'atom feed') feed = Atom1Feed(title=_desc, link=_link, @@ -150,11 +150,11 @@ journal = self._get_journal_data(repos) if public: _link = h.canonical_url('public_journal_atom') - _desc = '%s %s %s' % (c.site_name, _('public journal'), + _desc = '%s %s %s' % (c.site_name, _('Public Journal'), 'rss feed') else: _link = h.canonical_url('journal_atom') - _desc = '%s %s %s' % (c.site_name, _('journal'), 'rss feed') + _desc = '%s %s %s' % (c.site_name, _('Journal'), 'rss feed') feed = Rss201rev2Feed(title=_desc, link=_link, @@ -239,10 +239,7 @@ def desc(desc): from pylons import tmpl_context as c - if c.visual.stylify_metatags: - return h.urlify_text(h.desc_stylize(h.truncate(desc, 60))) - else: - return h.urlify_text(h.truncate(desc, 60)) + return h.urlify_text(desc, truncate=60, stylize=c.visual.stylify_metatags) def repo_actions(repo_name): return _render('repo_actions', repo_name) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/login.py --- a/kallithea/controllers/login.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/login.py Sun Sep 06 23:36:05 2015 +0200 @@ -28,22 +28,22 @@ import logging import formencode -import datetime import urlparse from formencode import htmlfill -from webob.exc import HTTPFound +from webob.exc import HTTPFound, HTTPBadRequest from pylons.i18n.translation import _ from pylons.controllers.util import redirect from pylons import request, session, tmpl_context as c, url import kallithea.lib.helpers as h from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator -from kallithea.lib.auth_modules import importplugin -from kallithea.lib.base import BaseController, render +from kallithea.lib.base import BaseController, log_in_user, render from kallithea.lib.exceptions import UserCreationError +from kallithea.lib.utils2 import safe_str from kallithea.model.db import User, Setting -from kallithea.model.forms import LoginForm, RegisterForm, PasswordResetForm +from kallithea.model.forms import \ + LoginForm, RegisterForm, PasswordResetRequestForm, PasswordResetConfirmationForm from kallithea.model.user import UserModel from kallithea.model.meta import Session @@ -56,76 +56,50 @@ def __before__(self): super(LoginController, self).__before__() - def _store_user_in_session(self, username, remember=False): - user = User.get_by_username(username, case_insensitive=True) - auth_user = AuthUser(user.user_id) - auth_user.set_authenticated() - cs = auth_user.get_cookie_store() - session['authuser'] = cs - user.update_lastlogin() - Session().commit() - - # If they want to be remembered, update the cookie - if remember: - _year = (datetime.datetime.now() + - datetime.timedelta(seconds=60 * 60 * 24 * 365)) - session._set_cookie_expires(_year) - - session.save() - - log.info('user %s is now authenticated and stored in ' - 'session, session attrs %s' % (username, cs)) - - # dumps session attrs back to cookie - session._update_cookie_out() - # we set new cookie - headers = None - if session.request['set_cookie']: - # send set-cookie headers back to response to update cookie - headers = [('Set-Cookie', session.request['cookie_out'])] - return headers - def _validate_came_from(self, came_from): + """Return True if came_from is valid and can and should be used""" if not came_from: - return came_from + return False parsed = urlparse.urlparse(came_from) server_parsed = urlparse.urlparse(url.current()) allowed_schemes = ['http', 'https'] if parsed.scheme and parsed.scheme not in allowed_schemes: - log.error('Suspicious URL scheme detected %s for url %s' % - (parsed.scheme, parsed)) - came_from = url('home') - elif server_parsed.netloc != parsed.netloc: + log.error('Suspicious URL scheme detected %s for url %s', + parsed.scheme, parsed) + return False + if server_parsed.netloc != parsed.netloc: log.error('Suspicious NETLOC detected %s for url %s server url ' 'is: %s' % (parsed.netloc, parsed, server_parsed)) - came_from = url('home') - return came_from + return False + return True + + def _redirect_to_origin(self, origin): + '''redirect to the original page, preserving any get arguments given''' + request.GET.pop('came_from', None) + raise HTTPFound(location=url(origin, **request.GET)) def index(self): - _default_came_from = url('home') - came_from = self._validate_came_from(request.GET.get('came_from')) - c.came_from = came_from or _default_came_from + c.came_from = safe_str(request.GET.get('came_from', '')) + if not self._validate_came_from(c.came_from): + c.came_from = url('home') not_default = self.authuser.username != User.DEFAULT_USER - ip_allowed = self.authuser.ip_allowed + ip_allowed = AuthUser.check_ip_allowed(self.authuser, self.ip_addr) # redirect if already logged in if self.authuser.is_authenticated and not_default and ip_allowed: - raise HTTPFound(location=c.came_from) + return self._redirect_to_origin(c.came_from) if request.POST: # import Login Form validator class login_form = LoginForm() try: - session.invalidate() c.form_result = login_form.to_python(dict(request.POST)) # form checks for username/password, now we're authenticated - headers = self._store_user_in_session( - username=c.form_result['username'], - remember=c.form_result['remember']) - raise HTTPFound(location=c.came_from, headers=headers) - except formencode.Invalid, errors: + username = c.form_result['username'] + user = User.get_by_username(username, case_insensitive=True) + except formencode.Invalid as errors: defaults = errors.value # remove password from filling in form again del defaults['password'] @@ -136,28 +110,17 @@ prefix_error=False, encoding="UTF-8", force_defaults=False) - except UserCreationError, e: + except UserCreationError as e: # container auth or other auth functions that create users on # the fly can throw this exception signaling that there's issue # with user creation, explanation should be provided in # Exception itself h.flash(e, 'error') + else: + log_in_user(user, c.form_result['remember'], + is_external_auth=False) + return self._redirect_to_origin(c.came_from) - # check if we use container plugin, and try to login using it. - auth_plugins = Setting.get_auth_plugins() - if any((importplugin(name).is_container_auth for name in auth_plugins)): - from kallithea.lib import auth_modules - try: - auth_info = auth_modules.authenticate('', '', request.environ) - except UserCreationError, e: - log.error(e) - h.flash(e, 'error') - # render login, with flash message about limit - return render('/login.html') - - if auth_info: - headers = self._store_user_in_session(auth_info.get('username')) - raise HTTPFound(location=c.came_from, headers=headers) return render('/login.html') @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate', @@ -185,7 +148,7 @@ remoteip=self.ip_addr) if c.captcha_active and not response.is_valid: _value = form_result - _msg = _('bad captcha') + _msg = _('Bad captcha') error_dict = {'recaptcha_field': _msg} raise formencode.Invalid(_msg, _value, None, error_dict=error_dict) @@ -196,7 +159,7 @@ Session().commit() return redirect(url('login_home')) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('/register.html'), defaults=errors.value, @@ -204,7 +167,7 @@ prefix_error=False, encoding="UTF-8", force_defaults=False) - except UserCreationError, e: + except UserCreationError as e: # container auth or other auth functions that create users on # the fly can throw this exception signaling that there's issue # with user creation, explanation should be provided in @@ -220,7 +183,7 @@ c.captcha_public_key = settings.get('captcha_public_key') if request.POST: - password_reset_form = PasswordResetForm()() + password_reset_form = PasswordResetRequestForm()() try: form_result = password_reset_form.to_python(dict(request.POST)) if c.captcha_active: @@ -231,16 +194,16 @@ remoteip=self.ip_addr) if c.captcha_active and not response.is_valid: _value = form_result - _msg = _('bad captcha') + _msg = _('Bad captcha') error_dict = {'recaptcha_field': _msg} raise formencode.Invalid(_msg, _value, None, error_dict=error_dict) - UserModel().reset_password_link(form_result) - h.flash(_('Your password reset link was sent'), + redirect_link = UserModel().send_reset_password_email(form_result) + h.flash(_('A password reset confirmation code has been sent'), category='success') - return redirect(url('login_home')) + return redirect(redirect_link) - except formencode.Invalid, errors: + except formencode.Invalid as errors: return htmlfill.render( render('/password_reset.html'), defaults=errors.value, @@ -252,18 +215,45 @@ return render('/password_reset.html') def password_reset_confirmation(self): - if request.GET and request.GET.get('key'): - try: - user = User.get_by_api_key(request.GET.get('key')) - data = dict(email=user.email) - UserModel().reset_password(data) - h.flash(_('Your password reset was successful, ' - 'new password has been sent to your email'), - category='success') - except Exception, e: - log.error(e) - return redirect(url('reset_password')) + # This controller handles both GET and POST requests, though we + # only ever perform the actual password change on POST (since + # GET requests are not allowed to have side effects, and do not + # receive automatic CSRF protection). + + # The template needs the email address outside of the form. + c.email = request.params.get('email') + + if not request.POST: + return htmlfill.render( + render('/password_reset_confirmation.html'), + defaults=dict(request.params), + encoding='UTF-8') + form = PasswordResetConfirmationForm()() + try: + form_result = form.to_python(dict(request.POST)) + except formencode.Invalid as errors: + return htmlfill.render( + render('/password_reset_confirmation.html'), + defaults=errors.value, + errors=errors.error_dict or {}, + prefix_error=False, + encoding='UTF-8') + + if not UserModel().verify_reset_password_token( + form_result['email'], + form_result['timestamp'], + form_result['token'], + ): + return htmlfill.render( + render('/password_reset_confirmation.html'), + defaults=form_result, + errors={'token': _('Invalid password reset token')}, + prefix_error=False, + encoding='UTF-8') + + UserModel().reset_password(form_result['email'], form_result['password']) + h.flash(_('Successfully updated password'), category='success') return redirect(url('login_home')) def logout(self): @@ -273,7 +263,7 @@ def authentication_token(self): """Return the CSRF protection token for the session - just like it - could have been screen scrabed from a page with a form. + could have been screen scraped from a page with a form. Only intended for testing but might also be useful for other kinds of automation. """ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/pullrequests.py --- a/kallithea/controllers/pullrequests.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/pullrequests.py Sun Sep 06 23:36:05 2015 +0200 @@ -44,12 +44,13 @@ from kallithea.lib.helpers import Page from kallithea.lib import helpers as h from kallithea.lib import diffs +from kallithea.lib.exceptions import UserInvalidException from kallithea.lib.utils import action_logger, jsonify from kallithea.lib.vcs.utils import safe_str from kallithea.lib.vcs.exceptions import EmptyRepositoryError from kallithea.lib.diffs import LimitedDiffContainer -from kallithea.model.db import PullRequest, ChangesetStatus, ChangesetComment,\ - PullRequestReviewers +from kallithea.model.db import PullRequest, ChangesetStatus, ChangesetComment,\ + PullRequestReviewers, User from kallithea.model.pull_request import PullRequestModel from kallithea.model.meta import Session from kallithea.model.repo import RepoModel @@ -57,8 +58,7 @@ from kallithea.model.changeset_status import ChangesetStatusModel from kallithea.model.forms import PullRequestForm, PullRequestPostForm from kallithea.lib.utils2 import safe_int -from kallithea.controllers.changeset import _ignorews_url,\ - _context_url, get_line_ctx, get_ignore_ws +from kallithea.controllers.changeset import _ignorews_url, _context_url from kallithea.controllers.compare import CompareController from kallithea.lib.graphmod import graph_data @@ -67,12 +67,6 @@ class PullrequestsController(BaseRepoController): - def __before__(self): - super(PullrequestsController, self).__before__() - repo_model = RepoModel() - c.users_array = repo_model.get_users_js() - c.user_groups_array = repo_model.get_user_groups_js() - def _get_repo_refs(self, repo, rev=None, branch=None, branch_rev=None): """return a structure with repo's interesting changesets, suitable for the selectors in pullrequest.html @@ -203,10 +197,7 @@ c.repo_name = repo_name p = safe_int(request.GET.get('page', 1), 1) - c.pullrequests_pager = Page(c.pull_requests, page=p, items_per_page=10) - - if request.environ.get('HTTP_X_PARTIAL_XHR'): - return render('/pullrequests/pullrequest_data.html') + c.pullrequests_pager = Page(c.pull_requests, page=p, items_per_page=100) return render('/pullrequests/pullrequest_show_all.html') @@ -243,7 +234,7 @@ org_scm_instance = org_repo.scm_instance try: org_scm_instance.get_changeset() - except EmptyRepositoryError, e: + except EmptyRepositoryError as e: h.flash(h.literal(_('There are no changesets yet')), category='warning') redirect(url('summary_home', repo_name=org_repo.repo_name)) @@ -251,7 +242,14 @@ org_rev = request.GET.get('rev_end') # rev_start is not directly useful - its parent could however be used # as default for other and thus give a simple compare view - #other_rev = request.POST.get('rev_start') + rev_start = request.GET.get('rev_start') + other_rev = None + if rev_start: + starters = org_repo.get_changeset(rev_start).parents + if starters: + other_rev = starters[0].raw_id + else: + other_rev = org_repo.scm_instance.EMPTY_CHANGESET branch = request.GET.get('branch') c.cs_repos = [(org_repo.repo_name, org_repo.repo_name)] @@ -271,11 +269,11 @@ c.a_repos.append((org_repo.parent.repo_name, '%s (parent)' % org_repo.parent.repo_name)) c.a_repo = org_repo.parent c.a_refs, c.default_a_ref = self._get_repo_refs( - org_repo.parent.scm_instance, branch=default_cs_branch) + org_repo.parent.scm_instance, branch=default_cs_branch, rev=other_rev) else: c.a_repo = org_repo - c.a_refs, c.default_a_ref = self._get_repo_refs(org_scm_instance) # without rev and branch + c.a_refs, c.default_a_ref = self._get_repo_refs(org_scm_instance, rev=other_rev) # gather forks and add to this list ... even though it is rare to # request forks to pull from their parent @@ -306,7 +304,7 @@ repo = RepoModel()._get_repo(repo_name) try: _form = PullRequestForm(repo.repo_id)().to_python(request.POST) - except formencode.Invalid, errors: + except formencode.Invalid as errors: log.error(traceback.format_exc()) log.error(str(errors)) msg = _('Error creating pull request: %s') % errors.msg @@ -337,7 +335,9 @@ other_repo.scm_instance, other_rev, # org and other "swapped" org_repo.scm_instance, org_rev, ) - revisions = [cs.raw_id for cs in cs_ranges] + if ancestor_rev is None: + ancestor_rev = org_repo.scm_instance.EMPTY_CHANGESET + revisions = [cs_.raw_id for cs_ in cs_ranges] # hack: ancestor_rev is not an other_rev but we want to show the # requested destination and have the exact ancestor @@ -362,6 +362,9 @@ Session().commit() h.flash(_('Successfully opened new pull request'), category='success') + except UserInvalidException as u: + h.flash(_('Invalid reviewer "%s" specified') % u, category='error') + raise HTTPBadRequest() except Exception: h.flash(_('Error occurred while creating pull request'), category='error') @@ -446,6 +449,9 @@ old_pull_request.other_repo.repo_name, new_other_ref, revisions, reviewers_ids, title, description ) + except UserInvalidException as u: + h.flash(_('Invalid reviewer "%s" specified') % u, category='error') + raise HTTPBadRequest() except Exception: h.flash(_('Error occurred while creating pull request'), category='error') @@ -477,7 +483,7 @@ raise HTTPForbidden() assert pull_request.other_repo.repo_name == repo_name #only owner or admin can update it - owner = pull_request.author.user_id == c.authuser.user_id + owner = pull_request.owner.user_id == c.authuser.user_id repo_admin = h.HasRepoPermissionAny('repository.admin')(c.repo_name) if not (h.HasPermissionAny('hg.admin') or repo_admin or owner): raise HTTPForbidden() @@ -495,9 +501,13 @@ old_description = pull_request.description pull_request.title = _form['pullrequest_title'] pull_request.description = _form['pullrequest_desc'].strip() or _('No description') - PullRequestModel().mention_from_description(pull_request, old_description) - - PullRequestModel().update_reviewers(pull_request_id, reviewers_ids) + pull_request.owner = User.get_by_username(_form['owner']) + try: + PullRequestModel().mention_from_description(pull_request, old_description) + PullRequestModel().update_reviewers(pull_request_id, reviewers_ids) + except UserInvalidException as u: + h.flash(_('Invalid reviewer "%s" specified') % u, category='error') + raise HTTPBadRequest() Session().commit() h.flash(_('Pull request updated'), category='success') @@ -512,7 +522,7 @@ def delete(self, repo_name, pull_request_id): pull_request = PullRequest.get_or_404(pull_request_id) #only owner can delete it ! - if pull_request.author.user_id == c.authuser.user_id: + if pull_request.owner.user_id == c.authuser.user_id: PullRequestModel().delete(pull_request) Session().commit() h.flash(_('Successfully deleted pull request'), @@ -555,6 +565,13 @@ revs = [ctx.revision for ctx in reversed(c.cs_ranges)] c.jsdata = json.dumps(graph_data(org_scm_instance, revs)) + c.is_range = False + if c.a_ref_type == 'rev': # this looks like a free range where target is ancestor + cs_a = org_scm_instance.get_changeset(c.a_rev) + root_parents = c.cs_ranges[0].parents + c.is_range = cs_a in root_parents + #c.merge_root = len(root_parents) > 1 # a range starting with a merge might deserve a warning + avail_revs = set() avail_show = [] c.cs_branch_name = c.cs_ref_name @@ -629,8 +646,8 @@ diff_limit = self.cut_off_limit if not c.fulldiff else None # we swap org/other ref since we run a simple diff on one repo - log.debug('running diff between %s and %s in %s' - % (c.a_rev, c.cs_rev, org_scm_instance.path)) + log.debug('running diff between %s and %s in %s', + c.a_rev, c.cs_rev, org_scm_instance.path) txtdiff = org_scm_instance.get_diff(rev1=safe_str(c.a_rev), rev2=safe_str(c.cs_rev), ignore_whitespace=ignore_whitespace, context=line_context) @@ -690,23 +707,32 @@ def comment(self, repo_name, pull_request_id): pull_request = PullRequest.get_or_404(pull_request_id) - status = 0 - close_pr = False + status = request.POST.get('changeset_status') + close_pr = request.POST.get('save_close') + f_path = request.POST.get('f_path') + line_no = request.POST.get('line') + + if (status or close_pr) and (f_path or line_no): + # status votes and closing is only possible in general comments + raise HTTPBadRequest() + allowed_to_change_status = self._get_is_allowed_change_status(pull_request) - if allowed_to_change_status: - status = request.POST.get('changeset_status') - close_pr = request.POST.get('save_close') - text = request.POST.get('text', '').strip() or _('No comments.') + if not allowed_to_change_status: + if status or close_pr: + h.flash(_('No permission to change pull request status'), 'error') + raise HTTPForbidden() + + text = request.POST.get('text', '').strip() if close_pr: text = _('Closing.') + '\n' + text - comm = ChangesetCommentsModel().create( + comment = ChangesetCommentsModel().create( text=text, repo=c.db_repo.repo_id, user=c.authuser.user_id, pull_request=pull_request_id, - f_path=request.POST.get('f_path'), - line_no=request.POST.get('line'), + f_path=f_path, + line_no=line_no, status_change=(ChangesetStatus.get_status_lbl(status) if status and allowed_to_change_status else None), closing_pr=close_pr @@ -716,22 +742,20 @@ 'user_commented_pull_request:%s' % pull_request_id, c.db_repo, self.ip_addr, self.sa) - if allowed_to_change_status: - # get status if set ! - if status: - ChangesetStatusModel().set_status( - c.db_repo.repo_id, - status, - c.authuser.user_id, - comm, - pull_request=pull_request_id - ) + if status: + ChangesetStatusModel().set_status( + c.db_repo.repo_id, + status, + c.authuser.user_id, + comment, + pull_request=pull_request_id + ) - if close_pr: - PullRequestModel().close_pull_request(pull_request_id) - action_logger(self.authuser, - 'user_closed_pull_request:%s' % pull_request_id, - c.db_repo, self.ip_addr, self.sa) + if close_pr: + PullRequestModel().close_pull_request(pull_request_id) + action_logger(self.authuser, + 'user_closed_pull_request:%s' % pull_request_id, + c.db_repo, self.ip_addr, self.sa) Session().commit() @@ -741,9 +765,9 @@ data = { 'target_id': h.safeid(h.safe_unicode(request.POST.get('f_path'))), } - if comm: - c.co = comm - data.update(comm.get_dict()) + if comment is not None: + c.comment = comment + data.update(comment.get_dict()) data.update({'rendered_text': render('changeset/changeset_comment_block.html')}) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/search.py --- a/kallithea/controllers/search.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/search.py Sun Sep 06 23:36:05 2015 +0200 @@ -77,8 +77,8 @@ 'path': SCHEMA }.get(c.cur_type, SCHEMA) - log.debug('IDX: %s' % index_name) - log.debug('SCHEMA: %s' % schema_defn) + log.debug('IDX: %s', index_name) + log.debug('SCHEMA: %s', schema_defn) if c.cur_query: cur_query = c.cur_query.lower() @@ -109,8 +109,8 @@ matcher = query.matcher(searcher) - log.debug('query: %s' % query) - log.debug('hl terms: %s' % highlight_items) + log.debug('query: %s', query) + log.debug('hl terms: %s', highlight_items) results = searcher.search(query) res_ln = len(results) c.runtime = '%s results (%.3f seconds)' % ( diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/controllers/summary.py --- a/kallithea/controllers/summary.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/controllers/summary.py Sun Sep 06 23:36:05 2015 +0200 @@ -67,25 +67,6 @@ def __before__(self): super(SummaryController, self).__before__() - def _get_download_links(self, repo): - - download_l = [] - - branches_group = ([], _("Branches")) - tags_group = ([], _("Tags")) - - for name, chs in c.db_repo_scm_instance.branches.items(): - #chs = chs.split(':')[-1] - branches_group[0].append((chs, name),) - download_l.append(branches_group) - - for name, chs in c.db_repo_scm_instance.tags.items(): - #chs = chs.split(':')[-1] - tags_group[0].append((chs, name),) - download_l.append(tags_group) - - return download_l - def __get_readme_data(self, db_repo): repo_name = db_repo.repo_name log.debug('Looking for README file') @@ -106,7 +87,7 @@ if not isinstance(readme, FileNode): continue readme_file = f - log.debug('Found README file `%s` rendering...' % + log.debug('Found README file `%s` rendering...', readme_file) readme_data = renderer.render(readme.content, filename=f) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/be/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/be/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/be/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,11 +5,11 @@ # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea 0.1\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" "POT-Creation-Date: 2015-04-01 03:17+0200\n" -"PO-Revision-Date: 2015-06-09 14:58+0200\n" -"Last-Translator: Viktar Palstsiuk \n" +"PO-Revision-Date: 2015-08-08 12:03+0300\n" +"Last-Translator: Andrew Shadura \n" "Language-Team: Belarusian " "\n" "Language: be\n" @@ -21,19 +21,23 @@ "X-Generator: Weblate 2.4-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Яшчэ не было змен" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Нічога" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(зачынена)" @@ -41,63 +45,66 @@ msgid "Show whitespace" msgstr "Адлюстроўваць прабелы" -#: kallithea/controllers/changeset.py:96 -#: kallithea/controllers/changeset.py:103 +#: kallithea/controllers/changeset.py:96 kallithea/controllers/changeset.py:103 #: kallithea/templates/files/diff_2way.html:55 msgid "Ignore whitespace" msgstr "Ігнараваць прабелы" #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" -msgstr "павялічыць кантэкст да %(num)s радкоў" +msgid "Increase diff context to %(num)s lines" +msgstr "Павялічыць кантэкст да %(num)s радкоў" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Няма такой рэвізіі ў гэтым рэпазітары" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Няма каментароў." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" -"Changing status on a changeset associated with a closed pull request is not " -"allowed" -msgstr "Нельга рэдагаваць статут змен, злучаных з зачыненымі pull-request'ами" - -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +"Changing status on a changeset associated with a closed pull request is " +"not allowed" +msgstr "Нельга рэдагаваць статус змен, злучаных з зачыненымі pull-request'ами" + +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" -msgstr "Абраць набор змен" - -#: kallithea/controllers/compare.py:255 +msgstr "Выбраць набор змен" + +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "Немагчыма параўноўваць рэпазітары без агульнага продка" -#: kallithea/controllers/error.py:96 -msgid "" -"The request could not be understood by the server due to malformed syntax." +#: kallithea/controllers/error.py:71 +msgid "No response" +msgstr "Няма адказу" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "Невядомая памылка" + +#: kallithea/controllers/error.py:100 +msgid "The request could not be understood by the server due to malformed syntax." msgstr "Запыт не распазнаны серверам з-за няправільнага сінтаксісу." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Несанкцыянаваны доступ да рэсурсу" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "У вас няма правоў для прагляду гэтай старонкі" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "Рэсурс не знойдзены" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." -msgstr "Сервер не можа выканаць запыт з-за няправільнай умовы ў запыце." +msgstr "" +"Сервер не можа выканаць запыт з-за нечаканых умоваў, якія ўзніклі падчас " +"яго спрацавання." #: kallithea/controllers/feed.py:55 #, python-format @@ -109,17 +116,17 @@ msgid "%s %s feed" msgstr "Стужка навін %s %s" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." -msgstr "Змены апынуліся занадта вялікімі і былі выразаны..." - -#: kallithea/controllers/feed.py:93 +msgstr "Змены апынуліся занадта вялікімі і былі выразаныя..." + +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s выканаў каміт у %s" @@ -196,50 +203,46 @@ #: kallithea/controllers/files.py:494 msgid "Location must be relative path and must not contain .. in path" msgstr "" -"Размяшчэнне павінна быць адносным шляхам, і не павінна ўтрымоўваць \"..\" у " +"Размяшчэнне павінна быць адносным шляхам, і не можа ўтрымліваць \"..\" у " "шляхі" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Магчымасць спампоўваць адключана" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Невядомая рэвізія %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Пусты рэпазітар" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Невядомы тып архіва" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Набор змен" -#: kallithea/controllers/files.py:776 -#: kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Галінкі" -#: kallithea/controllers/files.py:777 -#: kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" -msgstr "Пазнакі" - -#: kallithea/controllers/forks.py:187 +msgstr "Тэгі" + +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Адбылася памылка падчас стварэння форка рэпазітара %s" @@ -255,9 +258,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Рэпазітары" @@ -277,144 +280,161 @@ msgstr "Закладкі" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" -msgstr "агульнадаступны часопіс" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" +msgstr "Публічны часопіс" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "часопіс" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "няслушная капча" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "Часопіс" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "Няслушная капча" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Рэгістрацыя ў Kallithea прайшла паспяхова" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" -msgstr "Спасылка для скіду пароля адпраўлена" - -#: kallithea/controllers/login.py:260 +msgstr "Спасылка для скідання пароля адпраўлена" + +#: kallithea/controllers/login.py:222 msgid "" -"Your password reset was successful, new password has been sent to your email" -msgstr "Скід пароля выраблены, новы пароль быў адпраўлены на ваш email" - -#: kallithea/controllers/pullrequests.py:130 +"Your password reset was successful, new password has been sent to your " +"email" +msgstr "Пароль скінуты паспяхова, новы пароль быў адпраўлены на ваш email" + +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (зачынена)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Змены" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Адмысловы" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "Галінкі ўдзельніка" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Закладкі" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "Памылка пры стварэнні pull-запыту: %s" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "Няма апісання" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "Pull-запыт створаны паспяхова" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "Адбылася памылка пры стварэнні pull-запыту" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "Адсутныя рэвізіі адносна папярэдняга pull-запыту:" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "Новыя рэвізіі на %s %s адносна папярэдняга pull-запыту:" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "Гэты pull-запыт заснаваны на іншай рэвізіі %s, просты diff немагчымы." -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "Няма змен на %s %s адносна папярэдняй версіі." -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." -msgstr "Зачынены, замешчаны %s ." - -#: kallithea/controllers/pullrequests.py:464 +msgstr "Зачынены, замешчаны %s." + +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "Абнаўленне для pull-запыту створана" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "Pull-запыт абноўлены" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "Pull-запыт паспяхова выдалены" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "Гэты pull-запыт ужо прыняты на галінку %s." -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "Гэты pull-запыт быў зачынены і не можа быць абноўлены." -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "Гэты pull-запыт можа быць абноўлены з %s:" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "Няма змен для абнаўлення гэтага pull-запыту." -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "Увага: Галінка %s мае яшчэ адну верхавіну: %s." -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." -msgstr "Абнаўленне pull-запыты git не падтрымліваецца." - -#: kallithea/controllers/pullrequests.py:701 +msgstr "Абнаўленне pull-запытаў git не падтрымліваецца." + +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "Няма правоў змяняць статус pull-запыту" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "Зачынены." @@ -430,21 +450,21 @@ msgid "An error occurred during search operation." msgstr "Адбылася памылка пры выкананні гэтага пошуку." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "Няма дадзеных" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "Статыстычныя дадзеныя адключаны для гэтага рэпазітара" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "Налады аўтарызацыі паспяхова абноўлены" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "адбылася памылка пры абнаўленні налад аўтарызацыі" @@ -457,38 +477,38 @@ msgstr "Адбылася памылка пры абнаўленні стандартных налад" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" -msgstr "назаўжды" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" +msgstr "Назаўжды" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 хвілін" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 гадзіна" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 дзень" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 месяц" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "Тэрмін" @@ -502,8 +522,8 @@ msgstr "Gist-запіс %s выдалены" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +msgid "Unmodified" +msgstr "Без змен" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -518,119 +538,135 @@ msgid "Error occurred during update of gist %s" msgstr "Адбылася памылка пры абнаўленні gist-запісы %s" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -"Вы не можаце змяніць дадзеныя гэтага карыстача, паколькі ён важны для працы " -"ўсяго прыкладання" - -#: kallithea/controllers/admin/my_account.py:128 +"Вы не можаце змяніць дадзеныя гэтага карыстача, паколькі ён важны для " +"працы ўсяго прыкладання" + +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Ваш уліковы запіс паспяхова абноўлены" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "Адбылася памылка пры абнаўленні карыстача %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Пароль абноўлены" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "Памылка пры абнаўленні пароля" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "Карыстачу дададзены e-mail %s" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Адбылася памылка пры захаванні e-mail" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "E-mail карыстача выдалены" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" msgstr "API-ключ паспяхова створаны" -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" msgstr "API-ключ паспяхова скінуты" -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" msgstr "API-ключ паспяхова выдалены" +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Чытанне" + #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Чытанне" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Запіс" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Запіс" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Адміністратар" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Адключана" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Дазволена, з ручной актывацыяй уліковага запісу" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Дазволена, з аўтаматычнай актывацыяй уліковага запісу" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -638,11 +674,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Ручная актывацыя вонкавага ўліковага запісу" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -650,221 +686,207 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Аўтаматычная актывацыя вонкавага ўліковага запісу" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Уключана" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "Глабальныя прывілеі паспяхова абноўлены" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Адбылася памылка падчас абнаўлення прывілеяў" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Адбылася памылка пры стварэнні групы рэпазітароў %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Створана новая група рэпазітароў %s" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Адбылася памылка пры стварэнні групы рэпазітароў %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Група рэпазітароў %s абноўлена" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Адбылася памылка пры абнаўленні групы рэпазітароў %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Дадзеная група ўтрымоўвае %s рэпазітароў і не можа быць выдалена" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Група ўтрымоўвае ў сабе %s падгруп і не можа быць выдалены" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Група рэпазітароў %s выдалена" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Адбылася памылка пры выдаленні групы рэпазітароў %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Адміністратар не можа адклікаць свае прывелеі" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Прывілеі групы рэпазітароў абноўлены" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Адбылася памылка пры водгуку прывелеі" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Адбылася памылка пры стварэнні рэпазітара %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "Рэпазітар %s створаны з %s" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "Зроблены форк(копія) рэпазітара %s на %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Рэпазітар %s створаны" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Рэпазітар %s паспяхова абноўлены" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Адбылася памылка падчас абнаўлення рэпазітара %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "Форки %s адлучаны" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "Выдалены форки рэпазітара %s" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Рэпазітар %s выдалены" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "Немагчыма выдаліць %s, ён усё-яшчэ ўтрымоўвае форки" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "Немагчыма выдаліць %s, ён усё яшчэ мае форкі" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Адбылася памылка падчас выдалення %s" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Прывілеі рэпазітара абноўлены" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Адбылася памылка пры стварэнні поля" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Адбылася памылка пры выдаленні поля" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- Не форк --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "Бачнасць рэпазітара ў публічным часопісе абноўлена" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "Адбылася памылка пры ўсталёўцы рэпазітара ў агульнадаступны часопіс" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Несупадзенне токенаў" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Нічога" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Рэпазітар %s адзначаны як форк %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Адбылася памылка пры выкананні аперацыі" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "Зачынены рэпазітар" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "Адкрыты рэпазітар" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +msgid "Repository has been locked" +msgstr "Рэпазітар заблакаваны" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py: +msgid "Repository has been unlocked" +msgstr "Рэпазітар адблакаваны" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Адбылася памылка падчас разблакавання" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Разблакавана" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Заблакавана" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "Кэш скінуты" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Адбылася памылка пры ачыстцы кэша" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Занесены змены з выдаленага рэпазітара" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "Рэпазітар %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "Кэш скінуты" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Адбылася памылка пры ачыстцы кэша" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Занесены змены з выдаленага рэпазітара" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "Адбылася памылка пры занясенні змен з выдаленага рэпазітара" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Адбылася памылка пры выдаленні статыстыкі рэпазітара" @@ -882,7 +904,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "Адбылася памылка пры абнаўленні налад прыкладання" #: kallithea/controllers/admin/settings.py:213 @@ -896,7 +918,7 @@ #: kallithea/controllers/admin/settings.py:327 msgid "Updated visualisation settings" -msgstr "Налады візуалізацыі абноўлены" +msgstr "Налады візуалізацыі абноўленыя" #: kallithea/controllers/admin/settings.py:332 msgid "Error occurred during updating visualisation settings" @@ -904,19 +926,19 @@ #: kallithea/controllers/admin/settings.py:358 msgid "Please enter email address" -msgstr "Калі ласка, увядзіце адрас электроннай пошты" +msgstr "Калі ласка, увядзіце email-адрас" #: kallithea/controllers/admin/settings.py:373 msgid "Send email task created" -msgstr "Задача адпраўкі Email створана" +msgstr "Задача адпраўкі e-mail створаная" #: kallithea/controllers/admin/settings.py:404 msgid "Added new hook" -msgstr "Дададзена новая пастка" +msgstr "Дададзены новы хук" #: kallithea/controllers/admin/settings.py:418 msgid "Updated hooks" -msgstr "Абноўленыя пасткі" +msgstr "Абноўленыя хукі" #: kallithea/controllers/admin/settings.py:422 msgid "Error occurred during hook creation" @@ -959,83 +981,80 @@ msgstr "Мэтавая група не можа быць такі ж" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Прывілеі групы карыстачоў абноўлены" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Абноўлены прывілеі" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Адбылася памылка пры захаванні прывілеяў" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Карыстач %s створаны" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Адбылася памылка пры стварэнні карыстача %s" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "Карыстач паспяхова абноўлены" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Карыстач паспяхова выдалены" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Адбылася памылка пры выдаленні карыстача" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Вы не можаце рэдагаваць дадзенага карыстача" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "Дададзены IP %s у белы спіс карыстача" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Адбылася памылка пры захаванні IP" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "Выдалены IP %s з белага спісу карыстача" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IP %s заблакаваны" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "Няслушны API-ключ" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "Вы павінны быць зарэгістраваным карыстачом, каб выканаць гэта дзеянне" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Старонка даступная толькі аўтарызаваным карыстачам" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "Рэпазітар не знойдзены на файлавай сістэме" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Набор змен не знойдзены" @@ -1044,179 +1063,182 @@ msgstr "Двайковы файл" #: kallithea/lib/diffs.py:82 -msgid "" -"Changeset was too big and was cut off, use diff menu to display this diff" -msgstr "" -"Набор змены апынуўся занадта вялікімі і быў падрэзаны, выкарыстоўвайце меню " -"параўнання для паказу выніку параўнання" +msgid "Changeset was too big and was cut off, use diff menu to display this diff" +msgstr "" +"Набор змены апынуўся занадта вялікімі і быў падрэзаны, выкарыстоўвайце " +"меню параўнання для паказу выніку параўнання" #: kallithea/lib/diffs.py:92 msgid "No changes detected" msgstr "Змен не выяўлена" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Выдалена галінка: %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Створаны тэг: %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Паказаць адрозненні разам %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "параўнанне" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "і" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "на %s больш" -#: kallithea/lib/helpers.py:720 -#: kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "версіі" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "імя форка %s" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "Pull-запыт #%s" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "Імя форка %s" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "Pull-запыт %s" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[выдалены] рэпазітар" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[створаны] рэпазітар" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[створаны] рэпазітар як форк" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[форкнуты] рэпазітар" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[абноўлены] рэпазітар" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "[загружаны] архіў з рэпазітара" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[выдалены] рэпазітар" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "[створаны] карыстач" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "[абноўлены] карыстач" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "[створана] група карыстачоў" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "[абноўлена] група карыстачоў" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[каментар] да рэвізіі ў рэпазітары" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[пракаменціравана] у запыце на занясенне змен для" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[зачынены] Pull-запыт для" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[адпраўлена] у" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[занесены змены з дапамогай Kallithea] у рэпазітары" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[занесены змены з выдаленага рэпазітара] у рэпазітар" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[занесены змены] з" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[дададзены ў назіранні] рэпазітар" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[выдалены з назірання] рэпазітар" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " і на %s больш" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Файлаў няма" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "Няма файлаў" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "новы файл" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "зменены" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "выдалены" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "пераназваны" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" -"%s repository is not mapped to db perhaps it was created or renamed from the " -"filesystem please run the application again in order to rescan repositories" +"%s repository is not mapped to db perhaps it was created or renamed from " +"the filesystem please run the application again in order to rescan " +"repositories" msgstr "" "Рэпазітар %s адсутнічае ў базе дадзеных; магчыма, ён быў створаны ці " -"пераназваны з файлавай сістэмы. Калі ласка, перазапусціце прыкладанне для " -"сканавання рэпазітароў" - -#: kallithea/lib/utils2.py:425 +"пераназваны з файлавай сістэмы. Калі ласка, перазапусціце прыкладанне для" +" сканавання рэпазітароў" + +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" @@ -1224,7 +1246,7 @@ msgstr[1] "%d гадоў" msgstr[2] "%d гады" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" @@ -1232,7 +1254,7 @@ msgstr[1] "%d месяца" msgstr[2] "%d месяцаў" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" @@ -1240,7 +1262,7 @@ msgstr[1] "%d дня" msgstr[2] "%d дзён" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" @@ -1248,7 +1270,7 @@ msgstr[1] "%d гадзін" msgstr[2] "%d гадзіны" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" @@ -1256,7 +1278,7 @@ msgstr[1] "%d хвіліны" msgstr[2] "%d хвілін" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" @@ -1264,27 +1286,27 @@ msgstr[1] "%d секунды" msgstr[2] "%d секунды" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "у %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s назад" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "у %s і %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s і %s назад" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "прама цяпер" @@ -1299,7 +1321,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Рэпазітар - няма доступу" @@ -1314,7 +1336,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Рэпазітар - доступ на чытанне" @@ -1329,7 +1351,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Рэпазітар - доступ на запіс" @@ -1344,7 +1366,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Рэпазітар - адміністраванне" @@ -1383,7 +1405,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Адміністратар Kallithea" @@ -1398,7 +1420,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Стварэнне рэпазітароў адключана" @@ -1413,7 +1435,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Стварэнне рэпазітароў уключана" @@ -1428,7 +1450,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Магчымасць ствараць форк рэпазітара адключана" @@ -1443,7 +1465,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Магчымасць ствараць форк рэпазітара ўключана" @@ -1479,7 +1501,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Не прагледжана" @@ -1494,7 +1516,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Ухвалена" @@ -1509,7 +1531,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Адхілена" @@ -1524,7 +1546,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "На разглядзе" @@ -1536,7 +1558,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "верхні ўзровень" @@ -1548,7 +1570,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Група Рэпазітароў - няма доступу" @@ -1560,7 +1582,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Група рэпазітароў - доступ на чытанне" @@ -1572,7 +1594,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Група рэпазітароў - доступ на запіс" @@ -1584,7 +1606,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Група рэпазітароў - адміністраванне" @@ -1595,7 +1617,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Група карыстачоў - няма доступу" @@ -1606,7 +1628,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Група карыстачоў - доступ на чытанне" @@ -1617,7 +1639,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Група карыстачоў - доступ на запіс" @@ -1628,7 +1650,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Група карыстачоў - адміністраванне" @@ -1639,7 +1661,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Стварэнне груп рэпазітароў адключана" @@ -1650,7 +1672,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Стварэнне груп рэпазітароў уключана" @@ -1661,7 +1683,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Стварэнне груп карыстачоў адключана" @@ -1672,7 +1694,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Стварэнне груп карыстачоў уключана" @@ -1683,7 +1705,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Рэгістрацыя адключана" @@ -1694,7 +1716,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Рэгістрацыя карыстача з ручной актывацыяй уліковага запісу" @@ -1705,30 +1727,153 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Рэгістрацыя карыстача з аўтаматычнай актывацыяй" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 -msgid "" -"Repository creation disabled with write permission to a repository group" -msgstr "" - -#: kallithea/model/comment.py:76 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 +msgid "Repository creation disabled with write permission to a repository group" +msgstr "" + +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "на радку %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Згадванне]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Несанкцыянаваны доступ да рэсурсу" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Несанкцыянаваны доступ да рэсурсу" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Створана новая група рэпазітароў %s" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Створана новая група рэпазітароў %s" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "Create user groups" +msgid "Only admins can create user groups" +msgstr "Ствараць групы карыстачоў" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "Create user groups" +msgid "Non-admins can create user groups" +msgstr "Ствараць групы карыстачоў" + +#: kallithea/model/db.py:1688 +#, fuzzy +#| msgid "Top level repositories" +msgid "Only admins can create top level repositories" +msgstr "Рэпазітары верхняга ўзроўню" + +#: kallithea/model/db.py:1689 +#, fuzzy +#| msgid "Top level repositories" +msgid "Non-admins can create top level repositories" +msgstr "Рэпазітары верхняга ўзроўню" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Месцазнаходжанне рэпазітароў" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "Скінуць кэш для ўсіх рэпазітароў" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Рэгістрацыя карыстача з ручной актывацыяй уліковага запісу" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Рэгістрацыя карыстача з аўтаматычнай актывацыяй" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Не прагледжана" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "На разглядзе" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Калі ласка, увядзіце лагін" @@ -1747,96 +1892,120 @@ msgid "Enter %(min)i characters or more" msgstr "Увядзіце не меней %(min)i знакаў" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" -msgstr "" - -#: kallithea/model/notification.py:252 +msgstr "Імя не можа ўтрымліваць толькі лічбы" + +#: kallithea/model/notification.py:254 +#, python-format +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s пакінуў каментар да набору змен %(age)s" + +#: kallithea/model/notification.py:255 +#, python-format +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s адправіў паведамленне %(age)s" + +#: kallithea/model/notification.py:256 +#, python-format +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s згадаў вас %(age)s" + +#: kallithea/model/notification.py:257 +#, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s зарэгістраваўся ў Kallithea %(age)s" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s адкрыў новы pull-запыт %(age)s" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s пакінуў каментар да pull-запыту %(age)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s пакінуў каментар да набору змен %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s адправіў паведамленне %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s згадаў вас %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s зарэгістраваўся ў Kallithea %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s адкрыў новы pull-запыт %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s пакінуў каментар да pull-запыту %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "Новы карыстач \"%(new_username)s\" зарэгістраваны" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "Новы карыстач \"%(new_username)s\" зарэгістраваны" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "Зачынены" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "%(user)s просіць вас разгледзець pull request #%(pr_id)s: %(pr_title)s" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "%(user)s просіць вас разгледзець pull request %(pr_nice_id)s: %(pr_title)s" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "апошняя версія" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "Рэгістрацыя новага карыстача" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Вы не можаце рэдагаваць карыстача, паколькі гэта крытычна для працы ўсяго " -"прыкладання" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" msgstr "" "Вы не можаце выдаліць карыстача, паколькі гэта крытычна для працы ўсяго " "прыкладання" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch owners " @@ -1845,7 +2014,7 @@ "Карыстач \"%s\" усё яшчэ з'яўляецца ўладальнікам %s рэпазітароў і таму не " "можа быць выдалены. Зменіце ўладальніка ці выдаліце гэтыя рэпазітары: %s" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch " @@ -1854,7 +2023,7 @@ "Карыстач \"%s\" усё яшчэ з'яўляецца ўладальнікам %s груп рэпазітароў і таму " "не можа быць выдалены. Зменіце ўладальніка ці выдаліце дадзеныя групы: %s" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch owners " @@ -1863,61 +2032,61 @@ "Карыстач \"%s\" усё яшчэ з'яўляецца ўладальнікам %s груп карыстачоў і таму " "не можа быць выдалены. Зменіце ўладальніка ці выдаліце дадзеныя групы: %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "Спасылка скіду пароля" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Ваш новы пароль" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Ваш новы пароль ад Kallithea: %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "Значэнне не можа быць пустым спісам" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "Карыстач з імем \"%(username)s\" ужо існуе" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "Імя \"%(username)s\" адхілена" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "Імя \"%(username)s\" недапушчальнае" + +#: kallithea/model/validators.py:99 msgid "" -"Username may only contain alphanumeric characters underscores, periods or " -"dashes and must begin with alphanumeric character or underscore" +"Username may only contain alphanumeric characters underscores, periods or" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Імя карыстача можа ўтрымоўваць толькі літары, лічбы, знакі падкрэслення, " "кропкі і працяжнік; а гэтак жа павінна пачынацца з літары, лічбы або са " "знака падкрэслення" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "Імя \"%(username)s\" недапушчальна" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Няслушнае імя групы карыстачоў" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "Група карыстачоў \"%(usergroup)s\" ужо існуе" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1926,141 +2095,135 @@ "падкрэслення, кропкі і працяжнік; а гэтак жа павінна пачынацца з літары ці " "лічбы" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Немагчыма выкарыстоўваць гэту групу як бацькоўскую" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "Група \"%(group_name)s\" ужо існуе" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Рэпазітар з імем \"%(group_name)s\" ужо існуе" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Недапушчальныя знакі (не ascii) у паролі" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "Няслушна зададзены стары пароль" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Паролі не супадаюць" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "няслушны пароль" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "няслушнае імя карыстача" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Ваш акаўнт выключаны" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "Імя рэпазітара %(repo)s забаронена" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "Няслушнае імя ці пароль" + +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Несупадзенне токенаў" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "Імя рэпазітара %(repo)s забароненае" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Рэпазітар %(repo)s ужо існуе" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "Рэпазітар \"%(repo)s\" ужо існуе ў групе \"%(group)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Група рэпазітароў \"%(repo)s\" ужо існуе" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "няслушны URL для кланавання" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" -"Няслушны URL кланаванні, падайце карэктны URL для кланавання ў фармаце " -"http(s)/svn+http(s)/ssh" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +msgid "Invalid repository URL" +msgstr "Няслушны URL рэпазітара" + +#: kallithea/model/validators.py:466 +#, fuzzy +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" +"Няслушны URL рэпазітара. Ён мусіць быць карэктным URL http, https, ssh, svn+http ці svn+https" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "Тып форка будзе супадаць з бацькоўскім" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "У вас недастаткова мае рацыю для стварэння рэпазітароў у гэтай групе" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "недастаткова мае рацыю для стварэння рэпазітара ў каранёвым каталогу" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "У Вас недастаткова прывілеяў для стварэння групы ў гэтым месцы" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Дадзенае імя карыстача ці групы карыстачоў недапушчальна" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "Гэты шлях хібны" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" msgstr "Гэты E-mail ужо заняты" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "\"%(email)s\" не існуе." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" -"The LDAP Login attribute of the CN must be specified - this is the name of " -"the attribute that is equivalent to \"username\"" +"The LDAP Login attribute of the CN must be specified - this is the name " +"of the attribute that is equivalent to \"username\"" msgstr "" "Для ўваходу па LDAP павінна быць паказана значэнне атрыбута CN - гэта " "эквівалент імя карыстача" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "Рэвізіі %(revs)s ужо ўключаны ў pull-request ці маюць усталяваны статус" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "Калі ласка, увядзіце існы IPv4 ці IpV6 адрас" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "Калі ласка, увядзіце існы IPv4 ці IPv6 адрас" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" "Значэнне маскі падсеткі павінна быць у межах ад 0 да 32 (%(bits)r - няслушна)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" "Ключавое імя можа толькі складацца з літар, знака падкрэслення, працяжнік ці " "лікаў" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "Файла няма ў каталогу" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2122,13 +2285,13 @@ msgstr "Імя групы" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2140,11 +2303,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Апісанне" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2165,11 +2328,11 @@ msgid "Name" msgstr "Імя" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Апошняя змена" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2178,18 +2341,19 @@ msgid "Tip" msgstr "Стан" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Уладальнік" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2201,7 +2365,7 @@ msgid "Click to sort ascending" msgstr "Па ўзрастанні" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2213,11 +2377,11 @@ msgid "Click to sort descending" msgstr "Па змяншэнні" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Рэпазітары не знойдзены." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2229,11 +2393,10 @@ msgid "Data error." msgstr "Памылка дадзеных." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 -#: kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2243,7 +2406,7 @@ msgstr "Загрузка..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Увайсці" @@ -2252,39 +2415,39 @@ msgid "Log In to %s" msgstr "Увайсці ў %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Імя карыстача" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Пароль" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Запомніць" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Забыліся пароль?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Няма акаўнта?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Увайсці" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Забыліся пароль?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Няма акаўнта?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Скід пароля" @@ -2331,26 +2494,26 @@ msgstr "Паўторыце пароль" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Імя" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Прозвішча" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-mail" @@ -2460,111 +2623,100 @@ msgstr "Уключаныя ўбудовы" #: kallithea/templates/admin/auth/auth_settings.html:33 +#, fuzzy +#| msgid "" "Comma separated list of plugins. Order of plugins is also order in +#| which " "Kallithea will try to authenticate user" msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" -msgstr "" -"Спіс убудоў, падзеленых коскі. Kallithea будзе спрабаваць аўтэнтыфікаваць " -"карыстача ў парадку ўказання ўбудоў" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" +msgstr "" +"Спіс убудоў, падзеленых коскі. Kallithea будзе спрабаваць аўтэнтыфікаваць" +" карыстача ў парадку ўказання ўбудоў" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "Даступныя ўбудаваныя ўбудовы" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "уключана" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "адключана" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "Убудова" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Захаваць" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "Значэнні па змаўчанні" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" +msgid "Repository Defaults" msgstr "Значэнні па змаўчанні" -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Тып" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Прыватны рэпазітар" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "Прыватныя рэпазітары бачныя толькі іх удзельнікам." -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Уключыць статыстыку" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Уключыць акно статыстыкі на старонцы «Агульныя звесткі»." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Уключыць спампоўку" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Уключыць меню спампоўкі на старонцы «Агульныя звесткі»." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Уключыць блакаванне" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "Уключыць аўтаблакоўку для рэпазітара." @@ -2596,6 +2748,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Мінае" @@ -2606,7 +2764,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "ніколі" #: kallithea/templates/admin/gists/edit.html:145 @@ -2614,7 +2774,7 @@ msgstr "Абнавіць" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Адмена" @@ -2637,12 +2797,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "Стварыць новую gist-запіс" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Створана" @@ -2668,25 +2828,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2698,7 +2860,7 @@ #: kallithea/templates/admin/gists/show.html:5 #: kallithea/templates/admin/gists/show.html:9 msgid "Gist" -msgstr "Gist" +msgstr "" #: kallithea/templates/admin/gists/show.html:10 #: kallithea/templates/email_templates/changeset_comment.html:15 @@ -2716,11 +2878,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Выдаліць" @@ -2729,9 +2902,18 @@ msgstr "Пацвердзіце выдаленне гэтай gist-запісы" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2757,7 +2939,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Мой Акаўнт" @@ -2766,83 +2948,90 @@ msgid "Profile" msgstr "Профіль" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "API-ключы" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Новы E-mail" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "Мае адрасы E-mail" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" +msgstr "API-ключы" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "Мае рэпазітары" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "рэпазітары" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Прагледжана" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "Стварыць рэпазітары" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" -msgstr "Мае прывілеі" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Скапіяваць прывілеі" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "мінае" +msgstr "Убудаваны" #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to reset this api key: %s" +msgid "Confirm to reset this API key: %s" msgstr "Пацвердзіце скід гэтага API-ключа: %s" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" -msgstr "" +#, fuzzy +#| msgid "expires" +msgid "Expired" +msgstr "мінае" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "Пацвердзіце выдаленне гэтага API-ключа: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +#, fuzzy +#| msgid "remove" +msgid "Remove" msgstr "выдаліць" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" -msgstr "" +#, fuzzy +#| msgid "No additional emails specified." +msgid "No additional API keys specified" +msgstr "Дадатковыя адрасы e-mail не пазначаны." #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" -msgstr "" +#, fuzzy +#| msgid "New field key" +msgid "New API key" +msgstr "Ключ" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2855,19 +3044,6 @@ msgid "Primary" msgstr "Асноўны" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "выдаліць" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2888,19 +3064,24 @@ msgid "Change Your Account Password" msgstr "Змена пароля" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "Бягучы пароль" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Новы пароль" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "Пацвердзіце новы пароль" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "Зменіце аватар праз сайт" @@ -2921,15 +3102,11 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" +#, fuzzy +#| msgid "current IP" +msgid "Current IP" msgstr "бягучы IP-адрас" -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be managed " -"here" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_repos.html:1 msgid "Repositories You Own" msgstr "Рэпазітары, дзе Вы — уладальнік" @@ -2963,7 +3140,7 @@ msgstr "Каментары" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Pull-запыты" @@ -2981,36 +3158,26 @@ msgstr "Паказаць апавяшчэнне" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Апавяшчэнні" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "Кіраванне прывілеямі" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Прывілеі" +msgid "Default Permissions" +msgstr "Стандартныя прывілеі" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 msgid "Global" -msgstr "" +msgstr "Глабальныя" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "Белы спіс IP" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "Агляд" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Ананімны доступ" @@ -3018,29 +3185,33 @@ #: kallithea/templates/admin/permissions/permissions_globals.html:13 #, python-format msgid "" -"Allow access to Kallithea without needing to log in. Anonymous users use %s " -"user permissions." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +"Allow access to Kallithea without needing to log in. Anonymous users use " +"%s user permissions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " -"permission, note that all custom default permission on repositories will be " -"lost" +"permission, note that all custom default permission on repositories will " +"be lost" msgstr "" "Абраныя прывілеі будуць усталяваны па змаўчанні для кожнага рэпазітара. " "Улічыце, што раней усталяваныя прывілеі па змаўчанні будуць скінуты" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repositories" +msgstr "Імпартаваць існы рэпазітар?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Перазапісаць існыя налады" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Група рэпазітароў" @@ -3052,78 +3223,114 @@ "will be lost" msgstr "" "Абраныя прывілеі будуць усталяваны па змаўчанні для кожнай групы " -"рэпазітароў. Улічыце, што раней усталяваныя прывілеі па змаўчанні для груп " -"рэпазітароў будуць скінуты" +"рэпазітароў. Улічыце, што раней усталяваныя прывілеі па змаўчанні для " +"груп рэпазітароў будуць скінуты" + +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repository groups" +msgstr "Імпартаваць існы рэпазітар?" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Група карыстачоў" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" -msgstr "" -"Абраныя прывілеі будуць усталяваны па змаўчанні для кожнай групы карыстачоў. " -"Улічыце, што раней усталяваныя прывілеі па змаўчанні для груп карыстачоў " -"будуць скінуты" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" +"Абраныя прывілеі будуць усталяваны па змаўчанні для кожнай групы " +"карыстачоў. Улічыце, што раней усталяваныя прывілеі па змаўчанні для груп" +" карыстачоў будуць скінуты" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Стварэнне рэпазітара" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories inside " -"that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "Стварэнне груп карыстачоў" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "Стварэнне форка рэпазітара" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Рэгістрацыя" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "Актывацыя іншага ўліковага запісу" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "Белы спіс IP для ўсіх карыстачоў" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "Пацвердзіце выдаленне IP %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "Дазволены любыя IP-адрасы." -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Новы IP-адрас" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" -msgstr "Агляд мае рацыю карыстачоў па змаўчанні" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3145,12 +3352,12 @@ msgstr "Бацькоўская група" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3168,20 +3375,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 -#: kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Налады" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Дадаткова" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Прывілеі" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3189,7 +3401,7 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:6 msgid "Top level repositories" -msgstr "" +msgstr "Рэпазітары верхняга ўзроўню" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:7 msgid "Total repositories" @@ -3202,12 +3414,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Створана" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3219,39 +3431,13 @@ msgid "Delete this repository group" msgstr "Выдаліць гэту групу рэпазітароў" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "нічога" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "чытаць" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "запісваць" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "адміністратар" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" -msgstr "" +#, fuzzy +#| msgid "user groups" +msgid "User/User Group" +msgstr "групы карыстальнікаў" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:45 @@ -3259,7 +3445,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "па змаўчанні" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3268,14 +3456,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "адклікаць" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3283,12 +3468,14 @@ msgstr "Дадаць новы" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "дастасаваць да даччыным" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 msgid "Both" -msgstr "" +msgstr "Абедзьве" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:108 msgid "" @@ -3298,8 +3485,8 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:38 msgid "" -"Enable lock-by-pulling on group. This option will be applied to all other " -"groups and repositories inside" +"Enable lock-by-pulling on group. This option will be applied to all other" +" groups and repositories inside" msgstr "" "Уключыць аўтаблакоўку для групы. Гэта опцыя будзе ўжыта да ўсіх даччыных " "груп і рэпазітарам" @@ -3333,45 +3520,43 @@ msgid "Number of Top-level Repositories" msgstr "Лік рэпазітароў верхняга ўзроўня" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Кланаваць з" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "Апцыянальны URL, з якога патрабуецца скланаваць рэпазітар." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[створаны] рэпазітар" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 -msgid "" -"Keep it short and to the point. Use a README file for longer descriptions." +msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" "Кароткае і асэнсаванае. Для разгорнутага апісання выкарыстоўвайце файл " "README." -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "Апцыянальна абраць групу, у якую змясціць дадзены рэпазітар." -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Тып стваранага рэпазітара." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Рэвізія для выгрузкі" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3384,13 +3569,13 @@ #: kallithea/templates/admin/repos/repo_creating.html:13 msgid "Creating repository" -msgstr "" +msgstr "Стварэнне рэпазітара" #: kallithea/templates/admin/repos/repo_creating.html:27 #, python-format msgid "" -"Repository \"%(repo_name)s\" is being created, you will be redirected when " -"this process is finished.repo_name" +"Repository \"%(repo_name)s\" is being created, you will be redirected " +"when this process is finished.repo_name" msgstr "" #: kallithea/templates/admin/repos/repo_creating.html:39 @@ -3410,7 +3595,7 @@ #: kallithea/templates/admin/repos/repo_edit.html:52 msgid "Caches" -msgstr "" +msgstr "Кэшы" #: kallithea/templates/admin/repos/repo_edit.html:55 msgid "Remote" @@ -3418,8 +3603,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Статыстыка" @@ -3441,15 +3626,15 @@ msgid "Public Journal Visibility" msgstr "Доступ да публічнага часопіса" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Выдаліць з агульнадаступнага часопіса" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "Дадаць у публічны часопіс" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." @@ -3457,49 +3642,49 @@ "Усе выконваемыя з гэтым рэпазітаром дзеянні будуць адлюстроўвацца ў " "публічным часопісе." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "Уключыць блакаванне" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "Пацвердзіце здыманне блакавання з рэпазітара." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "Разблакаваць рэпазітар" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "Пацвердзіце блакаванне рэпазітара." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "Заблакаваць рэпазітар" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Рэпазітар не заблакаваны" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " -"disabled. Triggering a pull locks the repository. The user who is pulling " -"locks the repository; only the user who pulled and locked it can unlock it " -"by doing a push." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +"disabled. Triggering a pull locks the repository. The user who is " +"pulling locks the repository; only the user who pulled and locked it can " +"unlock it by doing a push." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Пацвердзіце выдаленне гэтага рэпазітара: %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 msgid "Delete this Repository" msgstr "Выдаліць гэты рэпазітар" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" @@ -3507,18 +3692,19 @@ msgstr[1] "Дадзены рэпазітар мае %s копіі" msgstr[2] "Дадзены рэпазітар мае %s дзід" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "Адлучыць fork'і" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "Выдаліць fork'і" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" -"The deleted repository will be moved away and hidden until the administrator " -"expires it. The administrator can both permanently delete it or restore it." +"The deleted repository will be moved away and hidden until the " +"administrator expires it. The administrator can both permanently delete " +"it or restore it." msgstr "" #: kallithea/templates/admin/repos/repo_edit_caches.html:4 @@ -3552,8 +3738,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Актыўны" @@ -3592,32 +3778,42 @@ msgstr "Дадатковыя палі адключаны." #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "прыватны рэпазітар" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "Спасылка для кланавання" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "Атрымаць змены з выдаленага боку" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Рэпазітар %s створаны" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[занесены змены з выдаленага рэпазітара] у рэпазітар" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "Пацвердзіце спампоўку змен." -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "Нязменлівы id" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "прыватны рэпазітар" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" -msgstr "" +msgstr "Што гэта?" #: kallithea/templates/admin/repos/repo_edit_settings.html:13 msgid "URL by id" @@ -3627,44 +3823,37 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "Спасылка для кланавання" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "рэдагаваць" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[створаны] рэпазітар" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Рэпазітар" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -"Рэвізія па змаўчанні, з якой будзе вырабляцца выгрузка файлаў пры спампоўцы" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +"Рэвізія па змаўчанні, з якой будзе вырабляцца выгрузка файлаў пры " +"спампоўцы" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Змяніць уладальніка рэпазітара." @@ -3690,7 +3879,7 @@ #: kallithea/templates/admin/repos/repos.html:51 msgid "State" -msgstr "" +msgstr "Стан" #: kallithea/templates/admin/settings/settings.html:5 msgid "Settings Administration" @@ -3715,61 +3904,17 @@ #: kallithea/templates/admin/settings/settings.html:33 msgid "Full Text Search" -msgstr "" +msgstr "Паўнатэкставы пошук" #: kallithea/templates/admin/settings/settings.html:34 msgid "System Info" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" +msgstr "Інфармацыя пра сістэму" #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" -msgstr "" +msgid "Send test email to" +msgstr "Адаслаць тэставае паведамленне на" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Адправіць" @@ -3809,8 +3954,8 @@ #: kallithea/templates/admin/settings/settings_global.html:51 msgid "" -"Private key for reCaptcha system. Setting this value will enable captcha on " -"registration." +"Private key for reCaptcha system. Setting this value will enable captcha " +"on registration." msgstr "" #: kallithea/templates/admin/settings/settings_global.html:56 @@ -3825,8 +3970,8 @@ #: kallithea/templates/admin/settings/settings_hooks.html:15 msgid "" -"Hooks can be used to trigger actions on certain events such as push / pull. " -"They can trigger Python functions or external applications." +"Hooks can be used to trigger actions on certain events such as push / " +"pull. They can trigger Python functions or external applications." msgstr "" #: kallithea/templates/admin/settings/settings_hooks.html:19 @@ -3842,13 +3987,15 @@ msgstr "Опцыі перасканіравання" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "Знішчыць усе дадзеныя" +#, fuzzy +#| msgid "Search in repositories" +msgid "Delete records of missing repositories" +msgstr "Пошук па рэпазітарах" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer exist " -"in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3865,11 +4012,11 @@ #: kallithea/templates/admin/settings/settings_mapping.html:25 msgid "" -"Verify if Kallithea's Git hooks are installed for each repository. Current " -"hooks will be updated to the latest version." -msgstr "" - -#: kallithea/templates/admin/settings/settings_mapping.html:32 +"Verify if Kallithea's Git hooks are installed for each repository. " +"Current hooks will be updated to the latest version." +msgstr "" + +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3896,38 +4043,44 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" -msgstr "" +#, fuzzy +#| msgid "check for updates" +msgid "Check for updates" +msgstr "праверыць наяўнасць абнаўленняў" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 +msgid "Platform" +msgstr "Платформа" + +#: kallithea/templates/admin/settings/settings_system.html:8 msgid "Git version" msgstr "Версія Git" -#: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:22 +msgstr "Праверка абнаўленняў..." + +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -3985,10 +4138,11 @@ #: kallithea/templates/admin/settings/settings_vcs.html:69 msgid "" -"Click to unlock. You must restart Kallithea in order to make this setting " -"take effect." -msgstr "" -"Націсніце для разблакавання. Змены набудуць моц пасля перазагрузкі Kallithea." +"Click to unlock. You must restart Kallithea in order to make this setting" +" take effect." +msgstr "" +"Націсніце для разблакавання. Змены набудуць моц пасля перазагрузкі " +"Kallithea." #: kallithea/templates/admin/settings/settings_vcs.html:72 msgid "" @@ -4025,25 +4179,26 @@ "Gravatar URL allows you to use another avatar server application.\n" " The following " "variables of the URL will be replaced accordingly.\n" -" {scheme} 'http' " -"or 'https' sent from running Kallithea server,\n" +" {scheme} " +"'http' or 'https' sent from running Kallithea server,\n" " {email} user " "email,\n" -" {md5email} md5 hash " -"of the user email (like at gravatar.com),\n" -" {size} size of " -"the image that is expected from the server application,\n" -" {netloc} network " -"location/server host of running Kallithea server" +" {md5email} md5 " +"hash of the user email (like at gravatar.com),\n" +" {size} size " +"of the image that is expected from the server application,\n" +" {netloc} " +"network location/server host of running Kallithea server" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:42 msgid "" -"Schema of clone URL construction eg. '{scheme}://{user}@{netloc}/{repo}'.\n" +"Schema of clone URL construction eg. '{scheme}://{user}@{netloc}/{repo}'." +"\n" " The following " "variables are available:\n" -" {scheme} 'http' or " -"'https' sent from running Kallithea server,\n" +" {scheme} 'http' " +"or 'https' sent from running Kallithea server,\n" " {user} current " "user username,\n" " {netloc} network " @@ -4060,11 +4215,11 @@ #: kallithea/templates/admin/settings/settings_visual.html:59 msgid "" -"Number of items displayed in the main page dashboard before pagination is " -"shown." -msgstr "" -"Колькасць элементаў, што паказваюцца на галоўнай старонцы панэлі кіравання " -"перад паказам нумарацыі старонак." +"Number of items displayed in the main page dashboard before pagination is" +" shown." +msgstr "" +"Колькасць элементаў, што паказваюцца на галоўнай старонцы панэлі " +"кіравання перад паказам нумарацыі старонак." #: kallithea/templates/admin/settings/settings_visual.html:65 msgid "Admin pages items" @@ -4081,11 +4236,11 @@ msgstr "Абразкі" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "Паказваць абразкі публічных рэпазітароў" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "Паказваць абразкі прыватных рэпазітароў" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4093,7 +4248,9 @@ msgstr "Паказваць абразкі публічных рэпазітароў." #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "Метатэгіраванне" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4102,8 +4259,8 @@ #: kallithea/templates/admin/settings/settings_visual.html:111 msgid "" -"Parses meta tags from the repository description field and turns them into " -"colored tags." +"Parses meta tags from the repository description field and turns them " +"into colored tags." msgstr "" #: kallithea/templates/admin/user_groups/user_group_add.html:5 @@ -4112,6 +4269,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "Групы карыстальнікаў" @@ -4131,24 +4289,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Стандартныя прывілеі" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "удзельнікі" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Удзельнікі" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "Пацвердзіце выдаленне наступнай групы карыстачоў: %s" @@ -4173,10 +4332,6 @@ msgid "User Groups Administration" msgstr "Адміністраванне груп карыстачоў" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "групы карыстальнікаў" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Дадаць карыстача" @@ -4202,11 +4357,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "Стандартныя прывілеі" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4216,7 +4367,7 @@ msgstr "Карыстальнік: %s" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4226,11 +4377,11 @@ msgstr "Апошні ўваход" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "Пацвердзіце выдаленне карыстача %s" @@ -4250,20 +4401,13 @@ #: kallithea/templates/admin/users/user_edit_profile.html:12 msgid "Missing email, please update this user email address." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be " -"managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +msgstr "Не паказаны email. Калі ласка, абнавіце email карыстальніка." + +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "Пацвердзіце новы пароль" @@ -4284,47 +4428,55 @@ msgid "Support" msgstr "Падтрымка" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Рэпазітар Mercurial" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Git рэпазітар" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "Стварыць форк" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Агульныя звесткі" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "Гісторыя змен" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Файлы" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "Пераключыцца на" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Опцыі" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "Параўнаць форк" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4334,129 +4486,125 @@ msgid "Compare" msgstr "Параўнаць" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "Пошук" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "Разблакаваць" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "Заблакаваць" -#: kallithea/templates/base/base.html:176 +#: kallithea/templates/base/base.html:180 msgid "Follow" msgstr "Назіраць" -#: kallithea/templates/base/base.html:177 +#: kallithea/templates/base/base.html:181 msgid "Unfollow" msgstr "Не назіраць" -#: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "Форк" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "Стварыць Pull запыт" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "Паказаць pull-запыты для %s" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "Паказаць апошнюю актыўнасць" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Часопіс" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Агульнадаступны часопіс" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "Паказаць публічныя запісы" -#: kallithea/templates/base/base.html:237 +#: kallithea/templates/base/base.html:241 msgid "Gists" msgstr "Gist" -#: kallithea/templates/base/base.html:241 +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "Усе публічныя Gist-запісы" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "Мае публічныя Gist-запісы" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "Мае прыватныя Gist-запісы" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "Пошук па рэпазітарах" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "Мае Pull-запыты" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "Не аўтарызаваны" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "Аўтарызавацца" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Забыліся пароль?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "Выйсце" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" -msgstr "" - -#: kallithea/templates/base/base.html:524 +msgstr "Супадзенняў не знойдзена" + +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" -msgstr "" - -#: kallithea/templates/base/base.html:533 +msgstr "Гарачыя клавішы" + +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Значэнні па змаўчанні" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default IP " -"address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4486,8 +4634,9 @@ "рэпазітароў" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "Паказаць" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4512,7 +4661,7 @@ msgstr "Дадаць яшчэ адзін каментар" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "Адмяніць назіранне за рэпазітаром" @@ -4582,6 +4731,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "Пацвердзіце выдаленне прывілею для {0}: {1} ?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "уключана" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "адключана" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "Абраць набор змен" @@ -4611,6 +4768,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4640,10 +4798,6 @@ msgstr[1] "Паказаны %d з %d рэвізій" msgstr[2] "Паказаны %d з %d рэвізій" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "Паказаць" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "Ачысціць выбар" @@ -4660,7 +4814,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "Параўнаць форк з бацькоўскім рэпазітаром (%s)" #: kallithea/templates/changelog/changelog.html:66 @@ -4670,10 +4824,12 @@ #: kallithea/templates/changelog/changelog.html:92 #: kallithea/templates/changelog/changelog_summary_data.html:20 -#, python-format +#, fuzzy, python-format +#| msgid "" "Changeset status: %s\n" "Click to open associated pull request +#| #%s" msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" "Статут набору змен: %s?\n" "Клікніце, каб перайсці да адпаведнага pull-request'у #%s" @@ -4685,7 +4841,7 @@ msgstr "Статут набору змен: %s" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4718,7 +4874,7 @@ msgid "Branch %s" msgstr "Галінка %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Змен яшчэ няма" @@ -4734,7 +4890,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "Дададзена" @@ -4764,21 +4920,23 @@ msgid "Refs" msgstr "Спасылкі" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Дадаць ці загрузіць файлы праз Kallithea" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +msgstr "Дадаць новы файл" + +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "Адправіць новы рэпазітар" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "Існы рэпазітар?" @@ -4788,15 +4946,15 @@ msgstr "%s Змены" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "Статут змен" @@ -4819,7 +4977,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "звесці" #: kallithea/templates/changeset/changeset.html:123 @@ -4830,9 +4990,21 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "Створана" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "Створана" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" @@ -4840,9 +5012,9 @@ msgstr[1] "%s файлаў зменена" msgstr[2] "%s файла зменена" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, python-format msgid "%s file changed with %s insertions and %s deletions" msgid_plural "%s files changed with %s insertions and %s deletions" @@ -4850,93 +5022,94 @@ msgstr[1] "%s файла зменена: %s даданні, %s выдаленні" msgstr[2] "%s файлаў зменена: %s даданняў, %s выдаленняў" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "Паказаць поўны diff" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "no revisions" +msgid "No revisions" msgstr "няма рэвізій" -#: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "Змена статуту" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "Каментар у pull-запыце" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 msgid "No title" msgstr "Няма загалоўка" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "Каментар у pull-запыце" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "Няма змен" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 msgid "Delete comment?" msgstr "Выдаліць каментар?" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Апошнія змены" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "Каментар да радка {1}." -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." -msgstr "" -"Парсінг каментароў выкананы з выкарыстаннем сінтаксісу %s з падтрымкай %s." - -#: kallithea/templates/changeset/changeset_file_comment.html:70 -#: kallithea/templates/changeset/changeset_file_comment.html:165 +msgstr "Парсінг каментароў выкананы з выкарыстаннем сінтаксісу %s з падтрымкай %s." + +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" "Выкарыстоўвайце @імя_карыстача ў тэксце, каб адправіць абвестку пэўнаму " "карыстачу" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "Папярэдні прагляд каментара" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 msgid "Submitting ..." msgstr "Ужыванне..." -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Каментаваць" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "Прадпрагляд" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "Прадпрагляд" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "Вам неабходна аўтарызавацца, каб пакідаць каментары." -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "Аўтарызавацца цяпер" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "Схаваць" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" @@ -4944,7 +5117,7 @@ msgstr[1] "%d каментара" msgstr[2] "%d каментароў" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, python-format msgid "%d inline" msgid_plural "%d inline" @@ -4952,7 +5125,7 @@ msgstr[1] "%d да радкоў" msgstr[2] "%d да радкоў" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" @@ -4960,19 +5133,27 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." +msgstr "" +"Выкарыстоўвайце @імя_карыстача ў тэксце, каб адправіць абвестку пэўнаму " +"карыстачу" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 msgid "Set changeset status" -msgstr "Змяніць статут рэвізіі" - -#: kallithea/templates/changeset/changeset_file_comment.html:178 +msgstr "Змяніць статус рэвізіі" + +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "Без змен" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "Зачыніць" @@ -4991,7 +5172,7 @@ msgstr "Паказаць поўны diff для гэтага файла" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "Паказаць поўны diff для гэтага файла" @@ -5000,11 +5181,11 @@ msgid "Show inline comments" msgstr "Паказаць каментары ў радках" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "Выдалены" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "Пераназваны" @@ -5016,29 +5197,41 @@ msgid "Ancestor" msgstr "Продак" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "Паказаць merge diff" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "Агульны продак" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "адстае на" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, python-format msgid "%s changesets" msgstr "%s змен" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "ад" @@ -5062,7 +5255,7 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" @@ -5070,49 +5263,36 @@ msgstr[1] "Паказаць %s commit'а" msgstr[2] "Паказаць %s commit'аў" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "Няма файлаў" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "Паказаць поўны diff" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Рэпазітар Mercurial" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Git рэпазітар" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Публічны рэпазітар" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "Змен яшчэ не было" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "Падпісацца на стужку RSS %s" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "Падпісацца на стужку Atom %s" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "Ствараецца" @@ -5128,20 +5308,20 @@ #: kallithea/templates/email_templates/changeset_comment.html:12 msgid "The changeset status was changed to" -msgstr "Стан набору змен зменена на" +msgstr "Стан набору змен зменены на" #: kallithea/templates/email_templates/main.html:6 msgid "This is an automatic notification. Don't reply to this mail." -msgstr "" +msgstr "Гэта аўтаматычнае апавяшчэнне. Не адказвайце на гэтае паведамленне." #: kallithea/templates/email_templates/password_reset.html:4 #, python-format msgid "Hello %s" -msgstr "Дабрыдзень, %s" +msgstr "Добры дзень, %s" #: kallithea/templates/email_templates/password_reset.html:6 msgid "We received a request to create a new password for your account." -msgstr "Мы адправілі запыт на стварэнне новага пароля для вашага акаўнта." +msgstr "Мы атрымалі запыт на стварэнне новага пароля для вашага акаўнта." #: kallithea/templates/email_templates/password_reset.html:7 msgid "You can generate it by clicking following URL" @@ -5150,8 +5330,8 @@ #: kallithea/templates/email_templates/password_reset.html:10 msgid "Please ignore this email if you did not request a new password ." msgstr "" -"Калі ласка, праігнаруйце дадзенае паведамленне, калі вы не запытвалі новы " -"пароль." +"Калі ласка, праігнаруйце дадзенае паведамленне, калі вы не запытвалі новы" +" пароль." #: kallithea/templates/email_templates/pull_request.html:5 #, python-format @@ -5170,11 +5350,11 @@ #: kallithea/templates/email_templates/pull_request_comment.html:9 msgid "The comment closed the pull request with status" -msgstr "Каментар зачыніў pull-запыт са статутам" +msgstr "Каментар зачыніў pull-запыт са статусам" #: kallithea/templates/email_templates/pull_request_comment.html:11 msgid "The comment was made with status" -msgstr "Каментар пакінуты са статутам" +msgstr "Каментар пакінуты са статусам" #: kallithea/templates/email_templates/registration.html:6 msgid "View this user here" @@ -5239,10 +5419,6 @@ msgid "Commit Changes" msgstr "Ужыць змены" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "рэвізія" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "Папярэдняя рэвізія" @@ -5268,18 +5444,14 @@ msgstr "Памер" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Тып файла" - -#: kallithea/templates/files/files_browser.html:63 msgid "Last Revision" msgstr "Апошняя версія" -#: kallithea/templates/files/files_browser.html:64 +#: kallithea/templates/files/files_browser.html:63 msgid "Last Modified" msgstr "Апошняя змена" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 msgid "Last Committer" msgstr "Аўтар апошняй рэвізіі" @@ -5338,7 +5510,7 @@ #: kallithea/templates/files/files_source.html:10 msgid "Show Full History" -msgstr "" +msgstr "Паказаць ўсю гісторыю" #: kallithea/templates/files/files_source.html:11 msgid "Show Authors" @@ -5355,7 +5527,7 @@ #: kallithea/templates/files/files_source.html:41 msgid "Editing binary files not allowed" -msgstr "" +msgstr "Рэдагаванне бінарных файлаў забаронена" #: kallithea/templates/files/files_source.html:44 msgid "Editing files allowed only when on branch head revision" @@ -5392,8 +5564,8 @@ msgstr "%s Назіральнікі" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "Назіральнікі" @@ -5413,7 +5585,8 @@ #: kallithea/templates/forks/fork.html:62 msgid "Default revision for files page, downloads, whoosh, and readme." msgstr "" -"Рэвізія па змаўчанні, з якой будзе вырабляцца выгрузка файлаў пры спампоўцы." +"Рэвізія па змаўчанні, з якой будзе вырабляцца выгрузка файлаў пры " +"спампоўцы." #: kallithea/templates/forks/fork.html:68 msgid "Private" @@ -5445,8 +5618,8 @@ msgstr "Форкі %s" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "Адгалінаванні" @@ -5454,7 +5627,7 @@ msgid "Forked" msgstr "Форкнута" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "Форкі яшчэ не створаны" @@ -5467,18 +5640,13 @@ msgstr "Стужка часопіса RSS" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" +msgid "My Repositories" msgstr "Мае рэпазітары" -#: kallithea/templates/journal/journal_data.html:61 +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "Запісы адсутнічаюць" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Публічны часопіс" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "Агульная стужка часопіса ATOM" @@ -5520,20 +5688,16 @@ msgid "Destination repository" msgstr "Рэпазітар прызначэння" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "Рэцэнзенты pull-запытаў" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "Запісы отсуствуют" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "адклікаць" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "Ад" @@ -5542,50 +5706,49 @@ msgid "To" msgstr "Да" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "Апошняя адзнака: %s" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "Ніхто не галасаваў" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "Вы прагаласавалі: %s" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "Вы не галасавалі" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "Выдаліць pull-запыт" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "Пацвердзіце выдаленне гэтага pull-request'а" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +msgstr "(няма загалоўка)" + +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "Зачынена" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "Выдаліць pull-запыт" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "Пацвердзіце выдаленне гэтага pull-request'а" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Пацвердзіце выдаленне гэтага pull-request'а" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" +#, fuzzy, python-format +#| msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "%s Pull-запыт #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 -#, python-format -msgid "Pull request #%s from %s#%s" +#, fuzzy, python-format +#| msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "Pull-запыты №%s ад %s#%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5601,11 +5764,11 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "Яшчэ не разгледжаны" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" @@ -5613,75 +5776,75 @@ msgstr[1] "%d рэцэнзента" msgstr[2] "%d рэцэнзентаў" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "Запыт на занясенне змен быў разгледжаны ўсімі рэцэнзентамі" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "Няма рэцэнзентаў" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +msgstr "на" + +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +msgstr "Цэль" + +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "Прыняць змены" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "Створана" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "Абнавіць" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "уладальнік" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "рэцэнзент" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "Рэцэнзенты pull-запытаў" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 msgid "Remove reviewer" msgstr "Выдаліць рэцэнзента" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 msgid "Potential Reviewers" msgstr "Патэнцыйныя рэцэнзенты" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "Захаваць змены" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "Адмяніць змены" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5782,8 +5945,8 @@ msgstr "RSS стужка рэпазітара %s" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "Уключана" @@ -5791,45 +5954,45 @@ msgid "Stats gathered: " msgstr "Атрыманая статыстыка: " -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "файлы" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "Паказаць яшчэ" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "commit'ы" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "файлы дададзены" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "файлы зменены" +msgid "files added" +msgstr "файлы дададзены" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "файлы зменены" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "файлы выдалены" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "commit" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "файл выдалены" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "файл зменены" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "файл выдалены" @@ -5851,65 +6014,75 @@ msgid "Fork of" msgstr "Форк ад" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "Паказаць па імі" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Кланаваць з" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" +msgstr "Спасылка для кланавання" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "Паказаць па імі" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "Паказаць па ID" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "Папулярныя файлы" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "Запампаваць" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "Спамповак яшчэ няма" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "Спампоўка адключана ў гэтым рэпазітары" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "Запампаваць у zip" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "Адзначце для спампоўкі архіва з даччынымі рэпазітарамі" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "з даччынымі рэпазітарамі" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "Памер рэпазітара" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "Стужка навін" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "Апошнія змены" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "Хуткі старт" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "Запампаваць %s як %s" @@ -5922,3 +6095,282 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "Параўнаць тэгі" + +#~ msgid "No comments." +#~ msgstr "Няма каментароў." + +#~ msgid "public journal" +#~ msgstr "агульнадаступны часопіс" + +#~ msgid "journal" +#~ msgstr "часопіс" + +#~ msgid "Locked repository" +#~ msgstr "Зачынены рэпазітар" + +#~ msgid "Unlocked repository" +#~ msgstr "Адкрыты рэпазітар" + +#~ msgid "Unlocked" +#~ msgstr "Разблакавана" + +#~ msgid "Locked" +#~ msgstr "Заблакавана" + +#~ msgid "Repository has been %s" +#~ msgstr "Рэпазітар %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Вы не можаце рэдагаваць дадзенага карыстача" + +#~ msgid "No Files" +#~ msgstr "Файлаў няма" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "Імя \"%(username)s\" адхілена" + +#~ msgid "invalid user name" +#~ msgstr "няслушнае імя карыстача" + +#~ msgid "Your account is disabled" +#~ msgstr "Ваш акаўнт выключаны" + +#~ msgid "invalid clone URL" +#~ msgstr "няслушны URL для кланавання" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" +#~ "Няслушны URL кланаванні, падайце карэктны " +#~ "URL для кланавання ў фармаце " +#~ "http(s)/svn+http(s)/ssh" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "Рэвізіі %(revs)s ужо ўключаны ў pull-request ці маюць усталяваны статус" + +#~ msgid "Defaults" +#~ msgstr "Значэнні па змаўчанні" + +#~ msgid "My Emails" +#~ msgstr "Мае адрасы E-mail" + +#~ msgid "Watched" +#~ msgstr "Прагледжана" + +#~ msgid "My Permissions" +#~ msgstr "Мае прывілеі" + +#~ msgid "reset" +#~ msgstr "cкінуць" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "выдаліць" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Кіраванне прывілеямі" + +#~ msgid "Overview" +#~ msgstr "Агляд" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Перазапісаць існыя налады" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "Белы спіс IP для ўсіх карыстачоў" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Агляд мае рацыю карыстачоў па змаўчанні" + +#~ msgid "none" +#~ msgstr "нічога" + +#~ msgid "read" +#~ msgstr "чытаць" + +#~ msgid "write" +#~ msgstr "запісваць" + +#~ msgid "admin" +#~ msgstr "адміністратар" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "Апцыянальны URL, з якога патрабуецца скланаваць рэпазітар." + +#~ msgid "Remote URL" +#~ msgstr "Спасылка для кланавання" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Атрымаць змены з выдаленага боку" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "Нязменлівы id" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "рэдагаваць" + +#~ msgid "new value" +#~ msgstr "новае значэнне" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "SMTP-сервер" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "Знішчыць усе дадзеныя" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Стандартныя прывілеі" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "паказа́ць" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Змена статусу" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "рэвізія" + +#~ msgid "Mimetype" +#~ msgstr "Тып файла" + +#~ msgid "My Repos" +#~ msgstr "Мае рэпазітары" + +#~ msgid "Latest vote: %s" +#~ msgstr "Апошняя адзнака: %s" + +#~ msgid "Nobody voted" +#~ msgstr "Ніхто не галасаваў" + +#~ msgid "owner" +#~ msgstr "уладальнік" + +#~ msgid "reviewer" +#~ msgstr "рэцэнзент" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/cs/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/cs/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/cs/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,9 +5,9 @@ # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-02-13 15:26+0200\n" "Last-Translator: Andrew Shadura \n" "Language-Team: Czech " @@ -19,19 +19,23 @@ "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(zavřeno)" @@ -46,51 +50,55 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Taková revize neexistuje" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -#, fuzzy -msgid "No comments." -msgstr "" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy, python-format +#| msgid "Unknown revision %s" +msgid "No response" +msgstr "Neznámá revize %s" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 -msgid "Unauthorized access to resource" -msgstr "" - -#: kallithea/controllers/error.py:101 -msgid "You don't have permission to view this page" -msgstr "Nemáte oprávnění k zobrazení této stránky" - #: kallithea/controllers/error.py:103 -msgid "The resource could not be found" +msgid "Unauthorized access to resource" msgstr "" #: kallithea/controllers/error.py:105 +msgid "You don't have permission to view this page" +msgstr "Nemáte oprávnění k zobrazení této stránky" + +#: kallithea/controllers/error.py:107 +msgid "The resource could not be found" +msgstr "" + +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -106,17 +114,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -194,45 +202,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Stahování vypnuto" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Neznámá revize %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Prázdný repozitář" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Změny" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Větve" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Tagy" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -248,9 +254,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Repozitáře" @@ -270,145 +276,163 @@ msgstr "Záložka" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "špatná captcha" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, fuzzy, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Záložky" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "" @@ -425,21 +449,21 @@ msgid "An error occurred during search operation." msgstr "Došlo k chybě při vytváření gist" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -452,38 +476,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 minut" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 hodina" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 den" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 měsíc" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -497,7 +521,7 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +msgid "Unmodified" msgstr "" #: kallithea/controllers/admin/gists.py:262 @@ -513,117 +537,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Úspěšně aktualizované heslo" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "Došlo k chybě při aktualizaci hesla uživatele" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Došlo k chybě při ukládání e-mailové adresy" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" msgstr "" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" msgstr "" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -631,11 +671,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -643,221 +683,213 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Chyba při vytváření repozitáře %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Nic" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been locked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been unlocked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Odemčeno" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Zamčeno" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -873,7 +905,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -950,83 +982,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1042,158 +1071,160 @@ msgid "No changes detected" msgstr "" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:699 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1201,7 +1232,7 @@ "repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" @@ -1209,7 +1240,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" @@ -1217,7 +1248,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" @@ -1225,7 +1256,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" @@ -1233,7 +1264,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" @@ -1241,7 +1272,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" @@ -1249,27 +1280,27 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "" @@ -1284,7 +1315,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1299,7 +1330,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1314,7 +1345,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1329,7 +1360,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1368,7 +1399,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1383,7 +1414,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1398,7 +1429,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1413,7 +1444,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1428,7 +1459,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1464,7 +1495,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1479,7 +1510,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1494,7 +1525,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1509,7 +1540,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1521,7 +1552,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1533,7 +1564,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1545,7 +1576,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1557,7 +1588,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1569,7 +1600,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1580,7 +1611,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1591,7 +1622,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1602,7 +1633,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1613,7 +1644,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1624,7 +1655,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1635,7 +1666,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1646,7 +1677,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1657,7 +1688,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1668,7 +1699,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1679,7 +1710,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1690,29 +1721,135 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Chyba při vytváření repozitáře %s" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Location of repositories" +msgid "Non-admins can can fork repositories" +msgstr "Chyba při vytváření repozitáře %s" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "" @@ -1731,297 +1868,318 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" + +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "" + +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "Unlock Repository" +msgid "Invalid repository URL" +msgstr "Prázdný repozitář" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" -msgstr "" - -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" +msgstr "" + +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2083,13 +2241,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2101,11 +2259,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2126,11 +2284,11 @@ msgid "Name" msgstr "" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2139,18 +2297,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2162,7 +2321,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2174,11 +2333,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2190,10 +2349,10 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2203,7 +2362,7 @@ msgstr "" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "" @@ -2212,39 +2371,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2292,26 +2451,26 @@ msgstr "" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "" @@ -2421,109 +2580,95 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "Repozitáře" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2555,6 +2700,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2565,7 +2716,7 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +msgid "Never" msgstr "" #: kallithea/templates/admin/gists/edit.html:145 @@ -2573,7 +2724,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2596,12 +2747,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2627,25 +2778,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2675,11 +2828,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "" @@ -2688,9 +2852,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2716,7 +2889,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "" @@ -2725,26 +2898,33 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "" +#, fuzzy +#| msgid "Repositories" +msgid "Owned Repositories" +msgstr "Repozitáře" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "" +#, fuzzy +#| msgid "Repositories" +msgid "Watched Repositories" +msgstr "Repozitáře" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +msgid "Show Permissions" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2752,56 +2932,42 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 #, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" +msgid "Confirm to reset this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 #, python-format -msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +msgid "Remove" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2814,19 +2980,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2847,19 +3000,24 @@ msgid "Change Your Account Password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "" @@ -2880,13 +3038,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2924,7 +3076,7 @@ msgstr "" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2942,20 +3094,14 @@ msgstr "" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" +msgid "Default Permissions" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:28 @@ -2964,14 +3110,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "" @@ -2983,23 +3125,27 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Location of repositories" +msgid "Apply to all existing repositories" +msgstr "Chyba při vytváření repozitáře %s" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "" @@ -3011,70 +3157,99 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +msgid "Top level repository creation" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm to delete this IP address: %s" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" +msgid "New IP address" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 @@ -3098,12 +3273,12 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3121,19 +3296,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Nastavení" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Pokročilé" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3154,12 +3335,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3171,38 +3352,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3211,7 +3364,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +msgid "Default" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3220,12 +3373,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3235,7 +3383,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3284,42 +3432,41 @@ msgid "Number of Top-level Repositories" msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "Empty repository" +msgid "Clone remote repository" +msgstr "Prázdný repozitář" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3366,8 +3513,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "" @@ -3389,48 +3536,48 @@ msgid "Public Journal Visibility" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "Prázdný repozitář" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "Prázdný repozitář" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "Prázdný repozitář" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3438,18 +3585,18 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "Prázdný repozitář" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" @@ -3457,15 +3604,15 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3503,8 +3650,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "" @@ -3543,28 +3690,38 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" -msgstr "" +#, fuzzy +#| msgid "Empty repository" +msgid "Private Repository" +msgstr "Prázdný repozitář" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#, fuzzy +#| msgid "Empty repository" +msgid "Remote repository URL" +msgstr "Prázdný repozitář" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy, python-format +#| msgid "Changes on %s repository" +msgid "Pull Changes from Remote Repository" +msgstr "Změny na repozitáři %s" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to lock repository." +msgid "Confirm to pull changes from remote repository." +msgstr "Prázdný repozitář" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "Empty repository" +msgid "Permanent Repository ID" +msgstr "Prázdný repozitář" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3578,43 +3735,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "Empty repository" +msgid "Remote repository" +msgstr "Prázdný repozitář" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository Defaults" +msgid "Repository URL" +msgstr "Repozitáře" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3672,55 +3821,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3794,13 +3899,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3821,7 +3926,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3848,38 +3953,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4032,11 +4141,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4044,8 +4153,10 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" -msgstr "" +#, fuzzy +#| msgid "Settings" +msgid "Meta Tagging" +msgstr "Nastavení" #: kallithea/templates/admin/settings/settings_visual.html:97 msgid "Stylify recognised meta tags:" @@ -4063,6 +4174,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4082,15 +4194,8 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +msgid "Show Members" msgstr "" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -4098,8 +4203,14 @@ msgid "User Group: %s" msgstr "" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4124,10 +4235,6 @@ msgid "User Groups Administration" msgstr "" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "" @@ -4153,11 +4260,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4167,7 +4270,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4177,11 +4280,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4203,18 +4306,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4235,47 +4331,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 -#: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 -msgid "Changelog" -msgstr "" - #: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:141 +#: kallithea/templates/changelog/changelog.html:14 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 +msgid "Changelog" +msgstr "" + +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4285,129 +4389,125 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 -#: kallithea/templates/forks/fork.html:9 -msgid "Fork" +msgid "Follow" msgstr "" #: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 +#: kallithea/templates/forks/fork.html:9 +msgid "Fork" +msgstr "" + +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Repozitáře" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4435,7 +4535,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4462,7 +4563,7 @@ msgstr "" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "" @@ -4532,6 +4633,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "" @@ -4561,6 +4670,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4590,10 +4700,6 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4611,7 +4717,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4624,7 +4730,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4634,7 +4740,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4667,7 +4773,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "" @@ -4683,7 +4789,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4713,21 +4819,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Empty repository" +msgid "Push new repository" +msgstr "Prázdný repozitář" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4737,15 +4845,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4768,7 +4876,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4779,9 +4887,17 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" @@ -4789,9 +4905,9 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, python-format msgid "%s file changed with %s insertions and %s deletions" msgid_plural "%s files changed with %s insertions and %s deletions" @@ -4799,91 +4915,93 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy, python-format +#| msgid "Unknown revision %s" +msgid "No revisions" +msgstr "Neznámá revize %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Status change from pull request" +msgid "on pull request" +msgstr "Změna stavu-> %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +msgid "No title" msgstr "" #: kallithea/templates/changeset/changeset_file_comment.html:24 #, fuzzy -msgid "Status change from pull request" -msgstr "Změna stavu-> %s" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -msgid "No title" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#| msgid "No changes" +msgid "on this changeset" +msgstr "Žádné změny" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Změna stavu-> %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" @@ -4891,7 +5009,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" @@ -4899,7 +5017,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" @@ -4907,25 +5025,25 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Změny" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "Žádné změny" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(zavřeno)" @@ -4945,7 +5063,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4954,11 +5072,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "" @@ -4970,29 +5088,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "" @@ -5016,7 +5146,7 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" @@ -5024,49 +5154,36 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5192,10 +5309,6 @@ msgid "Commit Changes" msgstr "Žádné změny" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5221,18 +5334,14 @@ msgstr "" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" +msgid "Last Modified" msgstr "" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5345,8 +5454,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5397,8 +5506,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5406,7 +5515,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "" @@ -5419,19 +5528,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" -msgstr "Prázdný repozitář" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5473,20 +5576,14 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +msgid "Vote" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5495,50 +5592,48 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5554,11 +5649,11 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" @@ -5566,79 +5661,79 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "Zatím nejsou žádné soubory. %s" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "Žádné změny" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5739,8 +5834,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5748,45 +5843,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 -msgid "commits" -msgstr "" - #: kallithea/templates/summary/statistics.html:390 -msgid "files added" +msgid "commits" msgstr "" #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" +msgid "files added" msgstr "" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "" -#: kallithea/templates/summary/statistics.html:394 -msgid "commit" -msgstr "" - #: kallithea/templates/summary/statistics.html:395 -msgid "file added" +msgid "commit" msgstr "" #: kallithea/templates/summary/statistics.html:396 -msgid "file changed" +msgid "file added" msgstr "" #: kallithea/templates/summary/statistics.html:397 +msgid "file changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "" @@ -5808,66 +5903,74 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" msgstr "" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "Změna stavu-> %s" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" @@ -5881,3 +5984,418 @@ msgid "Compare Tags" msgstr "" +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "" + +#~ msgid "public journal" +#~ msgstr "" + +#~ msgid "journal" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Cannot delete %s it still contains attached forks" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "Odemčeno" + +#~ msgid "Locked" +#~ msgstr "Zamčeno" + +#~ msgid "Repository has been %s" +#~ msgstr "" + +#~ msgid "You can't edit this user" +#~ msgstr "" + +#~ msgid "compare view" +#~ msgstr "" + +#~ msgid "fork name %s" +#~ msgstr "" + +#~ msgid "Pull request #%s" +#~ msgstr "" + +#~ msgid "No Files" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "You can't remove this user since it's crucial for entire application" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid password" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "" + +#~ msgid "Your account is disabled" +#~ msgstr "" + +#~ msgid "Repository name %(repo)s is disallowed" +#~ msgstr "" + +#~ msgid "invalid clone URL" +#~ msgstr "" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" + +#~ msgid "This email address is already taken" +#~ msgstr "" + +#~ msgid "email \"%(email)s\" does not exist." +#~ msgstr "" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "" + +#~ msgid "My Permissions" +#~ msgstr "" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "Repository creation" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "" + +#~ msgid "none" +#~ msgstr "" + +#~ msgid "read" +#~ msgstr "" + +#~ msgid "write" +#~ msgstr "" + +#~ msgid "admin" +#~ msgstr "" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "default" +#~ msgstr "" + +#~ msgid "revoke" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "" + +#~ msgid "private repository" +#~ msgstr "" + +#~ msgid "Remote URL" +#~ msgstr "" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "merge" +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Comment from pull request" +#~ msgstr "" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "" + +#~ msgid "My Repos" +#~ msgstr "Prázdný repozitář" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/de/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/de/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/de/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,11 +5,11 @@ # stephanj , 2013 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" -"PO-Revision-Date: 2015-05-13 15:13+0200\n" -"Last-Translator: Peter Vitt \n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" +"PO-Revision-Date: 2015-07-23 10:37+0200\n" +"Last-Translator: Robert Martinez \n" "Language-Team: German " "\n" "Language: de\n" @@ -17,22 +17,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.3-dev\n" +"X-Generator: Weblate 2.4-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Es gibt noch keine Änderungssätze" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Keine" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(geschlossen)" @@ -46,21 +50,17 @@ msgstr "Ignoriere unsichtbare Zeichen" #: kallithea/controllers/changeset.py:169 -#, python-format -msgid "increase diff context to %(num)s lines" +#, fuzzy, python-format +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "diff-Kontext auf %(num)s Zeilen erhöhen" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Die angegebene Version existiert nicht in diesem Repository" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Keine Kommentare." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" @@ -68,35 +68,45 @@ "Eine Änderung des Status eines Änderungssatzes, der mit einem geschlossen" " Pull-Request assoziert ist, ist nicht erlaubt" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "Änderungssätze auswählen" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -"Ohne einen gemeinsamen Vorfahren ist ein Vergleich der Repositories nicht " -"möglich" - -#: kallithea/controllers/error.py:96 +"Ohne einen gemeinsamen Vorfahren ist ein Vergleich der Repositories nicht" +" möglich" + +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "revisionen" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" "Die Anfrage konnte wegen ungültiger Syntax vom Server nicht ausgewertet " "werden." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Unauthorisierter Zugang zur Ressource" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "Du hast keine Rechte, um diese Seite zu betrachten" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "Die Ressource konnte nicht gefunden werden" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -114,17 +124,17 @@ msgid "%s %s feed" msgstr "%s %s Feed" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "Der Änderungssatz war zu groß und wurde abgeschnitten..." -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -202,45 +212,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "Der Ort muss ein relativer Pfad sein und darf nicht .. enthalten" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Downloads gesperrt" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Unbekannte Revision %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Leeres Repository" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Unbekannter Archivtyp" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Änderungssätze" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Entwicklungszweige" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Tags" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Während des Forkens des Repositorys trat ein Fehler auf: %s" @@ -256,9 +264,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Repositories" @@ -278,26 +286,33 @@ msgstr "Lesezeichen" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "Öffentliches Logbuch" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" msgstr "Logbuch" -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "falsches Captcha" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Sie haben sich erfolgreich bei Kallithea registriert" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "Ihr Passwort Zurücksetzen link wurde versendet" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" @@ -305,124 +320,135 @@ "Das Zurücksetzen des Passworted war erfolgreich, ein neues Passwort wurde" " an ihre EMail Addresse gesendet" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (geschlossen)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Änderungssatz" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Spezial" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Lesezeichen" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "Fehler beim Erstellen des Pull-Requests: %s" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "Keine Beschreibung" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "Es wurde erfolgreich ein neuer Pullrequest eröffnet" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "Während des Erstellens des Pull Requests trat ein Fehler auf" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "Neue Changesets in %s %s seit dem letzten Pull Request:" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -"Dieser Pull Request basiert auf einer anderen %s Revision. Daher ist kein " -"Simple Diff verfügbar." - -#: kallithea/controllers/pullrequests.py:421 +"Dieser Pull Request basiert auf einer anderen %s Revision. Daher ist kein" +" Simple Diff verfügbar." + +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "Keine Änderungen seit der letzten Version gefunden in %s %s." -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "Geschlossen, ersetzt durch %s." -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "Pull Request Update erstellt" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "Pull Request aktualisiert" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "Erfolgreich Pull-Request gelöscht" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "Dieser Pull Request wurde bereits in %s integriert." -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" "Dieser Pull Request wurde geschlossen und kann daher nicht aktualisiert " "werden." -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "Dieser Pull Request kann mit Änderungen in %s aktualisiert werden:" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "Keine Changesets gefunden, um den Pull Request zu aktualisieren." -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "Hinweis: Branch %s hat einen anderen Head: %s." -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "Git Pull Request unterstützen bisher keine Updates." -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "Schließen." @@ -438,21 +464,21 @@ msgid "An error occurred during search operation." msgstr "Während der Suchoperation trat ein Fehler auf." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "Es stehen noch keine Daten zur Verfügung" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "Statistiken sind deaktiviert für dieses Repository" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "Anmeldeeinstellungen erfolgreich geändert" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "Fehler bei der Änderung der Anmeldeeinstellungen aufgetreten" @@ -465,38 +491,40 @@ msgstr "Ein Fehler trat beim updaten der Standardeinstellungen auf" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "immer" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 Minuten" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 Stunde" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 Tag" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 Monat" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "Lebenszeit" @@ -510,7 +538,9 @@ msgstr "gist %s gelöscht" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +#, fuzzy +#| msgid "unmodified" +msgid "Unmodified" msgstr "ungeändert" #: kallithea/controllers/admin/gists.py:262 @@ -526,119 +556,135 @@ msgid "Error occurred during update of gist %s" msgstr "Fehler beim Aktualisieren der Kerndaten %s" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" "Sie können diesen Benutzer nicht editieren, da er von entscheidender " "Bedeutung für die ganze Applikation ist" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Ihr Account wurde erfolgreich aktualisiert" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "Fehler beim Aktualisieren der Benutzer %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Erfolgreich Kennwort geändert" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "Fehler bei der Änderung des Kennworts" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "Die EMail Addresse %s wurde zum Benutzer hinzugefügt" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Währen der Speicherung der EMail Addresse trat ein Fehler auf" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "Die EMail Addresse wurde vom Benutzer entfernt" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" msgstr "API Key wurde erfolgreich erstellt" -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" msgstr "API-Schlüssel erfolgreich zurückgesetzt" -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" msgstr "API-Schlüssel erfolgreich gelöscht" +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Lesen" + #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Lesen" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Schreiben" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Schreiben" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Admin" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Deaktiviert" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Erlaubt mit manueller Kontoaktivierung" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Erlaubt mit automatischer Kontoaktivierung" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -646,11 +692,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Manuelle Aktivierung externen Kontos" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -658,225 +704,216 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Automatische Aktivierung externen Kontos" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Aktiviert" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "Globale Berechtigungen erfolgreich geändert" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Fehler bei der Änderung der globalen Berechtigungen" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Fehler bei der Erstellung der Repositoriumsgruppe %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Repositoriumsgruppe %s erstellt" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Fehler bei der Erstellung der Repositoriumsgruppe %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Repositoriumsgruppe %s aktualisiert" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Fehler bei der Aktualisierung der Repositoriumsgruppe %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Die Gruppe enthält %s Repositorys und kann nicht gelöscht werden" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Diese Gruppe enthält %s Untergruppen und kann nicht gelöscht werden" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Repositoriumsgruppe %s entfernt" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Fehler beim Löschen der Repositoriumsgruppe %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Als Administrator kann man sich keine Berechtigungen entziehen" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Berechtigungen der Repositoriumsgruppe aktualisiert" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Fehler beim Entzug der Berechtigungen" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Fehler beim Erstellen des Repositoriums %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "Repositorium %s von %s erstellt" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "Aufgespaltenes Repositorium %s zu %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Repositorium erzeugt %s" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Repository %s wurde erfolgreich aktualisiert" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Fehler bei der Aktualisierung des Repositoriums %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "%s Spaltung abgetrennt" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "%s Spaltung gelöscht" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Repositorium %s gelöscht" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "%s konnte nicht gelöscht werden da es immernoch Forks enthält" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Beim Löschen von %s trat ein Fehler auf" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Repositoriumsberechtigungen aktualisiert" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Fehler während der Erzeugung des Feldes" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Fehler beim Entfernen des Feldes" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- Keine Abspaltung --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "Sichtbarkeit des Repositorys im Öffentlichen Logbuch aktualisiert" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" "Es trat ein Fehler während der Aktualisierung der Sicherbarkeit dieses " "Repositorys im Öffentlichen Logbuch auf" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Schlüssel stimmt nicht überein" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Nichts" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Markiere Repository %s als Abzweig von Repository %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Während dieser operation trat ein Fehler auf" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "Gesperrtes Repositorium" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "Entsperrtes Repositorium" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "Repository ist nicht gesperrt" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "Repository ist nicht gesperrt" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Fehler beim Entsperren" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Entsperrt" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Gesperrt" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "Cache Entfernung war erfolgreich" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Währen der Cache Invalidierung trat ein Fehler auf" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Von entferntem Ort übertragen" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "Repositorium wurde %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "Cache Entfernung war erfolgreich" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Währen der Cache Invalidierung trat ein Fehler auf" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Von entferntem Ort übertragen" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" "Es trat ein Fehler auf während das Repository von einem Entfernten " "Speicherort übertragen wurde" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Während des löschens der Repository Statistiken trat ein Fehler auf" @@ -894,7 +931,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" "Ein Fehler ist während der Aktualisierung der Applikationseinstellungen " "aufgetreten" @@ -903,7 +940,8 @@ #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "" -"Die Repositories wurden erfolgreich überprüft. Hinzugefügt: %s. Entfernt: %s." +"Die Repositories wurden erfolgreich überprüft. Hinzugefügt: %s. Entfernt:" +" %s." #: kallithea/controllers/admin/settings.py:270 msgid "Updated application settings" @@ -976,83 +1014,82 @@ msgstr "Zielgruppe kann nicht die gleiche Gruppe sein" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Berechtigungen der Benutzergruppe wurden aktualisiert" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Berechtigungen wurden aktualisiert" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Es ist ein Fehler während des Speicherns der Berechtigungen aufgetreten" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Nutzer %s erstellt" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Während des Erstellens des Benutzers %s ist ein Fehler aufgetreten" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "Der Benutzer wurde erfolgreich aktualisiert" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Der Nutzer wurde erfolgreich gelöscht" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Während der Löschen des Benutzers trat ein Fehler auf" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Sie können diesen Benutzer nicht editieren" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "Die IP-Adresse %s wurde zur Nutzerwhitelist hinzugefügt" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Während des Speicherns der IP-Adresse ist ein Fehler aufgetreten" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "IP-Adresse wurde von der Nutzerwhitelist entfernt" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IP-Adresse %s ist nicht erlaubt" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +#, fuzzy +#| msgid "New api key" +msgid "Invalid API key" +msgstr "Neuer API Key" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "Sie müssen ein Registrierter Nutzer sein um diese Aktion durchzuführen" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Sie müssen sich anmelden um diese Seite aufzurufen" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "Das Repository konnte nicht im Filesystem gefunden werden" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Änderungssatz nicht gefunden" @@ -1070,158 +1107,164 @@ msgid "No changes detected" msgstr "Keine Änderungen erkannt" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Branch %s gelöscht" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Tag %s erstellt" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Zeige alle Kombinierten Änderungensätze %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "vergleichsansicht" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "und" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s mehr" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "revisionen" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "Fork Name %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "Pull Request #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[gelöscht] Repository" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[erstellt] Repository" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[erstellt] Repository als Fork" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[forked] Repository" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[aktualisiert] Repository" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "Archiv von Repository [heruntergeladen]" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "Repository [gelöscht]" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "Benutzer [erstellt]" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "Benutzer [akutalisiert]" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "Benutzergruppe [erstellt]" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "Benutzergruppe [aktualisiert]" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "Revision [kommentiert] in Repository" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "Pull Request [kommentiert] für" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "Pull Request [geschlossen] für" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[Pushed] in" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[via Kallithea] in Repository [committed]" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[Pulled von Remote] in Repository" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[Pulled] von" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[Following gestartet] für Repository" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[Following gestoppt] für Repository" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " und %s weitere" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Keine Dateien" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "neue Datei" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "mod" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "entf" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "umbenennen" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1232,69 +1275,69 @@ "es im Dateisystem erstellt oder umbenannt. Bitte starten sie die " "Applikation erneut um die Repositories neu zu Indizieren" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d Jahr" msgstr[1] "%d Jahre" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d Monat" msgstr[1] "%d Monate" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d Tag" msgstr[1] "%d Tage" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d Stunde" msgstr[1] "%d Stunden" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d Minute" msgstr[1] "%d Minuten" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d Sekunde" msgstr[1] "%d Sekunden" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "in %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "vor %s" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "in %s und %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s und %s her" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "jetzt gerade" @@ -1309,7 +1352,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Kein Zugriff auf Repository" @@ -1324,7 +1367,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Lesender Zugriff auf Repository" @@ -1339,7 +1382,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Schreibdender Zugriff auf Repository" @@ -1354,7 +1397,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Administrativer Zugang zum Repository" @@ -1393,7 +1436,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Kallithea Administrator" @@ -1408,7 +1451,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Erstellung eines Repositorys deaktiviert" @@ -1423,7 +1466,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Erstellung eines Repositorys aktiviert" @@ -1438,7 +1481,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Forking eines Repositorys deaktiviert" @@ -1453,7 +1496,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Forking eines Repositorys aktiviert" @@ -1489,7 +1532,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Nicht Begutachtet" @@ -1504,7 +1547,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Akzeptiert" @@ -1519,7 +1562,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Abgelehnt" @@ -1534,7 +1577,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "In Begutachtung" @@ -1546,7 +1589,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "höchste Ebene" @@ -1558,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Kein Zugriff für Repositorygruppe" @@ -1570,7 +1613,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Lesezugriff für Repositorygruppe" @@ -1582,7 +1625,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Schreibzugriff für Repositorygruppe" @@ -1594,7 +1637,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Administrativer Zugriff für Repositorygruppe" @@ -1605,7 +1648,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Kein Zugriff für Benutzergruppe" @@ -1616,7 +1659,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Lesezugriff für Benutzergruppe" @@ -1627,7 +1670,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Nutzergruppe Schreibzugriff" @@ -1638,7 +1681,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Administrativer Zugriff für Benutzergruppe" @@ -1649,7 +1692,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Erstellung von Repositorygruppen deaktiviert" @@ -1660,7 +1703,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Erstellung von Repositorygruppen aktiviert" @@ -1671,7 +1714,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Erstellung von Benutzergruppen deaktiviert" @@ -1682,7 +1725,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Erstellung von Benutzergruppen aktiviert" @@ -1693,7 +1736,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Registrierung deaktiviert" @@ -1704,7 +1747,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Benutzerregistrierung mit manueller Kontoaktivierung" @@ -1715,32 +1758,157 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Benutzerregistrierung mit automatische Kontoaktivierung" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" -"Erstellung von Repositories mit Schreibzugriff für Repositorygruppe aktiviert" +"Erstellung von Repositories mit Schreibzugriff für Repositorygruppe " +"aktiviert" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" "Erstellung von Repositories mit Schreibzugriff für Repositorygruppe " "deaktiviert" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "in Zeile %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Mention]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Unauthorisierter Zugang zur Ressource" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Unauthorisierter Zugang zur Ressource" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Repositoriumsgruppe %s erstellt" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Repositoriumsgruppe %s erstellt" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "[created] user group" +msgid "Only admins can create user groups" +msgstr "Benutzergruppe [erstellt]" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "[created] user group" +msgid "Non-admins can create user groups" +msgstr "Benutzergruppe [erstellt]" + +#: kallithea/model/db.py:1688 +#, fuzzy +#| msgid "Top level repositories" +msgid "Only admins can create top level repositories" +msgstr "Repositories oberster Ebene" + +#: kallithea/model/db.py:1689 +#, fuzzy +#| msgid "Top level repositories" +msgid "Non-admins can create top level repositories" +msgstr "Repositories oberster Ebene" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Ort der Repositories" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Location of repositories" +msgid "Non-admins can can fork repositories" +msgstr "Ort der Repositories" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Benutzerregistrierung mit manueller Kontoaktivierung" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Benutzerregistrierung mit automatische Kontoaktivierung" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Nicht Begutachtet" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "In Begutachtung" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Bitte einen Benutzernamen eingeben" @@ -1759,122 +1927,161 @@ msgid "Enter %(min)i characters or more" msgstr "Bitte mindestens %(min)i Zeichen eingeben" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "Name darf nicht nur Ziffern enthalten" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s hat am %(when)s ein Changeset kommentiert" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s hat am %(when)s eine Nachricht gesendet" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s hat Sie am %(when)s erwähnt" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s hat sich am %(when)s bei Kallithea registriert" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s hat am %(when)s einen neuen Pull Request eröffnet" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s hat am %(when)s einen Pull Request kommentiert" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s hat am %(when)s ein Changeset kommentiert" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s hat am %(when)s eine Nachricht gesendet" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s hat Sie am %(when)s erwähnt" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s hat sich am %(when)s bei Kallithea registriert" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s hat am %(when)s einen neuen Pull Request eröffnet" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s hat am %(when)s einen Pull Request kommentiert" -#: kallithea/model/notification.py:296 -#, python-format +#: kallithea/model/notification.py:302 +#, fuzzy, python-format +#| msgid "" "Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " +#| "%(comment_username)s" msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" -"Kommentar für %(repo_name)s Changeset %(short_id)s in %(branch)s erstellt " -"von %(comment_username)s" - -#: kallithea/model/notification.py:299 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" +"Kommentar für %(repo_name)s Changeset %(short_id)s in %(branch)s erstellt" +" von %(comment_username)s" + +#: kallithea/model/notification.py:305 #, python-format msgid "New user %(new_username)s registered" msgstr "Neuer Benutzer %(new_username)s registriert" -#: kallithea/model/notification.py:301 -#, python-format +#: kallithea/model/notification.py:307 +#, fuzzy, python-format +#| msgid "" "Review request on %(repo_name)s pull request #%(pr_id)s from +#| %(ref)s by " "%(pr_username)s" msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" msgstr "" "Review Request für %(repo_name)s Pull Request #%(pr_id)s von %(ref)s " "erstellt von %(pr_username)s" -#: kallithea/model/notification.py:302 -#, python-format +#: kallithea/model/notification.py:308 +#, fuzzy, python-format +#| msgid "" "Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " +#| "%(comment_username)s" msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" -"Kommentar von %(comment_username)s für %(repo_name)s Pull Request #%(pr_id)s " -"von %(ref)s" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" +"Kommentar von %(comment_username)s für %(repo_name)s Pull Request " +"#%(pr_id)s von %(ref)s" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "Schließen" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "%(user)s möchte ein Review des Pull Request #%(pr_id)s: %(pr_title)s" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "Letzter Tip" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "Neue Benutzerregistrierung" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Sie können diesen Benutzer nicht editieren, da er von entscheidender " +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" +"Sie können diesen Benutzer nicht löschen, da er von entscheidender " "Bedeutung für die gesamte Applikation ist" -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" -"Sie können diesen Benutzer nicht löschen, da er von entscheidender Bedeutung " -"für die gesamte Applikation ist" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -"Der Benutzer \"%s\" besitzt noch immer %s Repositories und kann daher nicht " -"entfernt werden. Entweder muss der Besitzer geändert oder das Repository " -"entfernt werden: %s" - -#: kallithea/model/user.py:268 +"Der Benutzer \"%s\" besitzt noch immer %s Repositories und kann daher " +"nicht entfernt werden. Entweder muss der Besitzer geändert oder das " +"Repository entfernt werden: %s" + +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -"Der Benutzer \"%s\" ist noch der Besitzer von %s Repositorygruppen und kann " -"daher nicht entfernt werden. Entweder muss der Besitzer geändert oder die " -"Repositorygruppen müssen entfernt werden: %s" - -#: kallithea/model/user.py:275 +"Der Benutzer \"%s\" ist noch der Besitzer von %s Repositorygruppen und " +"kann daher nicht entfernt werden. Entweder muss der Besitzer geändert " +"oder die Repositorygruppen müssen entfernt werden: %s" + +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " @@ -1884,61 +2091,66 @@ "nicht entfernt werden. Entweder muss der Besitzer geändert oder die " "Benutzergruppen müssen gelöscht werden: %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "Link zum Zurücksetzen des Passworts" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Dein neues Passwort" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Ihr neues Kallithea-Passwort: %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "Eine leere Liste ist kein gültiger Wert" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "Benutezrname \"%(username)s\" existiert bereits" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "Benutzername \"%(username)s\" ist verboten" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "Benutzername \"%(username)s\" ist ungültig" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Der Benutzername darf nur alphanumerische Zeichen, Unterstriche, Punkte " "oder Bindestriche enthalten und muss mit einem alphanumerischen Zeichen " "oder einem Unterstrich beginnen" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "Die Eingabe ist nicht gültig" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "Benutzername \"%(username)s\" ist ungültig" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Ungültiger Benutzergruppenname" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "Benutzergruppe \"%(usergroup)s\" existiert bereits" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1947,111 +2159,116 @@ "Unterstriche, Punkte oder Bindestriche enthalten und muss mit einem " "alphanumerischen Zeichen beginnen" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Kann diese Gruppe nicht als vorgesetzt setzen" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "Gruppe \"%(group_name)s\" existiert bereits" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Es gibt bereits ein Repository mit \"%(group_name)s\"" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Üngültige(nicht ASCII) Zeichen im Passwort" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "Ungültiges altes Passwort" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Die Passwörter stimmen nicht überein" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "Ungültiges Passwort" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "Ungültiger Benutzername" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Ihr Account wurde Deaktiviert" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Schlüssel stimmt nicht überein" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "Repository Name \"%(repo)s\" ist verboten" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Es gibt bereits ein Repository mit \"%(repo)s\"" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" "Es gibt bereits ein Repository mit \"%(repo)s\" in der Gruppe " "\"%(group)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Eine Repositorygruppe mit dem Namen \"%(repo)s\" existiert bereits" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "ungültige Clone-URL" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" -"Ungültige Clone-URL, gültige Clone-URL (http(s)/svn+http(s)/ssh) angeben" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "privates Repository" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "Forke um den selben typ wie der Vorgesetze zu haben" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" "Du hast nicht die erforderlichen Berechtigungen, um in dieser Gruppe ein " "Repository zu erzeugen" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "keine Berechtigung, um ein Repository auf höchster Ebene anzulegen" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "Sie haben keine Berechtigung, um an diesem Ort ein Repository anzulegen" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Dieser Benutzername oder Benutzergruppenname ist nicht gültig" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "Dies ist ein Ungültiger Pfad" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "Diese E-Mailaddresse ist bereits in Benutzung" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "E-MailAddresse \"%(email)s\" existiert nicht." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" @@ -2059,40 +2276,33 @@ "Das LDAP-Login-Attribut des CN muss angeben werden - Es ist der Name des " "Attributes äquivalent zu \"Benutzername\"" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" -"Die Revisionen %(revs)s sind bereits Bestandteil des Pull Requests oder " -"haben den Status" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" msgstr "Bitte eine gültige IPv4- oder IPv6-Adresse angeben" -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" "Die Größe (in Bits) des Netzwerks muss im Bereich 0-32 liegen (nicht " "%(bits)r)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -"Der Name eines Schlüssels darf nur aus Buchstaben, Ziffern, Unterstrich und " -"Bindestrich bestehen" - -#: kallithea/model/validators.py:865 +"Der Name eines Schlüssels darf nur aus Buchstaben, Ziffern, Unterstrich " +"und Bindestrich bestehen" + +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" -msgstr "" - -#: kallithea/model/validators.py:881 +msgstr "Dateiname darf kein Unterverzeichnis enthalten" + +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" -"Die Plug-Ins %(loaded)s und %(next_to_load)s exportieren beide den selben " -"Namen" +"Die Plug-Ins %(loaded)s und %(next_to_load)s exportieren beide den selben" +" Namen" #: kallithea/templates/about.html:4 kallithea/templates/about.html:17 msgid "About" @@ -2151,13 +2361,13 @@ msgstr "Gruppenname" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2169,11 +2379,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Beschreibung" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2194,11 +2404,11 @@ msgid "Name" msgstr "Name" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Letzte Änderung" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2207,18 +2417,19 @@ msgid "Tip" msgstr "Tipp" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Besitzer" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2230,7 +2441,7 @@ msgid "Click to sort ascending" msgstr "Klicken um Aufsteigend zu Sortieren" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2242,11 +2453,11 @@ msgid "Click to sort descending" msgstr "Klicken um Absteigend zu Sortieren" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Keine Repositories gefunden." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2258,10 +2469,10 @@ msgid "Data error." msgstr "Datenfehler." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2271,7 +2482,7 @@ msgstr "Lade..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Log In" @@ -2280,39 +2491,39 @@ msgid "Log In to %s" msgstr "Log In in %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Benutzername" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Passwort" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Login Speichern" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Passowrt Vergessen?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Kein Account?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Einloggen" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Passowrt Vergessen?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Kein Account?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Passwort zurücksetzen" @@ -2362,26 +2573,26 @@ msgstr "Passwort erneut eingeben" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Vorname" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Nachname" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-Mail" @@ -2491,113 +2702,103 @@ msgstr "Aktivierte Plugins" #: kallithea/templates/admin/auth/auth_settings.html:33 +#, fuzzy +#| msgid "" "Comma separated list of plugins. Order of plugins is also order in +#| which " "Kallithea will try to authenticate user" msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" -msgstr "" -"Kommaseparierte Liste der Plug-Ins. Reihenfolge der Plug-Ins entspricht der " -"Reihenfolge, in der Kallithea die Plug-Ins zur Authentifizierung des " +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" +msgstr "" +"Kommaseparierte Liste der Plug-Ins. Reihenfolge der Plug-Ins entspricht " +"der Reihenfolge, in der Kallithea die Plug-Ins zur Authentifizierung des " "Benutzers verwendet" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "Verfügbare mitgelieferte Plug-Ins" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "Aktiviert" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "Deaktiviert" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "Plugin" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Speichern" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "Repositorystandards" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +msgid "Repository Defaults" +msgstr "Repositorystandards" + +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Typ" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Privates Repository" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -"Private Repositories sind nur für explizit hinzugefügte Mitarbeiter sichtbar." - -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +"Private Repositories sind nur für explizit hinzugefügte Mitarbeiter " +"sichtbar." + +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Aktiviere Statistiken" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Statistik-Fenster in der Zusammenfassungsseite aktivieren." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Aktiviere Downloads" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Download-Menü auf der Zusammenfassungsseite aktivieren." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Locking aktivieren" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2612,16 +2813,18 @@ "Gist was update since you started editing. Copy your changes and click " "%(here)s to reload new version." msgstr "" +"Gist wurde während der Änderung aktualisiert. Änderungen kopieren und " +"%(here)s klicken um die neue Version nachzuladen." #: kallithea/templates/admin/gists/edit.html:55 #: kallithea/templates/admin/gists/new.html:39 msgid "Gist description ..." -msgstr "" +msgstr "Gist Beschreibung ..." #: kallithea/templates/admin/gists/edit.html:57 #: kallithea/templates/admin/gists/new.html:41 msgid "Gist lifetime" -msgstr "" +msgstr "Gist Lebenszeit" #: kallithea/templates/admin/gists/edit.html:61 #: kallithea/templates/admin/gists/edit.html:63 @@ -2629,6 +2832,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Verfällt" @@ -2639,7 +2848,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "nie" #: kallithea/templates/admin/gists/edit.html:145 @@ -2647,7 +2858,7 @@ msgstr "Gist aktualisieren" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Abbrechen" @@ -2670,12 +2881,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "Neuen Gist erstellen" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Erstellt" @@ -2701,25 +2912,27 @@ msgstr "Öffentlichen Gist erstellen" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2749,11 +2962,22 @@ msgstr "Privater Gist" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Löschen" @@ -2762,9 +2986,18 @@ msgstr "Löschen des Gists bestätigen" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2790,7 +3023,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Mein Account" @@ -2799,83 +3032,90 @@ msgid "Profile" msgstr "Profil" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Neue E-Mailadresse" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "Meine E-Mails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" +msgstr "API Keys" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "Meine Repositories" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "Repositories" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Beobachtet" +#, fuzzy +#| msgid "repositories" +msgid "Watched Repositories" +msgstr "Repositories" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" -msgstr "Meine Erlaubnisse" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Berechtigungen kopieren" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "Mitgeliefert" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "verfällt" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to reset this api key: %s" +msgid "Confirm to reset this API key: %s" msgstr "Zurücksetzen des API Keys \"%s\" bestätigen" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "Zurücksetzen" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +#, fuzzy +#| msgid "expired" +msgid "Expired" msgstr "verfallen" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "Entfernen des API Keys \"%s\" bestätigen" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +#, fuzzy +#| msgid "remove" +msgid "Remove" msgstr "entfernen" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +#, fuzzy +#| msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "Keine weiteren API Keys spezifiziert" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +#, fuzzy +#| msgid "New api key" +msgid "New API key" msgstr "Neuer API Key" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2888,19 +3128,6 @@ msgid "Primary" msgstr "Primär" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "löschen" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2921,22 +3148,27 @@ msgid "Change Your Account Password" msgstr "Passwort des Benutzerkontos ändern" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "Aktuelles Passwort" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Neues Passwort" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "Bestätige neues Passwort" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" -msgstr "" +msgstr "Benutzerbild ändern unter" #: kallithea/templates/admin/my_account/my_account_profile.html:12 #: kallithea/templates/admin/users/user_edit_profile.html:9 @@ -2954,15 +3186,11 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" +#, fuzzy +#| msgid "current IP" +msgid "Current IP" msgstr "Aktuelle IP-Adresse" -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_repos.html:1 msgid "Repositories You Own" msgstr "Repositories in Ihrem Besitz" @@ -2996,7 +3224,7 @@ msgstr "Kommentare" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Pull Requests" @@ -3014,21 +3242,15 @@ msgstr "Zeige Benachrichtigung" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Benachrichtigungen" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "Rechteverwaltung" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Rechte" +msgid "Default Permissions" +msgstr "Standardrechte" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -3036,14 +3258,10 @@ msgstr "Global" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "IP Whitelist" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "Übersicht" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Anonymer Zugang" @@ -3057,7 +3275,7 @@ "Unauthentifizierten Zugriff auf Kallithea erlauben. Anonyme Benutzer " "verwenden %s Benutzerrechte." -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " @@ -3067,16 +3285,20 @@ "gesetzt. Beachten Sie, dass alle spezifischen Standardrechte der " "Repositories verloren gehen" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repositories" +msgstr "Bestehendes Repository importieren?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Bestehende Einstellungen überschreiben" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Repository Gruppe" @@ -3087,79 +3309,122 @@ "permission, note that all custom default permission on repository groups " "will be lost" msgstr "" -"Alle Standardrechte jeder Repositorygruppe werden auf die gewählten Rechte " -"gesetzt. Beachten Sie, dass all spezifischen Standardrechte der " +"Alle Standardrechte jeder Repositorygruppe werden auf die gewählten " +"Rechte gesetzt. Beachten Sie, dass all spezifischen Standardrechte der " "Repositorygruppen verloren gehen" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repository groups" +msgstr "Bestehendes Repository importieren?" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +#, fuzzy +#| msgid "Copy permission set from parent repository group." +msgid "Permissions for the Default user on new repository groups." +msgstr "Rechte der übergeordneten Repositorygruppe kopieren." + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Benutzergruppe" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" msgstr "" "Alle Standardrechte jeder Benutzergruppe werden auf die gewählten Rechte " "gesetzt. Beachten Sie, dass alle spezifischen Standardrechte der " "Benutzergruppen verloren gehen" +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Repository erstellung" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +#, fuzzy +#| msgid "" "Write permission to a repository group allows creating +#| repositories " "inside that group." +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" +"Schreibrechte einer Repository Gruppe erlauben innerhalb der Gruppe neue " +"Repositorys zu erstellen." + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +msgstr "Benutzergruppen Erstellung" + +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Registrierung" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" +msgstr "Bestätigen diese IP zu löschen: %s" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +msgstr "Alle IP-Adressen sind zulässig." + +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Neue IP-Adresse" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" -msgstr "Übersicht der Standardbenutzerrechte" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3181,12 +3446,12 @@ msgstr "Übergeordnete Gruppe" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "Rechte der übergeordneten Gruppe kopieren" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "Rechte der übergeordneten Repositorygruppe kopieren." @@ -3204,19 +3469,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Einstellungen" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Erweitert" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Rechte" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3237,12 +3508,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Erstellt am" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3253,38 +3524,12 @@ msgid "Delete this repository group" msgstr "Diese Repositorygruppe löschen" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "keine" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "lesen" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "schreiben" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "admin" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +#, fuzzy +#| msgid "user/user group" +msgid "User/User Group" msgstr "Benutzer/Benutzergruppe" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3293,7 +3538,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "standart" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3302,14 +3549,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "entziehen" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3317,7 +3561,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3365,44 +3609,43 @@ msgid "Number of Top-level Repositories" msgstr "Anzahl der Repositories oberster Ebene" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "Bestehendes Repository importieren?" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Clone von" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "Optionale http[s] URL, von welcher das Repository geclont werden soll." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[erstellt] Repository" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -"Halten Sie es kurz und prägnant. Benutzen Sie eine README-Datei für längere " -"Beschreibungen." - -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +"Halten Sie es kurz und prägnant. Benutzen Sie eine README-Datei für " +"längere Beschreibungen." + +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Repository Typ der erstellt werden soll." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Start Revision" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3449,8 +3692,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Statistiken" @@ -3472,15 +3715,15 @@ msgid "Public Journal Visibility" msgstr "Sichtbarkeit des öffentlichen Logbuches" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Entferne aus dem Öffentlichen Logbuch" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "Zum öffentlichen Logbuch hinzufügen" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." @@ -3488,31 +3731,31 @@ "Alle Aktionen, die in diesem Repository ausgeführt wurden, sind im " "öffentlichen Logbuch für jeden einsehbar." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "Entsperren des Repositorys bestätigen." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "Repository entsperren" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "Sperren des Repositorys bestätigen." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "Repository sperren" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Repository ist nicht gesperrt" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3520,32 +3763,32 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Löschen des Repositorys bestätigen: %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 msgid "Delete this Repository" msgstr "Dieses Repository löschen" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "Dieses Repository hat %s Fork" msgstr[1] "Dieses Repository hat %s Forks" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "Fork abtrennen" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "Forks löschen" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3583,8 +3826,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Aktiv" @@ -3623,28 +3866,38 @@ msgstr "Zusatzfelder sind deaktiviert." #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "privates Repository" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "Remote URL" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "Änderungen von entferntem Ort übertragen" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Repositorium erzeugt %s" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[Pulled von Remote] in Repository" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Confirm to pull changes from remote repository." +msgstr "[Pulled von Remote] in Repository" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "privates Repository" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3658,43 +3911,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "Clone-URL" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "bearbeiten" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[erstellt] Repository" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Repository" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Besitzer des Repositorys ändern." @@ -3751,55 +3996,11 @@ msgid "System Info" msgstr "Systeminfo" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "E-Mail-Präfix" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "SMTP-Server" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "SMTP-Benutzername" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "SMTP-Passwort" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "SMTP-Port" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Senden" @@ -3872,13 +4073,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3899,7 +4100,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3926,39 +4127,46 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +#, fuzzy +#| msgid "check for updates" +msgid "Check for updates" msgstr "Auf Updates prüfen" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" -msgstr "Python-Version" +msgid "Kallithea configuration file" +msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 +msgid "Python version" +msgstr "Python-Version" + +#: kallithea/templates/admin/settings/settings_system.html:7 msgid "Platform" msgstr "Plattform" -#: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" -msgstr "Git-Version" - #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" -msgstr "" +msgid "Git version" +msgstr "Git-Version" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -"Hinweis: Bitte stellen Sie sicher, dass der Server auf die URL zugreifen kann" - -#: kallithea/templates/admin/settings/settings_system.html:14 +"Hinweis: Bitte stellen Sie sicher, dass der Server auf die URL zugreifen " +"kann" + +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "Prüfe auf Updates..." -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4110,11 +4318,11 @@ msgstr "Icons" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4122,8 +4330,10 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" -msgstr "" +#, fuzzy +#| msgid "Settings" +msgid "Meta Tagging" +msgstr "Einstellungen" #: kallithea/templates/admin/settings/settings_visual.html:97 msgid "Stylify recognised meta tags:" @@ -4141,6 +4351,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "Benutzergruppen" @@ -4160,24 +4371,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Standart Rechte" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "mitglieder" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "Benutzergruppe: %s" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Mitglieder" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "Benutzergruppe: %s" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4202,10 +4414,6 @@ msgid "User Groups Administration" msgstr "Benutzergruppenverwaltung" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "Benutzergruppen" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Benutzer hinzufügen" @@ -4231,11 +4439,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "Standardrechte" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4245,7 +4449,7 @@ msgstr "Benutzer: %s" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4255,11 +4459,11 @@ msgstr "Letzter Login" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "Mitglieder der Benutzergruppe" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4281,18 +4485,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4313,47 +4510,55 @@ msgid "Support" msgstr "Support" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Mercurial Repository" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Git Repository" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "Fork erstellen" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Zusammenfassung" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Dateien" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Optionen" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "Fork vergleichen" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4363,129 +4568,125 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 -#: kallithea/templates/forks/fork.html:9 -msgid "Fork" +msgid "Follow" msgstr "" #: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 +#: kallithea/templates/forks/fork.html:9 +msgid "Fork" +msgstr "" + +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Logbuch" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Öffentliches Logbuch" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "Meine Pull Requests" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "Nicht eingeloggt" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Passwort vergessen?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "Keine Übereinstimmungen gefunden" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Repositorystandards" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4513,7 +4714,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4539,7 +4741,7 @@ msgstr "Einen weiteren Kommentar hinzufügen" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "" @@ -4609,6 +4811,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "Widerruf der Rechte für {0}: {1} bestätigen?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "Aktiviert" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "Deaktiviert" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "Changeset angeben" @@ -4638,6 +4848,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4666,10 +4877,6 @@ msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4686,7 +4893,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4699,7 +4906,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4709,7 +4916,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4742,7 +4949,7 @@ msgid "Branch %s" msgstr "Branch %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Bisher gibt es keine Änderungen" @@ -4758,7 +4965,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4788,21 +4995,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "private repository" +msgid "Push new repository" +msgstr "privates Repository" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4812,15 +5021,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4843,7 +5052,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4854,144 +5063,159 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "Erstellt von" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "Erstellt von" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "Statusänderung durch Pull Request" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "revisionen" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "Kommentar von Pull Request" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 msgid "No title" msgstr "Kein Titel" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "Kommentar von Pull Request" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy, python-format +#| msgid "%s changesets" +msgid "on this changeset" +msgstr "%s Changesets" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 msgid "Delete comment?" msgstr "Kommentar löschen?" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Letzte Änderungen" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "Kommentarvorschau" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "Kommentarvorschau" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Kommentar" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "Vorschau" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "Vorschau" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d Kommentar" msgstr[1] "%d Kommentare" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "%d inline" msgstr[1] "%d inline" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "%d generell" msgstr[1] "%d generell" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 msgid "Set changeset status" msgstr "Setze Changesetstatus" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "Keine Änderungen" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "Schließen" @@ -5010,7 +5234,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -5019,11 +5243,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "Gelöscht" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "Umbenannt" @@ -5035,29 +5259,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, python-format msgid "%s changesets" msgstr "%s Changesets" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "zurück" @@ -5081,56 +5317,43 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Mercurial Repository" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Git Repository" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Öffenentliches Repository" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "Abonniere den %s RSS Feed" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "Abonniere den %s ATOM Feed" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5259,10 +5482,6 @@ msgid "Commit Changes" msgstr "Änderungen einchecken" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5288,18 +5507,14 @@ msgstr "Größe" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "MIME-Type" +msgid "Last Revision" +msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "" +msgid "Last Modified" +msgstr "Zuletzt geändert" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "Zuletzt geändert" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5411,8 +5626,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5463,8 +5678,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5472,7 +5687,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "" @@ -5485,18 +5700,13 @@ msgstr "RSS Logbuch Feed" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" +msgid "My Repositories" msgstr "Meine Repositories" -#: kallithea/templates/journal/journal_data.html:61 +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Öffentliches Logbuch" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "ATOM Feed für das Öffentliche Logbuch" @@ -5538,20 +5748,16 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "Pull Request Reviewers" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "entziehen" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5560,50 +5766,50 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "Letzte Stimmabgabe: %s" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "Pull Request löschen" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "Pull Request löschen" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Löschen der Gruppe bestätigen: %s mit %s Repository" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" -msgstr "" +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "%s Pull Request %s" +msgstr "Pull Request #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 -#, python-format -msgid "Pull request #%s from %s#%s" +#, fuzzy, python-format +#| msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "Pull Request #%s von %s#%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5619,86 +5825,86 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "Es gibt keine Reviewers" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "in" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "Erstellt von" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "Aktualisierung" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "Pull Request Reviewers" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 msgid "Remove reviewer" msgstr "Reviewer entfernen" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 msgid "Potential Reviewers" msgstr "Potentielle Reviewer" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "Als neuen Pull Request speichern" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "Änderungen verwerfen" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "Inhalt des Pull Requests" @@ -5799,8 +6005,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5808,45 +6014,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 -msgid "commits" -msgstr "" - #: kallithea/templates/summary/statistics.html:390 -msgid "files added" +msgid "commits" msgstr "" #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" +msgid "files added" msgstr "" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "" -#: kallithea/templates/summary/statistics.html:394 -msgid "commit" -msgstr "" - #: kallithea/templates/summary/statistics.html:395 -msgid "file added" +msgid "commit" msgstr "" #: kallithea/templates/summary/statistics.html:396 -msgid "file changed" +msgid "file added" msgstr "" #: kallithea/templates/summary/statistics.html:397 +msgid "file changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "" @@ -5868,65 +6074,73 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Clone von" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" +msgstr "Clone-URL" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "Letzte Änderungen" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "Schnelleinstieg" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" @@ -5939,3 +6153,288 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "Tags vergleichen" + +#~ msgid "No comments." +#~ msgstr "Keine Kommentare." + +#~ msgid "public journal" +#~ msgstr "Öffentliches Logbuch" + +#~ msgid "journal" +#~ msgstr "Logbuch" + +#~ msgid "Locked repository" +#~ msgstr "Gesperrtes Repositorium" + +#~ msgid "Unlocked repository" +#~ msgstr "Entsperrtes Repositorium" + +#~ msgid "Unlocked" +#~ msgstr "Entsperrt" + +#~ msgid "Locked" +#~ msgstr "Gesperrt" + +#~ msgid "Repository has been %s" +#~ msgstr "Repositorium wurde %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Sie können diesen Benutzer nicht editieren" + +#~ msgid "No Files" +#~ msgstr "Keine Dateien" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "Benutzername \"%(username)s\" ist verboten" + +#~ msgid "invalid user name" +#~ msgstr "Ungültiger Benutzername" + +#~ msgid "Your account is disabled" +#~ msgstr "Ihr Account wurde Deaktiviert" + +#~ msgid "invalid clone URL" +#~ msgstr "ungültige Clone-URL" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" +#~ "Ungültige Clone-URL, gültige Clone-URL" +#~ " (http(s)/svn+http(s)/ssh) angeben" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" +#~ "Die Revisionen %(revs)s sind bereits " +#~ "Bestandteil des Pull Requests oder haben" +#~ " den Status" + +#~ msgid "Defaults" +#~ msgstr "Voreinstellungen" + +#~ msgid "My Emails" +#~ msgstr "Meine E-Mails" + +#~ msgid "Watched" +#~ msgstr "Beobachtet" + +#~ msgid "My Permissions" +#~ msgstr "Meine Erlaubnisse" + +#~ msgid "expires" +#~ msgstr "verfällt" + +#~ msgid "reset" +#~ msgstr "Zurücksetzen" + +#~ msgid "delete" +#~ msgstr "löschen" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Rechteverwaltung" + +#~ msgid "Overview" +#~ msgstr "Übersicht" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Bestehende Einstellungen überschreiben" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "Standardmäßige IP Whitelist für alle Benutzer" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Übersicht der Standardbenutzerrechte" + +#~ msgid "none" +#~ msgstr "keine" + +#~ msgid "read" +#~ msgstr "lesen" + +#~ msgid "write" +#~ msgstr "schreiben" + +#~ msgid "admin" +#~ msgstr "admin" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "Optionale http[s] URL, von welcher das Repository geclont werden soll." + +#~ msgid "Remote URL" +#~ msgstr "Remote URL" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Änderungen von entferntem Ort übertragen" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "bearbeiten" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "E-Mail-Präfix" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "SMTP-Server" + +#~ msgid "SMTP username" +#~ msgstr "SMTP-Benutzername" + +#~ msgid "SMTP password" +#~ msgstr "SMTP-Passwort" + +#~ msgid "SMTP port" +#~ msgstr "SMTP-Port" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Standart Rechte" + +#~ msgid "user groups" +#~ msgstr "Benutzergruppen" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "merge" +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Statusänderung durch Pull Request" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "MIME-Type" + +#~ msgid "My Repos" +#~ msgstr "Meine Repositories" + +#~ msgid "Latest vote: %s" +#~ msgstr "Letzte Stimmabgabe: %s" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/en/LC_MESSAGES/kallithea.mo Binary file kallithea/i18n/en/LC_MESSAGES/kallithea.mo has changed diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/fr/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/fr/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/fr/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,11 +5,11 @@ # FIRST AUTHOR , 2011 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" -"PO-Revision-Date: 2015-05-11 23:05+0200\n" -"Last-Translator: David Avigni \n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" +"PO-Revision-Date: 2015-07-20 11:32+0200\n" +"Last-Translator: Étienne Gilli \n" "Language-Team: French " "\n" "Language: fr\n" @@ -17,22 +17,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 2.3-dev\n" +"X-Generator: Weblate 2.4-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Il n’y a aucun changement pour le moment" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Aucun" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(fermé)" @@ -46,21 +50,17 @@ msgstr "Ignorer les espaces et tabulations" #: kallithea/controllers/changeset.py:169 -#, python-format -msgid "increase diff context to %(num)s lines" +#, fuzzy, python-format +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "augmenter le contexte du diff à %(num)s lignes" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Une telle révision n'existe pas pour ce dépôt" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Aucun commentaire." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" @@ -68,33 +68,43 @@ "La modification de l'état sur un ensemble de modifications associé à une " "demande de tirage fermé n'est pas autorisé" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "Sélectionner le changeset" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" -msgstr "" - -#: kallithea/controllers/error.py:96 +msgstr "Impossible de comparer des dépôts sans utiliser un ancêtre commun" + +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "révisions" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" "Le serveur n’a pas pu interpréter la requête à cause d’une erreur de " "syntaxe." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Accès interdit à cette ressource" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "Vous n’avez pas la permission de voir cette page" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "Ressource introuvable" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -112,17 +122,17 @@ msgid "%s %s feed" msgstr "Flux %s de %s" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "Cet ensemble de changements était trop important et a été découpé…" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s a commité, le %s" @@ -171,6 +181,8 @@ #: kallithea/controllers/files.py:378 msgid "You can only edit files with revision being a valid branch " msgstr "" +"Vous pouvez modifier uniquement les fichiers dont la révision est dans " +"une branche valide " #: kallithea/controllers/files.py:392 #, python-format @@ -204,45 +216,43 @@ "Le chemin doit être un chemin relatif et ne doit pas contenir .. dans le " "chemin" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Les téléchargements sont désactivés" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Révision %s inconnue" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Dépôt vide" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Type d’archive inconnu" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Changesets" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Branches" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Tags" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Une erreur est survenue durant le fork du dépôt %s" @@ -258,9 +268,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Dépôts" @@ -280,26 +290,33 @@ msgstr "Signet" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "Journal public" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "Journal" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "Historique" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "mauvais captcha" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Vous vous êtes inscrits avec succès à Kallithea" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "Un lien de rénitialisation de votre mot de passe vous a été envoyé" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" @@ -307,120 +324,135 @@ "Votre mot de passe a été réinitialisé. Votre nouveau mot de passe vous a " "été envoyé par e-mail" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (fermé)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Changements" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Spécial" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "Branches appairées" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Signets" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "Erreur de création de la demande de pull : %s" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "Aucune description" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "La requête de pull a été ouverte avec succès" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "Une erreur est survenue durant la création de la pull request" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "Changeset manquant depuis la précédente pull request :" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "Nouveau changeset sur %s %s depuis la précédente pull request :" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" - -#: kallithea/controllers/pullrequests.py:419 +"L'ancêtre n'a pas changé - montrer les différences avec la version " +"précédente :" + +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" - -#: kallithea/controllers/pullrequests.py:421 +"Cette demande de pull est basée sur une autre révision %s et il n'y a pas" +" de diff simple." + +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "Aucun changement constaté sur %s %s depuis la version précédente." -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "Fermé, remplacé par %s." -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "Mise à jour de la pull request créée" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "Pull request mise à jour" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "La requête de pull a été supprimée avec succès" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "Cette pull request a déjà été fusionnée à %s." -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "Cette pull request a été fermée et ne peut pas être mise à jour." -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" -msgstr "" - -#: kallithea/controllers/pullrequests.py:600 +msgstr "Cette demande de pull peut être mise à jour avec les modifications de %s :" + +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "Fermeture." @@ -438,21 +470,21 @@ msgid "An error occurred during search operation." msgstr "Une erreur est survenue pendant la recherche." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "Aucune donnée actuellement disponible" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "La mise à jour des statistiques est désactivée pour ce dépôt" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "Mise à jour des paramètres d'authentification effectuée avec succès" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" "une erreur est survenue pendant la mise à jour des réglages " @@ -467,38 +499,40 @@ msgstr "Une erreur est survenue durant la mise à jour des réglages par défaut" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "pour toujours" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 minute" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 heure" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 jour" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 mois" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "Toujours" @@ -512,7 +546,9 @@ msgstr "Gist %s supprimé" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +#, fuzzy +#| msgid "unmodified" +msgid "Unmodified" msgstr "non modifié" #: kallithea/controllers/admin/gists.py:262 @@ -528,121 +564,137 @@ msgid "Error occurred during update of gist %s" msgstr "Une erreur est survenue durant la mise à jour du gist %s" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon" " fonctionnement de l’application" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Votre compte a été mis à jour avec succès" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "Une erreur est survenue durant la mise à jour de l'utilisateur %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Mot de passe mis à jour avec succès" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" "Une erreur est survenue durant la mise à jour du mot de passe de " "l'utilisateur" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "L’e-mail « %s » a été ajouté à l’utilisateur" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Une erreur est survenue durant l’enregistrement de l’e-mail" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "L’e-mail a été enlevé de l’utilisateur" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" msgstr "Clé d'API créée avec succès" -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" msgstr "Clé d'API remise à zéro avec succès" -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" msgstr "Clé d'API supprimée avec succès" +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Lire" + #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Lire" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Écrire" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Écrire" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Administration" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Interdite" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Autorisé avec activation de compte manuelle" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Autorisé avec activation de compte automatique" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -650,11 +702,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Activation manuelle du compte externe" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -662,223 +714,214 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Activation automatique du compte externe" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Autorisée" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "Permissions globales mises à jour avec succès" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Une erreur est survenue durant la mise à jour des permissions" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Une erreur est survenue durant la création du groupe de dépôts %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Groupe de dépôts %s créé" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Une erreur est survenue durant la création du groupe de dépôts %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Groupe de dépôts %s mis à jour" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Une erreur est survenue durant la mise à jour du groupe de dépôts %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Ce groupe contient %s dépôts et ne peut être supprimé" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Ce groupe contient %s sous-groupes et ne peut pas être supprimé" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Groupe de dépôts %s supprimé" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Une erreur est survenue durant la suppression du groupe de dépôts %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Impossible de révoquer votre permission d'administrateur" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Permissions du groupe de dépôts mises à jour" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Une erreur est survenue durant la révocation de la permission" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Erreur de création du dépôt %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "Dépôt %s créé depuis %s" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "dépôt %s forké en tant que %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Dépôt %s créé" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Dépôt %s mis à jour avec succès" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Une erreur est survenue durant la mise à jour du dépôt %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "%s forks détachés" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "%s forks supprimés" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Dépôt %s supprimé" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "Impossible de supprimer le dépôt %s : Des forks y sont attachés" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Erreur pendant la suppression de %s" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Permissions du dépôt mises à jour" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Une erreur est survenue durant la création du champ" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Une erreur est survenue durant la suppression du champ" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- Pas un fork --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "La visibilité du dépôt dans le journal public a été mise à jour" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" "Une erreur est survenue durant la configuration du journal public pour ce" " dépôt" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Jeton d’authentification incorrect" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "[Aucun dépôt]" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Le dépôt %s a été marké comme fork de %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Une erreur est survenue durant cette opération" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "Dépôt verrouillé" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "Dépôt non verrouillé" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "Ce dépôt n’est pas verrouillé" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "Ce dépôt n’est pas verrouillé" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Une erreur est survenue durant le déverrouillage" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Non verrouillé" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Verrouillé" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "Invalidation du cache réalisée avec succès" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Une erreur est survenue durant l’invalidation du cache" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Les changements distants ont été récupérés" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "Le dépôt a été %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "Invalidation du cache réalisée avec succès" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Une erreur est survenue durant l’invalidation du cache" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Les changements distants ont été récupérés" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "Une erreur est survenue durant le pull depuis la source distante" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt" @@ -896,7 +939,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" "Une erreur est survenue durant la mise à jour des réglages de " "l'application" @@ -977,83 +1020,82 @@ msgstr "Le groupe cible ne peut pas être le même" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Permissions du groupe d'utilisateurs mises à jour" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Permissions mises à jour" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Une erreur est survenue durant l’enregistrement des permissions" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Utilisateur %s créé" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Une erreur est survenue durant la création de l'utilisateur %s" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "L’utilisateur a été mis à jour avec succès" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Utilisateur supprimé avec succès" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Une erreur est survenue durant la suppression de l’utilisateur" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Vous ne pouvez pas éditer cet utilisateur" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "L'adresse IP %s a été ajoutée à la liste blanche" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Une erreur est survenue durant la sauvegarde d'IP" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "L'adresse IP a été supprimée de la liste blanche" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IP %s non autorisée" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +#, fuzzy +#| msgid "New api key" +msgid "Invalid API key" +msgstr "Nouvelle clé d'API" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "Vous devez être un utilisateur enregistré pour effectuer cette action" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Vous devez être connecté pour visualiser cette page" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Ensemble de changements non trouvé" @@ -1071,158 +1113,164 @@ msgid "No changes detected" msgstr "Aucun changement détecté" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Branche supprimée : %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Étiquette créée : %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Afficher les changements combinés %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "vue de comparaison" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "et" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s de plus" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "révisions" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "nom du fork %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "Requête de pull #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[a supprimé] le dépôt" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[a créé] le dépôt" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[a créé] le dépôt en tant que fork" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[a forké] le dépôt" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[a mis à jour] le dépôt" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "[téléchargée] archive depuis le dépôt" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[a supprimé] le dépôt" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "[a créé] l’utilisateur" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "[a mis à jour] l’utilisateur" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "[créé] groupe d'utilisateurs" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "[mis à jour] groupe d'utilisateurs" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[a commenté] une révision du dépôt" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[a commenté] la requête de pull pour" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[a fermé] la requête de pull de" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[a pushé] dans" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[a commité via Kallithea] dans le dépôt" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[a pullé depuis un site distant] dans le dépôt" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[a pullé] depuis" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[suit maintenant] le dépôt" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[ne suit plus] le dépôt" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " et %s de plus" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Aucun fichier" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "nouveau fichier" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "mod" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "suppr." -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "renommer" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1233,69 +1281,69 @@ "probablement été créé ou renommé manuellement. Veuillez relancer " "l’application pour rescanner les dépôts" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d an" msgstr[1] "%d ans" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d mois" msgstr[1] "%d mois" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d jour" msgstr[1] "%d jours" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d heure" msgstr[1] "%d heures" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minute" msgstr[1] "%d minutes" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d seconde" msgstr[1] "%d secondes" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "dans %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "Il y a %s" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "dans %s et %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "Il y a %s et %s" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "à l’instant" @@ -1310,7 +1358,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Aucun accès au dépôt" @@ -1325,7 +1373,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Accès en lecture au dépôt" @@ -1340,7 +1388,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Accès en écriture au dépôt" @@ -1355,7 +1403,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Accès administrateur au dépôt" @@ -1394,7 +1442,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Administrateur Kallithea" @@ -1409,7 +1457,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Création de dépôt désactivée" @@ -1424,7 +1472,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Création de dépôt activée" @@ -1439,7 +1487,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Fork de dépôt désactivé" @@ -1454,7 +1502,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Fork de dépôt activé" @@ -1490,7 +1538,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Pas encore relue" @@ -1505,7 +1553,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Approuvée" @@ -1520,7 +1568,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Rejetée" @@ -1535,7 +1583,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "En cours de relecture" @@ -1547,7 +1595,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "niveau supérieur" @@ -1559,7 +1607,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Groupe de dépôts, pas d'accès" @@ -1571,7 +1619,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Groupe de dépôts, accès en lecture" @@ -1583,7 +1631,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Groupe de dépôts, accès en écriture" @@ -1595,7 +1643,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Groupe de dépôts, accès d'administration" @@ -1606,7 +1654,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Groupe d'utilisateurs, pas d'accès" @@ -1617,7 +1665,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Groupe d'utilisateurs, accès en lecture" @@ -1628,7 +1676,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Groupe d'utilisateurs, accès en écriture" @@ -1639,7 +1687,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Groupe d'utilisateurs, accès d'administration" @@ -1650,7 +1698,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Création de groupes de dépôts désactivée" @@ -1661,7 +1709,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Création de groupes de dépôts activée" @@ -1672,7 +1720,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Création de groupes d'utilisateurs désactivée" @@ -1683,7 +1731,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Création de groupes d'utilisateurs activée" @@ -1694,7 +1742,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Enregistrement désactivé" @@ -1705,7 +1753,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Enregistrement des utilisateurs avec activation de compte manuelle" @@ -1716,33 +1764,157 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Enregistrement des utilisateurs avec activation de compte automatique" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" "Création de dépôts activée avec l'accès en écriture vers un groupe de " "dépôts" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" "Création de dépôts désactivée avec l'accès en écriture vers un groupe de " "dépôts" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "à la ligne %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Mention]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Accès interdit à cette ressource" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Accès interdit à cette ressource" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Groupe de dépôts %s créé" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Groupe de dépôts %s créé" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "[created] user group" +msgid "Only admins can create user groups" +msgstr "[créé] groupe d'utilisateurs" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "[created] user group" +msgid "Non-admins can create user groups" +msgstr "[créé] groupe d'utilisateurs" + +#: kallithea/model/db.py:1688 +#, fuzzy +#| msgid "Top level repositories" +msgid "Only admins can create top level repositories" +msgstr "Dépôts de niveau supérieur" + +#: kallithea/model/db.py:1689 +#, fuzzy +#| msgid "Top level repositories" +msgid "Non-admins can create top level repositories" +msgstr "Dépôts de niveau supérieur" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Dépôts totaux" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "Invalider le cache pour tous les dépôts" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Enregistrement des utilisateurs avec activation de compte manuelle" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Enregistrement des utilisateurs avec activation de compte automatique" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Pas encore relue" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "En cours de relecture" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Veuillez entrer un identifiant" @@ -1761,116 +1933,149 @@ msgid "Enter %(min)i characters or more" msgstr "Entrez au moins %(min)i caractères" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "Le nom ne doit pas contenir seulement des chiffres" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s a commenté sur le changeset à %(when)s" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s a envoyé un message à %(when)s" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s vous a mentionné à %(when)s" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s s'est enregistré sur Kallithea à %(when)s" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s a ouvert une nouvelle demande de pull à %(when)s" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s a commenté la demande de pull à %(when)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s a commenté sur le changeset à %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s a envoyé un message à %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s vous a mentionné à %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s s'est enregistré sur Kallithea à %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s a ouvert une nouvelle demande de pull à %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s a commenté la demande de pull à %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "Nouvel utilisateur %(new_username)s enregistré" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "Nouvel utilisateur %(new_username)s enregistré" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "Fermeture" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "" "%(user)s veut que vous regardiez la demande de pull #%(pr_id)s : " "%(pr_title)s" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "Dernier sommet" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "Nouveau enregistrement d'utilisateur" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon" -" fonctionnement de l’application" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "" "Vous ne pouvez pas supprimer cet utilisateur ; il est nécessaire pour le " "bon fonctionnement de l’application" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -"L’utilisateur \"%s\" possède %s dépôts et ne peut être supprimé. Changez les " -"propriétaires ou supprimez ces dépôts : %s" - -#: kallithea/model/user.py:268 +"L’utilisateur \"%s\" possède %s dépôts et ne peut être supprimé. Changez " +"les propriétaires ou supprimez ces dépôts : %s" + +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -"L’utilisateur \"%s\" possède %s groupes de dépôt et ne peut être supprimé. " -"Changez les propriétaires ou supprimez ces dépôts : %s" - -#: kallithea/model/user.py:275 +"L’utilisateur \"%s\" possède %s groupes de dépôt et ne peut être " +"supprimé. Changez les propriétaires ou supprimez ces dépôts : %s" + +#: kallithea/model/user.py:266 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " @@ -1879,61 +2084,66 @@ "L’utilisateur « %s » possède %s dépôts et ne peut être supprimé. Changez " "les propriétaires de ces dépôts. %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "Lien de remise à zéro du mot de passe" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Votre nouveau mot de passe" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Votre nouveau mot de passe Kallithea : %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "Cette valeur ne peut être une liste vide" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "Le nom d’utilisateur « %(username)s » existe déjà" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "Le nom d’utilisateur « %(username)s » n’est pas autorisé" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "Le nom d’utilisateur « %(username)s » n’est pas valide" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Le pseudonyme ne peut contenir que des caractères alphanumériques, des " "tirets, points, traits d'union et doit commencer avec un caractère " "alphanumérique ou un trait d'union" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "L'entrée n'est pas valide" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "Le nom d’utilisateur « %(username)s » n’est pas valide" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Nom de groupe d'utilisateurs invalide" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "Le groupe d'utilisateurs « %(usergroup)s » existe déjà" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1942,108 +2152,112 @@ "alphanumériques, des tirets, des points, des traits d'union et doit " "commencer avec un caractère alphanumérique" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Impossible d’assigner ce groupe en tant que parent" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "Le groupe « %(group_name)s » existe déjà" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Un dépôt portant le nom « %(group_name)s » existe déjà" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Caractères incorrects (non-ASCII) dans le mot de passe" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "Ancien mot de passe invalide" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Les mots de passe ne correspondent pas" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "mot de passe invalide" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "nom d’utilisateur invalide" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Votre compte est désactivé" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Jeton d’authentification incorrect" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "Le nom de dépôt « %(repo)s » n’est pas autorisé" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Un dépôt portant le nom « %(repo)s » existe déjà" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "Le dépôt « %(repo)s » existe déjà dans le groupe « %(group)s »" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Un groupe de dépôts avec le nom « %(repo)s » existe déjà" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "URL de clonage invalide" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" -"URL à cloner invalide, veuillez fournir une URL à cloner valide " -"http(s)/svn+http(s)/ssh" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "Dépôt privé" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "Le fork doit être du même type que le parent" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "Vous n’avez pas la permission de créer un dépôt dans ce" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "pas de permission de créer un dépôt dans la racine" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "Vous n'avez pas les permissions pour créer un groupe dans cet endroit" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Ce nom d'utilisateur ou nom de groupe d'utilisateurs n'est pas valide" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "Ceci n’est pas un chemin valide" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "Cette adresse e-mail est déjà enregistrée" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "L’adresse e-mail « %(email)s » n’existe pas." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" @@ -2051,33 +2265,26 @@ "L’attribut Login du CN doit être spécifié. Cet attribut correspond au nom" " d’utilisateur" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" -"Les révisions %(revs)s font déjà partie de la requête de pull ou on des " -"statuts définis" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" msgstr "Veuillez entrer une adresse IPv4 ou IPv6 valide" -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "La taille du réseau (bits) doit être entre 0 et 32 (et non %(bits)r)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" "Le nom de la clé ne peut consister que de letters, de traits d'union, de " "tirets ou de nombres" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "Le nom du fichier ne peut être à l'intérieur d'un répertoire" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2141,13 +2348,13 @@ msgstr "Nom du groupe" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2159,11 +2366,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Description" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2184,11 +2391,11 @@ msgid "Name" msgstr "Nom" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Dernière modification" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2197,18 +2404,19 @@ msgid "Tip" msgstr "Sommet" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Propriétaire" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2220,7 +2428,7 @@ msgid "Click to sort ascending" msgstr "Tri ascendant" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2232,11 +2440,11 @@ msgid "Click to sort descending" msgstr "Tri descendant" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Pas de dépôts trouvés." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2248,10 +2456,10 @@ msgid "Data error." msgstr "Erreur d’intégrité des données." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2261,7 +2469,7 @@ msgstr "Chargement…" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Connexion" @@ -2270,39 +2478,39 @@ msgid "Log In to %s" msgstr "Se connecter à %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Nom d’utilisateur" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Mot de passe" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Se souvenir de moi" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Mot de passe oublié ?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Vous n’avez pas de compte ?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Connexion" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Mot de passe oublié ?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Vous n’avez pas de compte ?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Remettre le mot de passe à zéro" @@ -2334,8 +2542,8 @@ "Password reset link will be sent to the email address matching your " "username." msgstr "" -"Le lien de réinitialisation du mot de passe sera envoyé à l'adresse e-mail " -"correspondant à votre nom d'utilisateur." +"Le lien de réinitialisation du mot de passe sera envoyé à l'adresse " +"e-mail correspondant à votre nom d'utilisateur." #: kallithea/templates/register.html:5 kallithea/templates/register.html:14 #: kallithea/templates/register.html:90 @@ -2352,26 +2560,26 @@ msgstr "Confirmation" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Prénom" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Nom" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-mail" @@ -2479,9 +2687,12 @@ msgstr "Greffons activés" #: kallithea/templates/admin/auth/auth_settings.html:33 +#, fuzzy +#| msgid "" "Comma separated list of plugins. Order of plugins is also order in +#| which " "Kallithea will try to authenticate user" msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" "Une liste séparée avec des virgules des greffons. L'ordre des greffons " "est aussi celui dans lequel Kallithea va essayer d'authentifier un " @@ -2491,66 +2702,52 @@ msgid "Available built-in plugins" msgstr "Greffons inclus disponibles" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "activé" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "désactivé" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "Greffon" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Enregistrer" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "Réglages par défaut du dépôt" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "Par défaut" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +msgid "Repository Defaults" +msgstr "Réglages par défaut du dépôt" + +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Type" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Dépôt privé" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " @@ -2559,34 +2756,34 @@ "Les dépôts privés sont visibles seulement par les utilisateurs ajoutés " "comme collaborateurs." -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Activer les statistiques" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Afficher les statistiques sur la page du dépôt." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Activer les téléchargements" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Afficher le menu de téléchargements sur la page du dépôt." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Activer le verrouillage" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "Activer le verrouillage lors d’un pull sur le dépôt." @@ -2620,6 +2817,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Expire le" @@ -2630,7 +2833,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "jamais" #: kallithea/templates/admin/gists/edit.html:145 @@ -2638,7 +2843,7 @@ msgstr "Mettre à jour le gist" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Annuler" @@ -2661,12 +2866,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "Créer un nouveau gist" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Créé" @@ -2692,25 +2897,27 @@ msgstr "Créer un gist public" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2740,11 +2947,22 @@ msgstr "Gist privé" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Supprimer" @@ -2753,9 +2971,18 @@ msgstr "Confirmer la supprisson de ce gist" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2781,7 +3008,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Mon compte" @@ -2790,83 +3017,90 @@ msgid "Profile" msgstr "Profil" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "Clés de l'API" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Nouvelle adrese" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "Mes e-mails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" +msgstr "Clés de l'API" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "Mes dépôts" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "Dépôts" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Surveillé" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "Création de dépôts" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" -msgstr "Mes permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Copier les permissions" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "Inclus" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "expire le" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to reset this api key: %s" +msgid "Confirm to reset this API key: %s" msgstr "Confirmer la remise à zéro de cette clé d'API : %s" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "remis à zéro" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +#, fuzzy +#| msgid "expired" +msgid "Expired" msgstr "a expiré" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "Confirmer la suppression de cette clé d'API : %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +#, fuzzy +#| msgid "remove" +msgid "Remove" msgstr "supprimer" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +#, fuzzy +#| msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "Pas de clés d'API supplémentaires spécifiées" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +#, fuzzy +#| msgid "New api key" +msgid "New API key" msgstr "Nouvelle clé d'API" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2879,19 +3113,6 @@ msgid "Primary" msgstr "Primaire" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "Supprimer" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2912,19 +3133,24 @@ msgid "Change Your Account Password" msgstr "Changer le mot de passe de votre compte" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "Mot de passe actuel" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Nouveau mot de passe" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "Vous pouvez changer votre avatar sur" @@ -2945,15 +3171,11 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" +#, fuzzy +#| msgid "current IP" +msgid "Current IP" msgstr "adresse IP actuelle" -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_repos.html:1 msgid "Repositories You Own" msgstr "Dépôts dont vous êtes le propriétaire" @@ -2987,7 +3209,7 @@ msgstr "Commentaires" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Demandes de pull" @@ -3005,21 +3227,16 @@ msgstr "Montrer Notification" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Notifications" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "Administration des permissions" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Permissions" +#, fuzzy +msgid "Default Permissions" +msgstr "Permissions par défaut" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -3027,14 +3244,10 @@ msgstr "Global" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "Liste blanche d'adresses IP" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "Vue d'ensemble" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Accès anonyme" @@ -3048,23 +3261,27 @@ "Autoriser l'accès à Kallithea sans le besoin de se connecter. Les " "utilisateurs anonymes ont les permissions de %s" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repositories" +msgstr "Importer un dépôt existant ?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Écraser les paramètres existants" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Groupe de dépôt" @@ -3076,75 +3293,105 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repository groups" +msgstr "Importer un dépôt existant ?" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Groupe d'utilisateurs" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Création de dépôt" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "Création de dépôts avec l'accès en écriture du groupe" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "Création de groupes d'utilisateurs" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "Fork de dépôt" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Enregistrement" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -#, fuzzy -msgid "Default IP Whitelist for All Users" -msgstr "Liste blanche d'adresses IP par défaut pour tous les utilisateurs" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "Confirmer la suppression de cette adresse IP : %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 #, fuzzy msgid "All IP addresses are allowed." msgstr "Toutes les adresses IP sont autorisées" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Nouvelle adresse IP" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "Vue d'ensemble des permissions utilisateur par défaut" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3166,12 +3413,12 @@ msgstr "Parent du groupe" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "Copier les permissions du groupe parent" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3189,19 +3436,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Options" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Avancé" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Permissions" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3222,12 +3475,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Créé le" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3238,38 +3491,12 @@ msgid "Delete this repository group" msgstr "Supprimer ce groupe de dépôts" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "Aucune" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "Lecture" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "Écriture" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "Administration" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +#, fuzzy +#| msgid "user/user group" +msgid "User/User Group" msgstr "utilisateur/groupe d'utilisateurs" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3278,7 +3505,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "[Par défaut]" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3287,14 +3516,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "Révoquer" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "administrateur délégué" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3302,7 +3528,9 @@ msgstr "Ajouter un nouveau" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "Appliquer aux enfants" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3355,45 +3583,43 @@ msgid "Number of Top-level Repositories" msgstr "Nombre de sous-dépôts" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "Importer un dépôt existant ?" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Cloner depuis" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -#, fuzzy -msgid "Optional URL from which repository should be cloned." -msgstr "URL http(s) depuis laquelle le dépôt doit être cloné." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[a créé] le dépôt" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" "Gardez cette description précise et concise. Utilisez un fichier README " "pour des descriptions plus détaillées." -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "Sélectionnez un groupe (optionel) dans lequel sera placé le dépôt." -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Type de dépôt à créer." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Révision d’arrivée" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3440,8 +3666,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Statistiques" @@ -3466,16 +3692,16 @@ msgid "Public Journal Visibility" msgstr "Journal public" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Supprimer du journal public" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "Journal public" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 #, fuzzy msgid "" "All actions done in this repository will be visible to everyone in the " @@ -3484,36 +3710,36 @@ "Le descriptif des actions réalisées sur ce dépôt sera visible à tous " "depuis le journal public" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "Activer le verrouillage" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "Veuillez confirmer le déverrouillage de ce dépôt" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "Dépôt non verrouillé" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "Veuillez confirmer le verrouillage de ce dépôt" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "Dépôt non verrouillé" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Ce dépôt n’est pas verrouillé" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3521,33 +3747,33 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Voulez-vous vraiment supprimer le dépôt %s ?" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "Supprimer ce groupe de dépôts" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3591,8 +3817,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Actif" @@ -3632,31 +3858,38 @@ msgstr "Les avatars sont désactivés" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "Dépôt privé" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -#, fuzzy -msgid "Remote URL" -msgstr "URL de clone" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Pull Changes from Remote Location" -msgstr "Récupérer les changements depuis le site distant" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Dépôt %s créé" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[a pullé depuis un site distant] dans le dépôt" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "Voulez-vous vraiment récupérer les changements depuis le site distant ?" -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "Dépôt privé" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3670,46 +3903,37 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -#, fuzzy -msgid "Clone URL" -msgstr "URL de clone" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "éditer" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[a créé] le dépôt" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Dépôt" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" "Révision par défaut pour les pages de fichiers, de téléchargements, de " "recherche et de documentation" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Changer le propriétaire de ce dépôt." @@ -3771,55 +3995,11 @@ msgid "System Info" msgstr "Informations sytème" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "Préfixe courriel" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "Formulaire de courriel Kallithea" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "Formulaire de courriel d'erreur" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "Destinataires du courriel d'erreur" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "Serveur SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "Nom d'utilisateur SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "Mot de passe SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "Port SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" -msgstr "Utiliser TLS pour SMTP" +msgid "Send test email to" +msgstr "Envoyer un courriel de test à" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "Utiliser SSL pour SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "Authentification SMTP" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "Envoyer un courriel de test à" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Envoyer" @@ -3897,13 +4077,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "Détruire les anciennes données" +msgid "Delete records of missing repositories" +msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3925,7 +4105,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3952,41 +4132,47 @@ msgstr "Version de Kallithea" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +#, fuzzy +#| msgid "check for updates" +msgid "Check for updates" msgstr "vérifier les mises à jour" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" -msgstr "Version de Python" +msgid "Kallithea configuration file" +msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 +msgid "Python version" +msgstr "Version de Python" + +#: kallithea/templates/admin/settings/settings_system.html:7 msgid "Platform" msgstr "Plateforme" -#: kallithea/templates/admin/settings/settings_system.html:7 +#: kallithea/templates/admin/settings/settings_system.html:8 #, fuzzy msgid "Git version" msgstr "Version de Git" -#: kallithea/templates/admin/settings/settings_system.html:8 +#: kallithea/templates/admin/settings/settings_system.html:9 #, fuzzy msgid "Git path" msgstr "Chemin de Git" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 #, fuzzy msgid "Note: please make sure this server can access this URL" msgstr "Note : vérifiez que le serveur peut accéder cette URL" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "Vérification des mises à jour…" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 #, fuzzy msgid "Python Packages" msgstr "Paquets Python" @@ -4150,11 +4336,11 @@ msgstr "Icônes" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "Afficher l’icône de dépôt public sur les dépôts" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "Afficher l’icône de dépôt privé sur les dépôts" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4163,7 +4349,9 @@ msgstr "Afficher l’icône de dépôt public sur les dépôts" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "Meta-tagging" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4182,6 +4370,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4201,24 +4390,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Permissions par défaut" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "Membres" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Membres" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4244,10 +4434,6 @@ msgid "User Groups Administration" msgstr "Administration des groupes de dépôts" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Ajouter un utilisateur" @@ -4273,12 +4459,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "Permissions par défaut" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4288,7 +4469,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4298,11 +4479,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "Voulez-vous vraiment supprimer l’utilisateur « %s » ?" @@ -4324,18 +4505,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "Confirmation du nouveau mot de passe" @@ -4357,49 +4531,57 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Dépôt Mercurial" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Dépôt Git" + +#: kallithea/templates/base/base.html:126 #, fuzzy msgid "Create Fork" msgstr "créé" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Résumé" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "Historique" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Fichiers" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Options" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 #, fuzzy msgid "Compare Fork" msgstr "Comparer le fork" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4409,134 +4591,130 @@ msgid "Compare" msgstr "Comparer" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "Rechercher" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +msgid "Follow" +msgstr "" + +#: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "Fork" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Historique" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Journal public" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 #, fuzzy msgid "All Public Gists" msgstr "Gists publics" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 #, fuzzy msgid "My Public Gists" msgstr "Gists publics" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 #, fuzzy msgid "My Private Gists" msgstr "Gist privé" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 #, fuzzy msgid "My Pull Requests" msgstr "Requêtes de pull" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 #, fuzzy msgid "Login to Your Account" msgstr "Connexion à votre compte" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Mot de passe oublié ?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "Se déconnecter" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Réglages par défaut du dépôt" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4564,8 +4742,9 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "Afficher" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4591,7 +4770,7 @@ msgstr "%d commentaire" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "Arrêter de suivre ce dépôt" @@ -4650,14 +4829,12 @@ #: kallithea/templates/base/root.html:36 #: kallithea/templates/changeset/diff_block.html:8 -#, fuzzy msgid "Collapse Diff" -msgstr "Diff de fichier" +msgstr "Replier le Diff" #: kallithea/templates/base/root.html:37 -#, fuzzy msgid "Expand Diff" -msgstr "Diff de fichier" +msgstr "Déplier le Diff" #: kallithea/templates/base/root.html:38 msgid "Failed to revoke permission" @@ -4668,6 +4845,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "Impossible de révoquer votre permission d'administrateur" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "activé" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "désactivé" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4698,6 +4883,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4726,10 +4912,6 @@ msgstr[0] "Affichage de %d révision sur %d" msgstr[1] "Affichage de %d révisions sur %d" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "Afficher" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4747,7 +4929,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4761,7 +4943,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4771,7 +4953,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4804,7 +4986,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Il n’y a aucun changement pour le moment" @@ -4820,7 +5002,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4850,21 +5032,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Ajouter ou téléverser des fichiers directement via Kallithea" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "Pusher le nouveau dépôt" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "Le dépôt existe déjà ?" @@ -4874,15 +5058,15 @@ msgstr "Changeset de %s" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "Statut du changeset" @@ -4905,7 +5089,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "Fusion" #: kallithea/templates/changeset/changeset.html:123 @@ -4917,159 +5103,173 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "créé" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "créé" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -#, fuzzy -msgid "Status change from pull request" -msgstr "Changement de statut -> %s" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "révisions" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "[a commenté] la requête de pull pour" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 #, fuzzy msgid "No title" msgstr "nouveau fichier" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -#, fuzzy -msgid "Comment from pull request" -msgstr "[a commenté] la requête de pull pour" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "Aucun changeset" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "%d commentaire" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "fichiers modifiés" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "Commentaire sur la ligne {1}." -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, 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." -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 #, fuzzy msgid "Use @username inside this text to notify another user" msgstr "" "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à " "l’utilisateur Kallithea en question" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 #, fuzzy msgid "Submitting ..." msgstr "Envoi…" -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Commentaire" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "Vous devez être connecté pour poster des commentaires." -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "Se connecter maintenant" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "Masquer" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d commentaire" msgstr[1] "%d commentaires" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "(et %d en ligne)" msgstr[1] "(et %d en ligne)" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -#, fuzzy -msgid "Use @username inside this text to send notification to another local user." +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "" "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à " "l’utilisateur Kallithea en question" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Statut du changeset" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "Aucun changement" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(fermé)" @@ -5089,7 +5289,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -5098,12 +5298,12 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "Supprimer" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "renommer" @@ -5114,32 +5314,44 @@ #: kallithea/templates/compare/compare_cs.html:8 msgid "Ancestor" -msgstr "" - -#: kallithea/templates/compare/compare_cs.html:61 +msgstr "Ancêtre" + +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" -msgstr "" - -#: kallithea/templates/compare/compare_cs.html:75 +msgstr "Ancêtre commun" + +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" -msgstr "" - -#: kallithea/templates/compare/compare_cs.html:83 +msgstr "Aucun ancêtre commun trouvé - les dépôts n'ont aucun lien entre eux" + +#: kallithea/templates/compare/compare_cs.html:98 #, fuzzy msgid "is" msgstr "Gist" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "Changesets de %s" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "Mettre à jour l’index" @@ -5164,56 +5376,43 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Dépôt Mercurial" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Dépôt Git" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Dépôt public" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "Dépôt vide" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "S’abonner au flux RSS de %s" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "S’abonner au flux ATOM de %s" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5340,10 +5539,6 @@ msgid "Commit Changes" msgstr "Commiter les changements" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5369,19 +5564,15 @@ msgstr "Taille" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Type MIME" +msgid "Last Revision" +msgstr "Dernière révision" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "Dernière révision" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "Dernière modification" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "Dernier commiteur" @@ -5494,8 +5685,8 @@ msgstr "Followers de %s" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "Followers" @@ -5549,8 +5740,8 @@ msgstr "Forks de %s" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "Forks" @@ -5558,7 +5749,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "Il n’y a pas encore de forks" @@ -5571,19 +5762,13 @@ msgstr "Flux RSS du journal" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" +msgid "My Repositories" msgstr "Mes dépôts" -#: kallithea/templates/journal/journal_data.html:61 +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "Aucune entrée pour le moment" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Journal public" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "Flux ATOM du journal public" @@ -5626,22 +5811,17 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -#, fuzzy -msgid "Pull Request Reviewers" -msgstr "Relecteurs de la requête de pull" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 #, fuzzy msgid "No entries" msgstr "Aucune entrée pour le moment" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "Révoquer" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5650,52 +5830,51 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, fuzzy, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -#, fuzzy -msgid "Delete Pull Request" -msgstr "Nouvelle requête de pull" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "Veuillez confirmer la suppression de cette requête de pull" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "Fermée" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +#, fuzzy +msgid "Delete Pull Request" +msgstr "Nouvelle requête de pull" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "Veuillez confirmer la suppression de cette requête de pull" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Veuillez confirmer la suppression de cette requête de pull" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" -msgstr "" +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "%s Pull Request %s" +msgstr "Requête de pull #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, fuzzy, python-format -msgid "Pull request #%s from %s#%s" -msgstr "" +#| msgid "Pull Requests from %s'" +msgid "Pull request %s from %s#%s" +msgstr "Requête de pull #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 #, fuzzy @@ -5711,94 +5890,95 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "Pas encore relue par" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "%d relecteur" msgstr[1] "%d relecteurs" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "Aucune branche n’a été créée pour le moment" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "Aucune" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 #, fuzzy msgid "Created by" msgstr "créé" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "[a mis à jour] l’utilisateur" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "Propriétaire" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +#, fuzzy +msgid "Pull Request Reviewers" +msgstr "Relecteurs de la requête de pull" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "%d relecteur" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "%d relecteur" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "Nouvelle requête de pull" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "Sélectionner le changeset" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "Requêtes de pull" @@ -5903,8 +6083,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5912,45 +6092,45 @@ msgid "Stats gathered: " msgstr "Statistiques obtenues : " -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "Fichiers" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "commits" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "fichiers ajoutés" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "fichiers modifiés" +msgid "files added" +msgstr "fichiers ajoutés" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "fichiers modifiés" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "fichiers supprimés" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "commit" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "fichier ajouté" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "fichié modifié" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "fichier supprimé" @@ -5972,67 +6152,78 @@ msgid "Fork of" msgstr "Fork de" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "Afficher par nom" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Cloner depuis" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "URL de clone" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "Afficher par nom" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "Afficher par ID" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "Populaires" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "Téléchargements" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "Il n’y a pas encore de téléchargements proposés" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "Les téléchargements sont désactivés pour ce dépôt" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "Télécharger en ZIP" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "Télécharger une archive contenant également les sous-dépôts éventuels" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "avec les sous-dépôts" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "fichiers modifiés" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "Démarrage rapide" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "Télécharger %s comme archive %s" @@ -6046,3 +6237,309 @@ #, fuzzy msgid "Compare Tags" msgstr "vue de comparaison" + +#~ msgid "No comments." +#~ msgstr "Aucun commentaire." + +#~ msgid "public journal" +#~ msgstr "Journal public" + +#~ msgid "journal" +#~ msgstr "Journal" + +#~ msgid "Locked repository" +#~ msgstr "Dépôt verrouillé" + +#~ msgid "Unlocked repository" +#~ msgstr "Dépôt non verrouillé" + +#~ msgid "Unlocked" +#~ msgstr "Non verrouillé" + +#~ msgid "Locked" +#~ msgstr "Verrouillé" + +#~ msgid "Repository has been %s" +#~ msgstr "Le dépôt a été %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Vous ne pouvez pas éditer cet utilisateur" + +#~ msgid "No Files" +#~ msgstr "Aucun fichier" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "Le nom d’utilisateur « %(username)s » n’est pas autorisé" + +#~ msgid "invalid user name" +#~ msgstr "nom d’utilisateur invalide" + +#~ msgid "Your account is disabled" +#~ msgstr "Votre compte est désactivé" + +#~ msgid "invalid clone URL" +#~ msgstr "URL de clonage invalide" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" +#~ "URL à cloner invalide, veuillez fournir" +#~ " une URL à cloner valide " +#~ "http(s)/svn+http(s)/ssh" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" +#~ "Les révisions %(revs)s font déjà partie" +#~ " de la requête de pull ou on" +#~ " des statuts définis" + +#~ msgid "Defaults" +#~ msgstr "Par défaut" + +#~ msgid "My Emails" +#~ msgstr "Mes e-mails" + +#~ msgid "Watched" +#~ msgstr "Surveillé" + +#~ msgid "My Permissions" +#~ msgstr "Mes permissions" + +#~ msgid "expires" +#~ msgstr "expire le" + +#~ msgid "reset" +#~ msgstr "remis à zéro" + +#~ msgid "delete" +#~ msgstr "Supprimer" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Administration des permissions" + +#~ msgid "Overview" +#~ msgstr "Vue d'ensemble" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Écraser les paramètres existants" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "Liste blanche d'adresses IP par défaut pour tous les utilisateurs" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Vue d'ensemble des permissions utilisateur par défaut" + +#~ msgid "none" +#~ msgstr "Aucune" + +#~ msgid "read" +#~ msgstr "Lecture" + +#~ msgid "write" +#~ msgstr "Écriture" + +#~ msgid "admin" +#~ msgstr "Administration" + +#~ msgid "delegated admin" +#~ msgstr "administrateur délégué" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "URL http(s) depuis laquelle le dépôt doit être cloné." + +#~ msgid "Remote URL" +#~ msgstr "URL de clone" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Récupérer les changements depuis le site distant" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "éditer" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "Préfixe courriel" + +#~ msgid "Kallithea email from" +#~ msgstr "Formulaire de courriel Kallithea" + +#~ msgid "Error email from" +#~ msgstr "Formulaire de courriel d'erreur" + +#~ msgid "Error email recipients" +#~ msgstr "Destinataires du courriel d'erreur" + +#~ msgid "SMTP server" +#~ msgstr "Serveur SMTP" + +#~ msgid "SMTP username" +#~ msgstr "Nom d'utilisateur SMTP" + +#~ msgid "SMTP password" +#~ msgstr "Mot de passe SMTP" + +#~ msgid "SMTP port" +#~ msgstr "Port SMTP" + +#~ msgid "SMTP use TLS" +#~ msgstr "Utiliser TLS pour SMTP" + +#~ msgid "SMTP use SSL" +#~ msgstr "Utiliser SSL pour SMTP" + +#~ msgid "SMTP auth" +#~ msgstr "Authentification SMTP" + +#~ msgid "Destroy old data" +#~ msgstr "Détruire les anciennes données" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Permissions par défaut" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Changement de statut -> %s" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" +#~ "Utilisez @nomutilisateur dans ce texte " +#~ "pour envoyer une notification à " +#~ "l’utilisateur Kallithea en question" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "Type MIME" + +#~ msgid "My Repos" +#~ msgstr "Mes dépôts" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "Propriétaire" + +#~ msgid "reviewer" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/how_to --- a/kallithea/i18n/how_to Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/how_to Sun Sep 06 23:36:05 2015 +0200 @@ -9,6 +9,7 @@ Registered users may contribute to the existing languages, or request a new language translations. + Translating using Weblate ------------------------- @@ -26,6 +27,7 @@ format parameters, untranslated strings copied into the translation. Please perform necessary corrections when they're needed, or override the false positives. + Merging translations from Weblate --------------------------------- @@ -41,6 +43,7 @@ which case it should be manually convinced it has to discard the commits it created by using its administrative interface. + Manual creation of a new language translation --------------------------------------------- @@ -66,6 +69,7 @@ python setup.py compile_catalog -l + Updating translations --------------------- @@ -80,10 +84,11 @@ Edit the new updated translation file. Repeat all steps after `init_catalog` step from new translation instructions + Testing translations -------------------- -Edit test.ini file and set lang attribute to:: +Edit kallithea/tests/test.ini file and set lang attribute to:: lang= diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/hu/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/hu/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/hu/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,9 +5,9 @@ # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-04-11 00:59+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian " @@ -20,19 +20,23 @@ "X-Generator: Weblate 2.3-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "" @@ -47,50 +51,53 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Nincsenek hozzászólások." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +msgid "No response" +msgstr "" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 -msgid "Unauthorized access to resource" -msgstr "" - -#: kallithea/controllers/error.py:101 -msgid "You don't have permission to view this page" -msgstr "" - #: kallithea/controllers/error.py:103 -msgid "The resource could not be found" +msgid "Unauthorized access to resource" msgstr "" #: kallithea/controllers/error.py:105 +msgid "You don't have permission to view this page" +msgstr "" + +#: kallithea/controllers/error.py:107 +msgid "The resource could not be found" +msgstr "" + +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -106,17 +113,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -194,45 +201,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -248,9 +253,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "" @@ -270,145 +275,161 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "" @@ -424,21 +445,21 @@ msgid "An error occurred during search operation." msgstr "" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -451,38 +472,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -496,7 +517,7 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +msgid "Unmodified" msgstr "" #: kallithea/controllers/admin/gists.py:262 @@ -512,117 +533,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" msgstr "" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" msgstr "" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -630,11 +667,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -642,221 +679,213 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been locked" +msgstr "Ennek a tárolónak %s elágazása van" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been unlocked" +msgstr "Ennek a tárolónak %s elágazása van" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" msgstr "" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -872,7 +901,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -949,83 +978,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1041,158 +1067,160 @@ msgid "No changes detected" msgstr "" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:699 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1200,69 +1228,69 @@ "repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "" @@ -1277,7 +1305,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1292,7 +1320,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1307,7 +1335,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1322,7 +1350,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1361,7 +1389,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1376,7 +1404,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1391,7 +1419,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1406,7 +1434,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1421,7 +1449,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1457,7 +1485,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1472,7 +1500,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1487,7 +1515,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1502,7 +1530,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1514,7 +1542,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1526,7 +1554,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1538,7 +1566,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1550,7 +1578,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1562,7 +1590,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1573,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1584,7 +1612,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1595,7 +1623,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1606,7 +1634,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1617,7 +1645,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1628,7 +1656,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1639,7 +1667,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1650,7 +1678,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1661,7 +1689,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1672,7 +1700,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1683,29 +1711,131 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +msgid "Only admins can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1695 +msgid "Non-admins can can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "" @@ -1724,297 +1854,316 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" + +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "" + +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +msgid "Invalid repository URL" +msgstr "" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" -msgstr "" - -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" +msgstr "" + +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2076,13 +2225,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2094,11 +2243,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2119,11 +2268,11 @@ msgid "Name" msgstr "" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2132,18 +2281,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2155,7 +2305,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2167,11 +2317,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2183,10 +2333,10 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2196,7 +2346,7 @@ msgstr "" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "" @@ -2205,39 +2355,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2285,26 +2435,26 @@ msgstr "" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "" @@ -2413,108 +2563,94 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +msgid "Repository Defaults" +msgstr "" + +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2546,6 +2682,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2556,7 +2698,7 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +msgid "Never" msgstr "" #: kallithea/templates/admin/gists/edit.html:145 @@ -2564,7 +2706,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2587,12 +2729,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2618,25 +2760,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2666,11 +2810,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "" @@ -2679,9 +2834,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2707,7 +2871,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "" @@ -2716,26 +2880,29 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" +msgid "Owned Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" +msgid "Watched Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +msgid "Show Permissions" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2743,56 +2910,44 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this group" +msgid "Confirm to reset this API key: %s" +msgstr "A csoport törlésének megerősítése" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this group" +msgid "Confirm to remove this API key: %s" +msgstr "A csoport törlésének megerősítése" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +msgid "Remove" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2805,19 +2960,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2838,19 +2980,24 @@ msgid "Change Your Account Password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "" @@ -2871,13 +3018,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2913,7 +3054,7 @@ msgstr "" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2931,20 +3072,14 @@ msgstr "" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" +msgid "Default Permissions" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:28 @@ -2953,14 +3088,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "" @@ -2972,23 +3103,25 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +msgid "Apply to all existing repositories" +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "" @@ -3000,70 +3133,98 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +msgid "Top level repository creation" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this group" +msgid "Confirm to delete this IP address: %s" +msgstr "A csoport törlésének megerősítése" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" +msgid "New IP address" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 @@ -3087,12 +3248,12 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3110,19 +3271,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3143,12 +3310,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3159,38 +3326,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3199,7 +3338,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +msgid "Default" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3208,12 +3347,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3223,7 +3357,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3271,42 +3405,41 @@ msgid "Number of Top-level Repositories" msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "Delete this Repository" +msgid "Clone remote repository" +msgstr "Tároló törlése" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3353,8 +3486,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "" @@ -3376,45 +3509,45 @@ msgid "Public Journal Visibility" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3422,32 +3555,32 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 msgid "Delete this Repository" msgstr "Tároló törlése" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "Ennek a tárolónak %s elágazása van" msgstr[1] "Ennek a tárolónak %s elágazása van" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3485,8 +3618,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "" @@ -3525,27 +3658,31 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" -msgstr "" +#, fuzzy +#| msgid "Delete this Repository" +msgid "Private Repository" +msgstr "Tároló törlése" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#, fuzzy +#| msgid "Delete this Repository" +msgid "Remote repository URL" +msgstr "Tároló törlése" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +msgid "Pull Changes from Remote Repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +msgid "Confirm to pull changes from remote repository." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" +msgid "Permanent Repository ID" msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 @@ -3560,43 +3697,33 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "Delete this Repository" +msgid "Remote repository" +msgstr "Tároló törlése" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +msgid "Repository URL" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3653,55 +3780,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3774,13 +3857,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3801,7 +3884,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3828,38 +3911,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4011,11 +4098,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4023,7 +4110,7 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4042,6 +4129,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4061,15 +4149,8 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +msgid "Show Members" msgstr "" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -4077,8 +4158,14 @@ msgid "User Group: %s" msgstr "" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4103,10 +4190,6 @@ msgid "User Groups Administration" msgstr "" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "" @@ -4132,11 +4215,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4146,7 +4225,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4156,11 +4235,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4182,18 +4261,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4214,47 +4286,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 -#: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 -msgid "Changelog" -msgstr "" - #: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:141 +#: kallithea/templates/changelog/changelog.html:14 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 +msgid "Changelog" +msgstr "" + +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4264,129 +4344,123 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 -#: kallithea/templates/forks/fork.html:9 -msgid "Fork" +msgid "Follow" msgstr "" #: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 +#: kallithea/templates/forks/fork.html:9 +msgid "Fork" +msgstr "" + +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" +msgid "Inherit defaults" msgstr "" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4414,7 +4488,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4440,7 +4515,7 @@ msgstr "Egy másik hozzászólás hozzáadása" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "" @@ -4510,6 +4585,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "" @@ -4539,6 +4622,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4567,10 +4651,6 @@ msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4587,7 +4667,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4600,7 +4680,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4610,7 +4690,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4643,7 +4723,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "" @@ -4659,7 +4739,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4689,21 +4769,21 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +msgid "Push new repository" +msgstr "" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4713,15 +4793,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4744,7 +4824,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4755,144 +4835,151 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +msgid "No revisions" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +msgid "on pull request" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +msgid "No title" msgstr "" #: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -msgid "No title" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#, fuzzy, python-format +#| msgid "%s changesets" +msgid "on this changeset" +msgstr "%s módosításcsomag" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 msgid "Delete comment?" msgstr "Hozzászólás törlése?" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy, python-format +#| msgid "%s changesets" +msgid "Status change" +msgstr "%s módosításcsomag" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "%d sorközi" msgstr[1] "%d sorközi" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 msgid "Set changeset status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "" @@ -4911,7 +4998,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4920,11 +5007,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "" @@ -4936,29 +5023,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, python-format msgid "%s changesets" msgstr "%s módosításcsomag" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "" @@ -4982,56 +5081,43 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5156,10 +5242,6 @@ msgid "Commit Changes" msgstr "" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5185,18 +5267,14 @@ msgstr "" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" +msgid "Last Modified" msgstr "" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5308,8 +5386,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5360,8 +5438,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5369,7 +5447,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "" @@ -5382,18 +5460,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" -msgstr "" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5435,20 +5508,14 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +msgid "Vote" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5457,50 +5524,48 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5516,86 +5581,86 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 msgid "Remove reviewer" msgstr "Átnéző eltávolítása" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 msgid "Potential Reviewers" msgstr "Lehetséges átnézők" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5696,8 +5761,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5705,45 +5770,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 -msgid "commits" -msgstr "" - #: kallithea/templates/summary/statistics.html:390 -msgid "files added" +msgid "commits" msgstr "" #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" +msgid "files added" msgstr "" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "" -#: kallithea/templates/summary/statistics.html:394 -msgid "commit" -msgstr "" - #: kallithea/templates/summary/statistics.html:395 -msgid "file added" +msgid "commit" msgstr "" #: kallithea/templates/summary/statistics.html:396 -msgid "file changed" +msgid "file added" msgstr "" #: kallithea/templates/summary/statistics.html:397 +msgid "file changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "" @@ -5765,65 +5830,73 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" msgstr "" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" @@ -5836,3 +5909,425 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "" + +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "Nincsenek hozzászólások." + +#~ msgid "public journal" +#~ msgstr "" + +#~ msgid "journal" +#~ msgstr "" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Cannot delete %s it still contains attached forks" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "" + +#~ msgid "Locked" +#~ msgstr "" + +#~ msgid "Repository has been %s" +#~ msgstr "" + +#~ msgid "You can't edit this user" +#~ msgstr "" + +#~ msgid "compare view" +#~ msgstr "" + +#~ msgid "fork name %s" +#~ msgstr "" + +#~ msgid "Pull request #%s" +#~ msgstr "" + +#~ msgid "No Files" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "You can't remove this user since it's crucial for entire application" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid password" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "" + +#~ msgid "Your account is disabled" +#~ msgstr "" + +#~ msgid "Repository name %(repo)s is disallowed" +#~ msgstr "" + +#~ msgid "invalid clone URL" +#~ msgstr "" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" + +#~ msgid "This email address is already taken" +#~ msgstr "" + +#~ msgid "email \"%(email)s\" does not exist." +#~ msgstr "" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "" + +#~ msgid "My Permissions" +#~ msgstr "" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "Repository creation" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "" + +#~ msgid "none" +#~ msgstr "" + +#~ msgid "read" +#~ msgstr "" + +#~ msgid "write" +#~ msgstr "" + +#~ msgid "admin" +#~ msgstr "" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "default" +#~ msgstr "" + +#~ msgid "revoke" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "" + +#~ msgid "private repository" +#~ msgstr "" + +#~ msgid "Remote URL" +#~ msgstr "" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "merge" +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "" + +#~ msgid "Comment from pull request" +#~ msgstr "" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "" + +#~ msgid "My Repos" +#~ msgstr "" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/ja/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/ja/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/ja/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -10,9 +10,9 @@ # whosaysni , 2014 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-01-31 02:07+0200\n" "Last-Translator: kobanari \n" "Language-Team: Japanese " @@ -24,19 +24,23 @@ "Plural-Forms: nplurals=1; plural=0;\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "まだチェンジセットがありません" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "なし" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(閉鎖済み)" @@ -50,52 +54,57 @@ msgstr "空白を無視" #: kallithea/controllers/changeset.py:169 -#, python-format -msgid "increase diff context to %(num)s lines" +#, fuzzy, python-format +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "diff コンテキストを %(num)s 行増やす" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "お探しのリビジョンはこのリポジトリにはありません" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -#, fuzzy -msgid "No comments." -msgstr "%d 個のコメント" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "クローズしたプルリクエストに関連するチェンジセットのステータスを変更することは許可されていません" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "リビジョンを選択" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "no revisions" +msgid "No response" +msgstr "リビジョンなし" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "形式が間違っているため、サーバーはリクエストを処理できませんでした。" -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "リソースにアクセスする権限がありません" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "このページを閲覧する権限がありません" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "リソースが見つかりません" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -111,17 +120,17 @@ msgid "%s %s feed" msgstr "%s %s フィード" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "チェンジセットが大きすぎるため、省略しました" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s が %s にコミット" @@ -199,45 +208,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "場所には相対パスかつ .. を含まないパスを入力してください" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "ダウンロードは無効化されています" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "%s は未知のリビジョンです" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "空のリポジトリ" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "未知のアーカイブ種別です" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "チェンジセット" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "ブランチ" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "タグ" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "リポジトリ %s のフォーク中にエラーが発生しました" @@ -253,9 +260,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "リポジトリ" @@ -275,149 +282,169 @@ msgstr "ブックマーク" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "公開ジャーナル" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" msgstr "ジャーナル" -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "キャプチャが一致しません" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Kallitheaへの登録を受け付けました" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "パスワードリセットのリンクを送信しました" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "パスワードをリセットに成功しました。新しいパスワードをあなたのメールアドレスに送りました" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, fuzzy, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "チェンジセット" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "スペシャル" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "相手のブランチ" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "ブックマーク" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "プルリクエスト作成中にエラーが発生しました: %s" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 #, fuzzy msgid "No description" msgstr "説明" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "新しいプルリクエストの作成に成功しました" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 #, fuzzy msgid "Error occurred while creating pull request" msgstr "プルリクエストの作成中にエラーが発生しました" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 #, fuzzy msgid "Pull request update created" msgstr "プルリクエストレビュアー" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 #, fuzzy msgid "Pull request updated" msgstr "%s へのプルリクエスト" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "プルリクエストの削除に成功しました" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +#, fuzzy +#| msgid "Vote for pull request status" +msgid "No permission to change pull request status" +msgstr "プルリクエストステータスの投票" + +#: kallithea/controllers/pullrequests.py:715 #, fuzzy msgid "Closing." msgstr "読み込み中..." @@ -435,22 +462,22 @@ msgid "An error occurred during search operation." msgstr "検索を実行する際にエラーが発生しました" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 #, fuzzy msgid "No data ready yet" msgstr "まだデータが読み込まれていません" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "このリポジトリの統計は無効化されています" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "認証設定の更新に成功しました" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "認証設定の更新中にエラーが発生しました" @@ -463,38 +490,40 @@ msgstr "デフォルト設定の更新中にエラーが発生しました" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "無期限" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 分" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 時間" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 日" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 ヶ月" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "有効期間" @@ -508,7 +537,9 @@ msgstr "gist %s を削除しました" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +#, fuzzy +#| msgid "unmodified" +msgid "Unmodified" msgstr "変更なし" #: kallithea/controllers/admin/gists.py:262 @@ -524,117 +555,133 @@ msgid "Error occurred during update of gist %s" msgstr "Gist %s の更新中にエラーが発生しました" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "このユーザーを編集できません。このユーザーはアプリケーションにとって必要不可欠です。" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "アカウントの更新に成功しました" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "ユーザー %s の更新中にエラーが発生しました" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "パスワードを更新しました" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "パスワードの更新中にエラーが発生しました" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "ユーザーにメールアドレス %s を追加しました" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "メールの保存時にエラーが発生しました" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "ユーザーからメールアドレスを削除しました" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" msgstr "APIキーの作成に成功しました" -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" msgstr "APIキーのリセットに成功しました" -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" msgstr "APIキーの削除に成功しました" +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "読込" + #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "読込" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "書込" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "書込" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "管理" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "無効" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "手動でアカウントをアクティベートする" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "自動でアカウントをアクティベートする" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -642,11 +689,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "外部アカウントを手動でアクティベートする" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -654,221 +701,212 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "外部アカウントを自動でアクティベートする" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "有効" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "全般の権限の更新に成功しました" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "権限の更新中にエラーが発生しました" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "リポジトリグループ %s の作成中にエラーが発生しました" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "リポジトリグループ %s を作成しました" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "リポジトリグループ %s の作成中にエラーが発生しました" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "リポジトリグループ %s を更新しました" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "リポジトリグループ %s の更新中にエラーが発生しました" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "このグループは %s 個のリポジトリを含んでいるため削除できません" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "このグループは %s 個のサブグループを含んでいるため削除できません" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "リポジトリグループ %s を削除しました" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "リポジトリグループ %s の削除中にエラーが発生しました" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "自分自身の管理者としての権限を取り消すことはできません" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "リポジトリグループ権限を更新しました" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "権限の取消中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "リポジトリ %s の作成中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "リポジトリ %s を %s から作成しました" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "リポジトリ %s を %s としてフォークしました" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "リポジトリ %s を作成しました" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "リポジトリ %s の更新に成功しました" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "リポジトリ %s の更新中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "%s 個のフォークを切り離しました" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "%s 個のフォークを削除しました" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "リポジトリ %s を削除しました" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "フォークしたリポジトリが存在するため、 %s は削除できません" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "%s の削除中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "リポジトリ権限を更新しました" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "フィールドの作成中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "フィールドの削除中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- フォークではありません --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "公開ジャーナルでのリポジトリの可視性を更新しました" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "このリポジトリの公開ジャーナルの設定中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "トークンが一致しません" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "ありません" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "%s リポジトリを %s のフォークとする" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "操作中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "リポジトリをロックしました" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "リポジトリのロックを解除しました" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "リポジトリはロックされていません" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "リポジトリはロックされていません" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "アンロック中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "アンロック" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "ロック" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "キャッシュの無効化に成功しました" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "キャッシュの無効化中にエラーが発生しました" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "リモートから取得" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "リポジトリは %s されています" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "キャッシュの無効化に成功しました" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "キャッシュの無効化中にエラーが発生しました" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "リモートから取得" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "リモートから取得中にエラーが発生しました" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "リポジトリステートの削除中にエラーが発生しました" @@ -884,7 +922,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "アプリケーション設定の更新中にエラーが発生しました" #: kallithea/controllers/admin/settings.py:213 @@ -961,83 +999,82 @@ msgstr "対象に同じ物を選ぶことはできません" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "ユーザーグループ権限を更新しました" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "権限を更新しました" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "権限の保存時にエラーが発生しました" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "ユーザー %s を作成しました" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "ユーザー %s の作成中にエラーが発生しました" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "ユーザーの更新に成功しました" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "ユーザーの削除に成功しました" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "ユーザーの削除中にエラーが発生しました" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "このユーザーは編集できません" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "ユーザーホワイトリストにIP %s を追加しました" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "IPアドレスの保存中にエラーが発生しました" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "ユーザーホワイトリストからIPアドレスを削除しました" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IPアドレス %s は許可されません" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +#, fuzzy +#| msgid "New api key" +msgid "Invalid API key" +msgstr "新しいAPIキー" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "このアクションを実行するためには登録済みのユーザーである必要があります" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "このページを閲覧するためにはサインインが必要です" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "リビジョンが見つかりません" @@ -1053,158 +1090,164 @@ msgid "No changes detected" msgstr "検出された変更はありません" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "削除されたブランチ: %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "作成したタグ: %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "%s から %s までのすべてのチェンジセットを表示" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "比較ビュー" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "と" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s 以上" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "リビジョン" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "フォーク名 %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "プルリクエスト #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "リポジトリを[削除]" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "リポジトリを[作成]" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "フォークしてリポジトリを[作成]" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "リポジトリを[フォーク]" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "リポジトリを[更新]" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "リポジトリからアーカイブを[ダウンロード]" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "リポジトリを[削除]" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "ユーザーを[作成]" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "ユーザーを[更新]" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "ユーザーグループを[作成]" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "ユーザーグループを[更新]" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "リポジトリのリビジョンに[コメント]" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "プルリクエストに[コメント]" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "プルリクエストを[クローズ]" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[プッシュ]" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "リポジトリに[Kallithea経由でコミット]" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "リポジトリに[リモートからプル]" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[プル]" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "リポジトリの[フォローを開始]" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "リポジトリの[フォローを停止]" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " と %s 以上" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "ファイルなし" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "ファイルはありません" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "新しいファイル" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "変更" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "削除" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "リネーム" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1214,63 +1257,63 @@ "%s " "リポジトリはDB内に見つかりませんでした。おそらくファイルシステム上で作られたか名前が変更されたためです。リポジトリをもう一度チェックするためにアプリケーションを立ち上げ直してください。" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d 年" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d ヶ月" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d 日" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d 時間" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d 分" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "%s 以内" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s 前" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "%s と %s の間" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s と %s 前" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "たったいま" @@ -1285,7 +1328,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "リポジトリへのアクセス権限無し" @@ -1300,7 +1343,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "リポジトリに読込権限でアクセス" @@ -1315,7 +1358,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "リポジトリに書込権限でアクセス" @@ -1330,7 +1373,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "リポジトリに管理権限でアクセス" @@ -1369,7 +1412,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Kallithea 管理者" @@ -1384,7 +1427,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "リポジトリの作成を有効にする" @@ -1399,7 +1442,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "リポジトリの作成を有効にする" @@ -1414,7 +1457,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "リポジトリのフォークを無効にする" @@ -1429,7 +1472,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "リポジトリのフォークを有効にする" @@ -1465,7 +1508,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "未レビュー" @@ -1480,7 +1523,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "承認" @@ -1495,7 +1538,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "却下" @@ -1510,7 +1553,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "レビュー中" @@ -1522,7 +1565,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "top level" @@ -1534,7 +1577,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "リポジトリグループへのアクセス権限なし" @@ -1546,7 +1589,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "リポジトリグループに読込権限でアクセス" @@ -1558,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "リポジトリグループに書込権限でアクセス" @@ -1570,7 +1613,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "リポジトリグループに管理権限でアクセス" @@ -1581,7 +1624,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "ユーザーグループへのアクセス権限なし" @@ -1592,7 +1635,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "ユーザーグループに読込権限でアクセス" @@ -1603,7 +1646,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "ユーザーグループに書込権限でアクセス" @@ -1614,7 +1657,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "ユーザーグループに管理権限でアクセス" @@ -1625,7 +1668,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "リポジトリグループの作成を無効にする" @@ -1636,7 +1679,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "リポジトリグループの作成を有効にする" @@ -1647,7 +1690,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "ユーザーグループの作成を無効にする" @@ -1658,7 +1701,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "ユーザーグループの作成を有効にする" @@ -1669,7 +1712,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "新規登録を無効にする" @@ -1680,7 +1723,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "ユーザーの新規登録時に手動でアカウントをアクティベートする" @@ -1691,29 +1734,153 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "ユーザーの新規登録時に自動でアカウントをアクティベートする" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "リポジトリグループの書き込みパーミッションを使ったリポジトリ作成が有効です" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "リポジトリグループの書き込みパーミッションを使ったリポジトリ作成は無効です" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "%s 行目" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Mention]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "リソースにアクセスする権限がありません" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "リソースにアクセスする権限がありません" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "リポジトリグループ %s を作成しました" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "リポジトリグループ %s を作成しました" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "Create user groups" +msgid "Only admins can create user groups" +msgstr "ユーザーグループを作成" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "Create user groups" +msgid "Non-admins can create user groups" +msgstr "ユーザーグループを作成" + +#: kallithea/model/db.py:1688 +#, fuzzy +#| msgid "Top level repositories" +msgid "Only admins can create top level repositories" +msgstr "トップレベルリポジトリ数" + +#: kallithea/model/db.py:1689 +#, fuzzy +#| msgid "Top level repositories" +msgid "Non-admins can create top level repositories" +msgstr "トップレベルリポジトリ数" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "リポジトリ総数" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "すべてのリポジトリのキャッシュを無効化する" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "ユーザーの新規登録時に手動でアカウントをアクティベートする" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "ユーザーの新規登録時に自動でアカウントをアクティベートする" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "未レビュー" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "レビュー中" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "ログイン名を入力してください" @@ -1732,165 +1899,205 @@ msgid "Enter %(min)i characters or more" msgstr "%(min)i 文字以上必要です" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "数字だけの名前は使えません" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s がチェンジセットにコメント %(when)s" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s がメッセージを送信 %(when)s" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s がにあなたにメンション %(when)s" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s がKallitheaに登録 %(when)s" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s が新しいプルリクエストを作成 %(when)s" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s がプルリクエストにコメント %(when)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s がチェンジセットにコメント %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s がメッセージを送信 %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s がにあなたにメンション %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s がKallitheaに登録 %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s が新しいプルリクエストを作成 %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s がプルリクエストにコメント %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, fuzzy, python-format -msgid "New user %(new_username)s registered" -msgstr "ユーザー名 %(new_username)s は不正です" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" msgstr "" -#: kallithea/model/notification.py:315 +#: kallithea/model/notification.py:305 +#, fuzzy, python-format +msgid "New user %(new_username)s registered" +msgstr "ユーザー名 %(new_username)s は不正です" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 #, fuzzy msgid "Closing" msgstr "メールアドレス:" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "%(user)s がプリリクエスト #%(pr_id)s: %(pr_title)s のレビューを求めています" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "最新のtip" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "新規ユーザー登録" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "このユーザーを編集できません。このユーザーはアプリケーションにとって必要不可欠です。" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "このユーザーを削除できません。このユーザーはアプリケーションにとって必要不可欠です。" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "ユーザー \"%s\" はまだ %s 個のリポジトリの所有者のため削除することはできません。リポジトリの所有者を変更するか削除してください。 %s" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "ユーザー \"%s\" はまだ %s 個のリポジトリの所有者のため削除することはできません。リポジトリの所有者を変更するか削除してください。 %s" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "ユーザー \"%s\" はまだ %s 個のリポジトリの所有者のため削除することはできません。リポジトリの所有者を変更するか削除してください。 %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "パスワードリセットのリンク" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "新しいパスワード" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "新しいKallitheaパスワード:%s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "空のリストにはできません" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "ユーザー名 \"%(username)s\" はすでに使われています" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "ユーザー名 \"%(username)s\" は許可されていません" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "ユーザー名 %(username)s は不正です" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "ユーザー名はアルファベット、アンダースコア(_)、ピリオド(.)、ダッシュ(-)しか使えません。また、アルファベットまたはアンダースコア(_)から始まる必要があります" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "入力が正しくありません" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "ユーザー名 %(username)s は不正です" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "不正なユーザーグループ名です" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "ユーザーグループ \"%(usergroup)s\" はすでに存在します" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1898,136 +2105,135 @@ "ユーザーグループ名はアルファベット、アンダースコア(_)、ピリオド(.)、ダッシュ(-)しか使えません。また、アルファベットから始まる必要があります" " " -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "このグループは親にできません" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "グループ \"%(group_name)s\" はすでに存在します" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "グループ名 \"%(group_name)s\" を持つリポジトリはすでに存在します" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "パスワードに利用出来ない文字列(non-ascii)です" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "古いpasswordが間違っています" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "パスワードが一致しません" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "不正なパスワードです" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "不正なユーザー名です" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "アカウントは無効です" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "トークンが一致しません" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "リポジトリ名 %(repo)s は許可されていません" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "リポジトリ %(repo)s はすでに存在します" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "リポジトリ \"%(repo)s\" は グループ \"%(group)s\" にすでに存在します" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "リポジトリグループ名 \"%(repo)s\" はすでに存在します" -#: kallithea/model/validators.py:474 -#, fuzzy -msgid "invalid clone URL" -msgstr "無効なクローンURIです" - -#: kallithea/model/validators.py:475 -#, fuzzy -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "無効なクローンURIです。有効な http(s)/svn+http(s) のURIを指定してください" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "非公開リポジトリ" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "フォークは親と同じ種別の必要があります" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "このグループにリポジトリを作成する権限がありません" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "ルートにリポジトリを作成する権限がありません" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "この場所にグループを作成する権限がありません" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "ユーザー名かユーザーグループが不正です" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "不正なパスです" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "このメールアドレスはすでに取得されています" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "メールアドレス \"%(email)s\" は存在しません" -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "LDAPのこのCNに対するログイン属性は必須です。 - これは \"ユーザー名\" と同じです" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "リビジョン %(revs)s はすでにプルリクエストの一部かステータスが設定されています" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" msgstr "有効なIPv4かIPv6のアドレスを入力してください" -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "ネットワークサイズ (bits) は0-32の範囲にする必要があります ( %(bits)r は不正です)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "キー名はアルファベット、アンダースコア(_)、ピリオド(.)、ダッシュ(-)、数字しか使えません。" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "ファイル名はディレクトリ内にすることはできません" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "%(loaded)s プラグインと %(next_to_load)s プラグインで同じ名前が使われています" @@ -2089,13 +2295,13 @@ msgstr "グループ名" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2107,11 +2313,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "説明" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2132,11 +2338,11 @@ msgid "Name" msgstr "名前" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "最後の変更点" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2145,18 +2351,19 @@ msgid "Tip" msgstr "Tip" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "所有者" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2168,7 +2375,7 @@ msgid "Click to sort ascending" msgstr "昇順で並び換え" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2180,11 +2387,11 @@ msgid "Click to sort descending" msgstr "降順で並び替え" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "リポジトリが見つかりません" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2196,10 +2403,10 @@ msgid "Data error." msgstr "データエラー" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2209,7 +2416,7 @@ msgstr "読み込み中..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "ログイン" @@ -2218,39 +2425,39 @@ msgid "Log In to %s" msgstr "%s へログイン" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "ユーザー名" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "パスワード" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "次回から自動的にサインイン" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "パスワードを忘れた?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "アカウントを持っていない?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "サインイン" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "パスワードを忘れた?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "アカウントを持っていない?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "パスワードリセット" @@ -2301,26 +2508,26 @@ msgstr "パスワード再入力" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "名前" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "名字" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "メールアドレス" @@ -2429,110 +2636,99 @@ msgstr "有効なプラグイン" #: kallithea/templates/admin/auth/auth_settings.html:33 +#, fuzzy +#| msgid "" "Comma separated list of plugins. Order of plugins is also order in +#| which " "Kallithea will try to authenticate user" msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "カンマ区切りのプラグインの一覧です。プラグインの並び順はKallitheaがユーザー認証を試す順番でもあります。" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "有効な組み込みプラグイン" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "有効" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "無効" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "プラグイン" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "保存" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "リポジトリのデフォルト設定" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "デフォルト設定" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "リポジトリの種別" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "非公開リポジトリ" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "非公開リポジトリはコラボレーターとして明示的に追加された人でないと見つけられません" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "統計を有効にする" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "概要ページの統計ウィンドウを有効にします" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "ダウンロードを有効にする" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "概要ページのダウンロードメニューを有効にします" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "ロックを有効にする" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "リポジトリのpullのロックを有効にします" @@ -2566,6 +2762,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "失効" @@ -2576,7 +2778,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "無し" #: kallithea/templates/admin/gists/edit.html:145 @@ -2584,7 +2788,7 @@ msgstr "Gistを更新" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "キャンセル" @@ -2607,12 +2811,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "新しい Gist を作成" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "作成日" @@ -2638,25 +2842,27 @@ msgstr "公開 Gist を作成" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2686,11 +2892,22 @@ msgstr "非公開 Gist" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "削除" @@ -2699,9 +2916,18 @@ msgstr "このGistを削除してもよろしいですか?" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2727,7 +2953,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "アカウント" @@ -2736,85 +2962,91 @@ msgid "Profile" msgstr "プロフィール" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "新しいメールアドレス" + +#: kallithea/templates/admin/my_account/my_account.html:38 +#: kallithea/templates/admin/users/user_edit.html:31 #, fuzzy msgid "API Keys" msgstr "新しいAPIキー" -#: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "メールアドレス" - #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" msgstr "リポジトリ" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "ウォッチ中" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "リポジトリを作成する" #: kallithea/templates/admin/my_account/my_account.html:41 -#, fuzzy -msgid "My Permissions" -msgstr "権限" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "権限のコピー" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "ビルトイン" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "失効" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to reset this api key: %s" +msgid "Confirm to reset this API key: %s" msgstr "このAPIキーをリセットしてもよろしいですか?: %s" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "リセット" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +#, fuzzy +#| msgid "expired" +msgid "Expired" msgstr "失効済み" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "このAPIキーを削除してもよろしいですか?: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +#, fuzzy +#| msgid "remove" +msgid "Remove" msgstr "削除" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +#, fuzzy +#| msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "API キーが指定されていません" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +#, fuzzy +#| msgid "New api key" +msgid "New API key" msgstr "新しいAPIキー" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2827,19 +3059,6 @@ msgid "Primary" msgstr "プライマリ" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "削除" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2862,19 +3081,24 @@ msgid "Change Your Account Password" msgstr "パスワードを変更してください" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "現在のパスワード" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "新しいパスワード" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "新しいパスワードの確認" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "アバターを変更できます : " @@ -2895,15 +3119,11 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" +#, fuzzy +#| msgid "current IP" +msgid "Current IP" msgstr "現在の IP" -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" -msgstr "ユーザーは外部の Source of Record に属しているため、ここでは詳細を管理できません" - #: kallithea/templates/admin/my_account/my_account_repos.html:1 #, fuzzy msgid "Repositories You Own" @@ -2939,7 +3159,7 @@ msgstr "コメント" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "プルリクエスト" @@ -2959,22 +3179,16 @@ msgstr "通知を表示" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "通知" #: kallithea/templates/admin/permissions/permissions.html:5 -#, fuzzy -msgid "Permissions Administration" -msgstr "権限管理" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "権限設定" +#, fuzzy +msgid "Default Permissions" +msgstr "デフォルトの権限" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -2982,15 +3196,11 @@ msgstr "全般" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 #, fuzzy msgid "IP Whitelist" msgstr "IPアドレスのホワイトリスト" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "概要" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "匿名アクセス" @@ -3002,23 +3212,27 @@ "%s user permissions." msgstr "ログインしなくても Kallithea にアクセスできるようにします。匿名ユーザーは %s ユーザーパーミッションを使います" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "選択したパーミッションで、各リポジトリのデフォルトパーミッションをリセットします。各リポジトリの既存のカスタムデフォルトパーミッション設定は無くなるので注意してください" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repositories" +msgstr "既存のリポジトリを import しますか?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "現在の設定を上書きする" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "リポジトリグループ" @@ -3030,76 +3244,114 @@ "will be lost" msgstr "選択したパーミッションで、各リポジトリグループのデフォルトパーミッションをリセットします。各リポジトリグループの既存のカスタムデフォルトパーミッション設定は無くなるので注意してください" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Import existing repository ?" +msgid "Apply to all existing repository groups" +msgstr "既存のリポジトリを import しますか?" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +#, fuzzy +#| msgid "Copy permission set from parent repository group." +msgid "Permissions for the Default user on new repository groups." +msgstr "親のリポジトリグループにセットされているパーミッションをコピーします。" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "ユーザーグループ" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" msgstr "選択したパーミッションで、各ユーザーグループのデフォルトパーミッションをリセットします。各ユーザーグループの既存のカスタムデフォルトパーミッション設定は無くなるので注意してください" +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "リポジトリ作成" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "グループ書き込み権限でのリポジトリ作成" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 -#, fuzzy +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +#, fuzzy +#| msgid "" "Write permission to a repository group allows creating +#| repositories " "inside that group." msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." msgstr "リポジトリグループに書き込みパーミッションを付与すると、グループ内にリポジトリを作成できるようになります" -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "ユーザーグループ作成" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "リポジトリのフォーク" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "新規登録" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "外部認証アカウントのアクティベート" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -#, fuzzy -msgid "Default IP Whitelist for All Users" -msgstr "全てのユーザーに設定されるデフォルトのIPアドレスのホワイトリスト" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "このIPアドレスを削除してもよろしいですか? : %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 #, fuzzy msgid "All IP addresses are allowed." msgstr "すべてのIPアドレスが許可されています" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "新しいIPアドレス" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "デフォルトのユーザー権限の概要" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3121,12 +3373,12 @@ msgstr "親グループ" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "親グループのパーミッションをコピー" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "親のリポジトリグループにセットされているパーミッションをコピーします。" @@ -3144,19 +3396,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "設定" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "高度な設定" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "権限設定" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3177,12 +3435,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "作成日" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3192,38 +3450,12 @@ msgid "Delete this repository group" msgstr "このリポジトリグループを削除" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "なし" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "読込" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "書込" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "管理" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +#, fuzzy +#| msgid "user/user group" +msgid "User/User Group" msgstr "ユーザー/ユーザーグループ" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3232,7 +3464,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "default" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3241,14 +3475,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "取消" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "代理 admin" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3256,7 +3487,9 @@ msgstr "新規追加" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "子要素にも適用" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3308,43 +3541,41 @@ msgid "Number of Top-level Repositories" msgstr "トップレベルリポジトリ数" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "既存のリポジトリを import しますか?" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "クローン元" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -#, fuzzy -msgid "Optional URL from which repository should be cloned." -msgstr "オプション:クローンするリポジトリのHTTP[S]のURLを指定します" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "リポジトリを[作成]" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "短く要点を絞ってください。長い説明にはREADMEファイルを利用してください。" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "オプション:このリポジトリが属するグループを選択します" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "作成するリポジトリの種別を指定します" -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "ランディングリビジョン" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3392,8 +3623,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "統計" @@ -3418,52 +3649,52 @@ msgid "Public Journal Visibility" msgstr "公開ジャーナルでの可視性" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "公開ジャーナルから削除する" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "公開ジャーナルへ追加" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 #, fuzzy msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "公開ジャーナルでは、このリポジトリに対して行った操作のすべてが公開されます" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "ロック" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "このリポジトリのロックを解除しますか?" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "リポジトリのロックを解除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "このリポジトリをロックしますか?" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "リポジトリのロックを解除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "リポジトリはロックされていません" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3471,32 +3702,32 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "このリポジトリを削除してもよろしいですか? : %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "このリポジトリを削除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "%s 個のフォークがあります" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "フォークの切り離し" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "フォークも削除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3538,8 +3769,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "アクティブ" @@ -3579,32 +3810,40 @@ msgstr "拡張フィールドは無効化されています" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "非公開リポジトリ" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -#, fuzzy -msgid "Remote URL" -msgstr "リモート URL" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Pull Changes from Remote Location" -msgstr "リモートから変更を取り込む" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "リポジトリ %s を作成しました" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "リポジトリに[リモートからプル]" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "リモートから変更を取り込んでもよろしいですか?" -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -#, fuzzy -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +#, fuzzy +#| msgid "This repository does not have a remote URL set." +msgid "This repository does not have a remote repository URL." msgstr "このリポジトリにリモート URLは設定されていません" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "変更不能ID" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "非公開リポジトリ" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 #, fuzzy @@ -3617,51 +3856,46 @@ #: kallithea/templates/admin/repos/repo_edit_settings.html:14 #, fuzzy +#| msgid "" "In case this repository is renamed or moved into another group the +#| " "repository URL changes.\n" " Using the +#| above URL guarantees that this " "repository will always be accessible under +#| such URL.\n" " Useful for CI systems, or any +#| other cases " "that you need to hardcode the URL into 3rd party service." msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" "通常、リポジトリの名前を変更したり、別のグループに移動すると、リポジトリのURLが変わります。\n" "上のURLを使えば、常にリポジトリにアクセスできます。\n" "この機能は、CIを使っている場合や、3rd pirtyのサービス向けにURLをハードコードしたいときに便利です。" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -#, fuzzy -msgid "Clone URL" -msgstr "クローンURL" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "編集" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "新しい値" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -#, fuzzy -msgid "URL used for doing remote pulls." -msgstr "remote pull で使う http[s] url です。" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "リポジトリを[作成]" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "リポジトリ" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "ファイルページ、ダウンロード、検索、READMEのデフォルトのリビジョンを指定します" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "リポジトリの所有者を変更" @@ -3724,55 +3958,11 @@ msgid "System Info" msgstr "システム情報" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "メールアドレスプレフィックス" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "Kallithea メールのFrom" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "エラーメールのFrom" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "エラーメールの宛先" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "SMTP サーバー" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "SMTP ユーザー名" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "SMTP パスワード" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "SMTP ポート" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" -msgstr "SMTP TLSの使用" +msgid "Send test email to" +msgstr "テストメールの送信" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "SMTP SSLの使用" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "SMTP 認証" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "テストメールの送信" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "送信" @@ -3849,13 +4039,15 @@ msgstr "再スキャンオプション" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "古いデータを削除する" +#, fuzzy +#| msgid "Search in repositories" +msgid "Delete records of missing repositories" +msgstr "リポジトリから検索" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3879,7 +4071,7 @@ "Current hooks will be updated to the latest version." msgstr "各リポジトリに Kallitheas の GIT フックがインストールされているか確認してください。現在のフックは最新版に更新されます" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "リポジトリを再スキャン" @@ -3907,41 +4099,47 @@ msgstr "Kallithea バージョン" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +#, fuzzy +#| msgid "check for updates" +msgid "Check for updates" msgstr "更新を確認" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" -msgstr "Python バージョン" +msgid "Kallithea configuration file" +msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 +msgid "Python version" +msgstr "Python バージョン" + +#: kallithea/templates/admin/settings/settings_system.html:7 msgid "Platform" msgstr "プラットフォーム" -#: kallithea/templates/admin/settings/settings_system.html:7 +#: kallithea/templates/admin/settings/settings_system.html:8 #, fuzzy msgid "Git version" msgstr "GIT バージョン" -#: kallithea/templates/admin/settings/settings_system.html:8 +#: kallithea/templates/admin/settings/settings_system.html:9 #, fuzzy msgid "Git path" msgstr "GIT パス" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "更新情報のエンドポイント" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 #, fuzzy msgid "Note: please make sure this server can access this URL" msgstr "ノート: サーバーがこのURLにアクセスできることを確認して下さい" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "更新を確認中..." -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 #, fuzzy msgid "Python Packages" msgstr "Python パッケージ" @@ -4122,11 +4320,11 @@ msgstr "アイコン" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "公開リポジトリのアイコンを表示する" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "非公開リポジトリのアイコンを表示する" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4135,7 +4333,9 @@ msgstr "リポジトリ名の横に公開/非公開アイコンを表示します。" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "メタタグ" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4155,6 +4355,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "ユーザーグループ" @@ -4174,15 +4375,10 @@ msgid "%s user group settings" msgstr "%s ユーザーグループ設定" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "デフォルトの権限" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +#, fuzzy +#| msgid "members" +msgid "Show Members" msgstr "メンバー" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -4190,8 +4386,14 @@ msgid "User Group: %s" msgstr "ユーサーグループ: %s" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "メンバー" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "このユーザーグループを削除してもよろしいですか?: %s" @@ -4217,10 +4419,6 @@ msgid "User Groups Administration" msgstr "ユーザーグループ管理" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "ユーザーグループ" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "ユーザーを追加" @@ -4246,12 +4444,7 @@ msgid "%s user settings" msgstr "%s ユーザー設定" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "デフォルトの権限" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "メールアドレス" @@ -4261,7 +4454,7 @@ msgstr "ユーザー: %s" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "アカウントのソース" @@ -4271,11 +4464,11 @@ msgstr "最終ログイン日時" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "グループのメンバー数" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "このユーザーを削除してもよろしいですか? : %s" @@ -4297,18 +4490,11 @@ msgid "Missing email, please update this user email address." msgstr "メールアドレスがありません。このユーザーのメールアドレスを更新してください。" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "このユーザーは外部の Source of Record (%s) に属しています。ここでは詳細を管理できません。" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "アカウントのソースでの名前" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "新しいパスワード 再入力" @@ -4331,49 +4517,57 @@ msgid "Support" msgstr "サポート" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Mercurialリポジトリ" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Gitリポジトリ" + +#: kallithea/templates/base/base.html:126 #, fuzzy msgid "Create Fork" msgstr "フォークを作成" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "要約" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "履歴" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "ファイル" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "ブランチの切り替え" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "オプション" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 #, fuzzy msgid "Compare Fork" msgstr "フォークを比較" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4383,138 +4577,132 @@ msgid "Compare" msgstr "比較" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "検索" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "アンロック" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "ロック" -#: kallithea/templates/base/base.html:176 +#: kallithea/templates/base/base.html:180 msgid "Follow" msgstr "フォロー" -#: kallithea/templates/base/base.html:177 +#: kallithea/templates/base/base.html:181 msgid "Unfollow" msgstr "アンフォロー" -#: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "フォーク" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "プルリクエストを作成" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "%s のプルリクエストを表示" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "最近の活動を表示" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "ジャーナル" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "公開ジャーナル" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "公開 gists を表示" -#: kallithea/templates/base/base.html:237 +#: kallithea/templates/base/base.html:241 msgid "Gists" msgstr "Gists" -#: kallithea/templates/base/base.html:241 +#: kallithea/templates/base/base.html:245 #, fuzzy msgid "All Public Gists" msgstr "すべての公開 gists" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 #, fuzzy msgid "My Public Gists" msgstr "公開 gists" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 #, fuzzy msgid "My Private Gists" msgstr "非公開 gists" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "リポジトリから検索" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 #, fuzzy msgid "My Pull Requests" msgstr "プルリクエスト" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 #, fuzzy msgid "Not Logged In" msgstr "ログインしていません" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 #, fuzzy msgid "Login to Your Account" msgstr "ログイン" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "パスワードを忘れた?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "ログアウト" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "一致するものが見つかりません" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "キーボードショートカット" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "サイト全体" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" +#, fuzzy +#| msgid "Inherit from defaults" +msgid "Inherit defaults" msgstr "デフォルト権限を継承" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." #: kallithea/templates/base/default_perms_box.html:28 msgid "Create repositories" @@ -4541,8 +4729,9 @@ msgstr "ユーザーにリポジトリのフォークを許可する場合はこのオプションを選んでください" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "表示" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4568,7 +4757,7 @@ msgstr "別のコメントを追加" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "このリポジトリのフォローをやめる" @@ -4646,6 +4835,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "権限 {0}: {1} を取り消してもよろしいですか?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "有効" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "無効" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4676,6 +4873,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4703,10 +4901,6 @@ msgid_plural "showing %d out of %d revisions" msgstr[0] "%d / %d リビジョンを表示" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "表示" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "選択を解除" @@ -4724,7 +4918,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, fuzzy, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "フォーク元(%s)とフォークを比較" #: kallithea/templates/changelog/changelog.html:66 @@ -4735,10 +4929,12 @@ #: kallithea/templates/changelog/changelog.html:92 #: kallithea/templates/changelog/changelog_summary_data.html:20 -#, python-format +#, fuzzy, python-format +#| msgid "" "Changeset status: %s\n" "Click to open associated pull request +#| #%s" msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" "チェンジセットステータス: %s\n" "関連するプルリクエスト #%s を開く" @@ -4750,7 +4946,7 @@ msgstr "チェンジセットステータス: %s" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "コミットメッセージを展開" @@ -4783,7 +4979,7 @@ msgid "Branch %s" msgstr "ブランチ %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "まだ変更がありません" @@ -4799,7 +4995,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "追加" @@ -4829,21 +5025,23 @@ msgid "Refs" msgstr "Refs" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Kallithea経由で直接ファイルを追加またはアップロード" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "新しいファイルを追加" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "新しいリポジトリをプッシュ" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "存在するリポジトリをプッシュ" @@ -4853,15 +5051,19 @@ msgstr "%s チェンジセット" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +#, fuzzy +#| msgid "parent rev." +msgid "Parent rev." msgstr "親リビジョン" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +#, fuzzy +#| msgid "child rev." +msgid "Child rev." msgstr "子リビジョン" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "チェンジセットステータス" @@ -4884,7 +5086,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "マージ" #: kallithea/templates/changeset/changeset.html:123 @@ -4896,149 +5100,163 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "作成日" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "作成日" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "%s ファイルに影響" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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 個の削除" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 #, fuzzy msgid "Show full diff anyway" msgstr "すべての差分を表示" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "no revisions" +msgid "No revisions" msgstr "リビジョンなし" -#: kallithea/templates/changeset/changeset_file_comment.html:24 -#, fuzzy -msgid "Status change from pull request" -msgstr "チェンジセットのステータスを変更" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "プルリクエスト #%s にコメント" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 #, fuzzy msgid "No title" msgstr "新しいファイル" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -#, fuzzy -msgid "Comment from pull request" -msgstr "プルリクエスト #%s にコメント" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "チェンジセットのステータスを変更" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "チェンジセットにコメント" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "チェンジセットはありません" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "%d 個のコメント" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "最近の変更点" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "{1} 行目にコメント" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "コメントには %s 構文 ( %s サポートつき ) が利用出来ます" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 #, fuzzy msgid "Use @username inside this text to notify another user" msgstr "テキスト内で @username を使うと、その Kallithea のユーザーに通知を送信します" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "コメントのプレビュー" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 #, fuzzy msgid "Submitting ..." msgstr "送信中..." -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "コメント" -#: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 msgid "Preview" msgstr "プレビュー" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "You need to be logged in to comment." msgstr "コメントするにはログインが必要です" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "今すぐログインする" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "隠す" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d 個のコメント" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "(%d インライン)" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, fuzzy, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -#, fuzzy -msgid "Use @username inside this text to send notification to another local user." +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "テキスト内で @username を使うと、その Kallithea のユーザーに通知を送信します" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "プルリクエストステータスの投票" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "リビジョンステータスを変更" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "変更点なし" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(閉鎖済み)" @@ -5058,7 +5276,7 @@ msgstr "このファイルのすべての差分を表示" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "このファイルの差分を並べて表示" @@ -5067,12 +5285,12 @@ msgid "Show inline comments" msgstr "インラインコメントを表示" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "削除" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "リネーム" @@ -5085,32 +5303,44 @@ msgid "Ancestor" msgstr "祖先" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 #, fuzzy msgid "Show merge diff" msgstr "すべての差分を表示" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 #, fuzzy msgid "Common ancestor" msgstr "チェンジセットにコメント" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 #, fuzzy msgid "is" msgstr "Gist" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "%s チェンジセット" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "再インデックス" @@ -5136,55 +5366,42 @@ msgstr "リビジョン、ブランチ、ブックマークもしくはタグの比較を行います。" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "%s コミットを表示" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "ファイルはありません" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "すべての差分を表示" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Mercurialリポジトリ" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Gitリポジトリ" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "公開リポジトリ" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "リポジトリを作成しています..." -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "まだチェンジセットがありません" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "%s の RSS フィードを購読" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "%s の ATOM フィードを購読" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "作成中" @@ -5312,10 +5529,6 @@ msgid "Commit Changes" msgstr "変更をコミット" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "リビジョン" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "前のリビジョン" @@ -5341,19 +5554,15 @@ msgstr "サイズ" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Mimetype" +msgid "Last Revision" +msgstr "最後のリビジョン" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "最後のリビジョン" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "最終更新日" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "最後の作成者" @@ -5465,8 +5674,8 @@ msgstr "%s フォロワー" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "フォロワー" @@ -5518,8 +5727,8 @@ msgstr "%s フォーク" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "フォーク" @@ -5527,7 +5736,7 @@ msgid "Forked" msgstr "フォークしました" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "まだフォークがありません" @@ -5540,19 +5749,13 @@ msgstr "RSS ジャーナルフィード" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" +msgid "My Repositories" msgstr "リポジトリ" -#: kallithea/templates/journal/journal_data.html:61 +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "まだエントリがありません" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "公開ジャーナル" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "ATOM 公開ジャーナルフィード" @@ -5595,22 +5798,17 @@ msgid "Destination repository" msgstr "相手のリポジトリ" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -#, fuzzy -msgid "Pull Request Reviewers" -msgstr "プルリクエストレビュアー" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 #, fuzzy msgid "No entries" msgstr "まだエントリがありません" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "取消" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5619,52 +5817,51 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, fuzzy, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -#, fuzzy -msgid "Delete Pull Request" -msgstr "新しいプルリクエスト" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "このプルリクエストを削除してもよろしいですか?" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "クローズ" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +#, fuzzy +msgid "Delete Pull Request" +msgstr "新しいプルリクエスト" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "このプルリクエストを削除してもよろしいですか?" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "このプルリクエストを削除してもよろしいですか?" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" +#, fuzzy, python-format +#| msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "%s プルリクエスト #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, fuzzy, python-format -msgid "Pull request #%s from %s#%s" -msgstr "" +#| msgid "Pull Requests from %s'" +msgid "Pull request %s from %s#%s" +msgstr "%s からのプルリクエスト" #: kallithea/templates/pullrequests/pullrequest_show.html:57 #, fuzzy @@ -5680,93 +5877,94 @@ msgid "Pull request status calculated from votes" msgstr "投票からプルリクエストのステータスを計算" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "未レビュー" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "%d 人のレビュアー" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "プルリクエストはすべてのレビュアーにレビューされました" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "まだブランチがありません" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "なし" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "変更を取得:" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 #, fuzzy msgid "Created by" msgstr "作成日" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "ユーザーを[更新]" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "所有者" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "レビュアー" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +#, fuzzy +msgid "Pull Request Reviewers" +msgstr "プルリクエストレビュアー" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "レビュアー" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "コメントのプレビュー" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "変更を保存" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "新しいプルリクエストを作成" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "最近の変更点" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "プルリクエストを以下のステータスに変更しました:" @@ -5872,8 +6070,8 @@ msgstr "%s RSS フィード" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "有効にする" @@ -5881,45 +6079,45 @@ msgid "Stats gathered: " msgstr "収集した統計情報: " -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "ファイル" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "もっと表示" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "コミット" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "追加されたファイル" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "変更されたファイル" +msgid "files added" +msgstr "追加されたファイル" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "変更されたファイル" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "削除されたファイル" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "コミット" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "追加されたファイル" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "変更されたファイル" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "削除されたファイル" @@ -5941,67 +6139,78 @@ msgid "Fork of" msgstr "フォーク元" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "名前で表示" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "クローン元" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "クローンURL" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "名前で表示" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "IDで表示" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "トレンドファイル" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "ダウンロード" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "まだダウンロードがありません" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "このリポジトリのダウンロードは無効化されています" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "ZIPでダウンロード" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "チェックするとダウンロードアーカイブにサブリポジトリが含まれます" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "サブリポジトリを含める" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "リポジトリサイズ" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "フィード" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "最近の変更点" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "クイックスタート" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "リビジョン %s:%s の README ファイル" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "%s を %s でダウンロード" @@ -6016,3 +6225,251 @@ msgid "Compare Tags" msgstr "タグを比較" +#~ msgid "No comments." +#~ msgstr "%d 個のコメント" + +#~ msgid "public journal" +#~ msgstr "公開ジャーナル" + +#~ msgid "journal" +#~ msgstr "ジャーナル" + +#~ msgid "Locked repository" +#~ msgstr "リポジトリをロックしました" + +#~ msgid "Unlocked repository" +#~ msgstr "リポジトリのロックを解除しました" + +#~ msgid "Unlocked" +#~ msgstr "アンロック" + +#~ msgid "Locked" +#~ msgstr "ロック" + +#~ msgid "Repository has been %s" +#~ msgstr "リポジトリは %s されています" + +#~ msgid "You can't edit this user" +#~ msgstr "このユーザーは編集できません" + +#~ msgid "No Files" +#~ msgstr "ファイルなし" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "ユーザー名 \"%(username)s\" は許可されていません" + +#~ msgid "invalid user name" +#~ msgstr "不正なユーザー名です" + +#~ msgid "Your account is disabled" +#~ msgstr "アカウントは無効です" + +#~ msgid "invalid clone URL" +#~ msgstr "無効なクローンURIです" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "無効なクローンURIです。有効な http(s)/svn+http(s) のURIを指定してください" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "リビジョン %(revs)s はすでにプルリクエストの一部かステータスが設定されています" + +#~ msgid "Defaults" +#~ msgstr "デフォルト設定" + +#~ msgid "My Emails" +#~ msgstr "メールアドレス" + +#~ msgid "Watched" +#~ msgstr "ウォッチ中" + +#~ msgid "My Permissions" +#~ msgstr "権限" + +#~ msgid "expires" +#~ msgstr "失効" + +#~ msgid "reset" +#~ msgstr "リセット" + +#~ msgid "delete" +#~ msgstr "削除" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "ユーザーは外部の source of record に属しているため、ここでは詳細を管理できません" + +#~ msgid "Permissions Administration" +#~ msgstr "権限管理" + +#~ msgid "Overview" +#~ msgstr "概要" + +#~ msgid "Overwrite existing settings" +#~ msgstr "現在の設定を上書きする" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "全てのユーザーに設定されるデフォルトのIPアドレスのホワイトリスト" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "デフォルトのユーザー権限の概要" + +#~ msgid "none" +#~ msgstr "なし" + +#~ msgid "read" +#~ msgstr "読込" + +#~ msgid "write" +#~ msgstr "書込" + +#~ msgid "admin" +#~ msgstr "管理" + +#~ msgid "delegated admin" +#~ msgstr "代理 admin" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "オプション:クローンするリポジトリのHTTP[S]のURLを指定します" + +#~ msgid "Remote URL" +#~ msgstr "リモート URL" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "リモートから変更を取り込む" + +#~ msgid "Non-changeable id" +#~ msgstr "変更不能ID" + +#~ msgid "edit" +#~ msgstr "編集" + +#~ msgid "new value" +#~ msgstr "新しい値" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "remote pull で使う http[s] url です。" + +#~ msgid "Email prefix" +#~ msgstr "メールアドレスプレフィックス" + +#~ msgid "Kallithea email from" +#~ msgstr "Kallithea メールのFrom" + +#~ msgid "Error email from" +#~ msgstr "エラーメールのFrom" + +#~ msgid "Error email recipients" +#~ msgstr "エラーメールの宛先" + +#~ msgid "SMTP server" +#~ msgstr "SMTP サーバー" + +#~ msgid "SMTP username" +#~ msgstr "SMTP ユーザー名" + +#~ msgid "SMTP password" +#~ msgstr "SMTP パスワード" + +#~ msgid "SMTP port" +#~ msgstr "SMTP ポート" + +#~ msgid "SMTP use TLS" +#~ msgstr "SMTP TLSの使用" + +#~ msgid "SMTP use SSL" +#~ msgstr "SMTP SSLの使用" + +#~ msgid "SMTP auth" +#~ msgstr "SMTP 認証" + +#~ msgid "Destroy old data" +#~ msgstr "古いデータを削除する" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "デフォルトの権限" + +#~ msgid "user groups" +#~ msgstr "ユーザーグループ" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "このユーザーは外部の source of record (%s) に属しています。ここでは詳細を管理できません。" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "チェンジセットのステータスを変更" + +#~ msgid "Status change on changeset" +#~ msgstr "チェンジセットのステータスを変更" + +#~ msgid "Comment on changeset" +#~ msgstr "チェンジセットにコメント" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "テキスト内で @username を使うと、その Kallithea のユーザーに通知を送信します" + +#~ msgid "revision" +#~ msgstr "リビジョン" + +#~ msgid "Mimetype" +#~ msgstr "Mimetype" + +#~ msgid "My Repos" +#~ msgstr "リポジトリ" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "所有者" + +#~ msgid "reviewer" +#~ msgstr "レビュアー" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/kallithea.pot --- a/kallithea/i18n/kallithea.pot Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/kallithea.pot Sun Sep 06 23:36:05 2015 +0200 @@ -2,12 +2,13 @@ # Copyright (C) 2015 Various authors, licensing as GPLv3 # This file is distributed under the same license as the Kallithea project. # FIRST AUTHOR , 2015. -##, fuzzy +# +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea 0.2.2\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-07-12 18:32+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,19 +17,23 @@ "Content-Transfer-Encoding: 8bit\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "" @@ -43,48 +48,51 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:745 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "Changing status on a changeset associated with a closed pull request is not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +msgid "No response" +msgstr "" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 -msgid "Unauthorized access to resource" -msgstr "" - -#: kallithea/controllers/error.py:101 -msgid "You don't have permission to view this page" -msgstr "" - #: kallithea/controllers/error.py:103 -msgid "The resource could not be found" +msgid "Unauthorized access to resource" msgstr "" #: kallithea/controllers/error.py:105 +msgid "You don't have permission to view this page" +msgstr "" + +#: kallithea/controllers/error.py:107 +msgid "The resource could not be found" +msgstr "" + +#: kallithea/controllers/error.py:109 msgid "The server encountered an unexpected condition which prevented it from fulfilling the request." msgstr "" @@ -98,17 +106,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -186,45 +194,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:774 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "" -#: kallithea/controllers/files.py:775 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -241,8 +247,8 @@ #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 #: kallithea/templates/base/base.html:131 -#: kallithea/templates/base/base.html:394 -#: kallithea/templates/base/base.html:566 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "" @@ -262,141 +268,157 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "Your password reset was successful, new password has been sent to your email" msgstr "" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "This pull request is based on another %s revision and there is no simple diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "" @@ -412,21 +434,21 @@ msgid "An error occurred during search operation." msgstr "" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:388 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:102 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -439,38 +461,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -484,7 +506,7 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +msgid "Unmodified" msgstr "" #: kallithea/controllers/admin/gists.py:262 @@ -500,117 +522,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" msgstr "" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" msgstr "" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 #: kallithea/templates/base/base.html:259 #: kallithea/templates/base/base.html:260 #: kallithea/templates/base/base.html:266 #: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -618,11 +656,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -630,217 +668,207 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:429 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:162 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:237 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:246 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:249 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:289 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "" -#: kallithea/controllers/admin/repos.py:308 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:335 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:338 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:343 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:346 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:351 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:405 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:461 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:475 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" +#: kallithea/controllers/admin/repos.py:460 +msgid "-- Not a fork --" +msgstr "" + #: kallithea/controllers/admin/repos.py:491 -msgid "-- Not a fork --" -msgstr "" - -#: kallithea/controllers/admin/repos.py:522 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" +#: kallithea/controllers/admin/repos.py:512 +msgid "Nothing" +msgstr "" + +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 +msgid "An error occurred during this operation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +msgid "Repository has been locked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +msgid "Repository has been unlocked" +msgstr "" + #: kallithea/controllers/admin/repos.py:543 -msgid "Nothing" -msgstr "" - -#: kallithea/controllers/admin/repos.py:545 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:552 -msgid "An error occurred during this operation" -msgstr "" - #: kallithea/controllers/admin/repos.py:568 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:571 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:574 -#: kallithea/controllers/admin/repos.py:601 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:592 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:595 -msgid "Locked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:597 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:615 +#: kallithea/controllers/admin/repos.py:582 msgid "Cache invalidation successful" msgstr "" -#: kallithea/controllers/admin/repos.py:619 +#: kallithea/controllers/admin/repos.py:586 msgid "An error occurred during cache invalidation" msgstr "" -#: kallithea/controllers/admin/repos.py:634 +#: kallithea/controllers/admin/repos.py:601 msgid "Pulled from remote location" msgstr "" +#: kallithea/controllers/admin/repos.py:604 +msgid "An error occurred during pull from remote location" +msgstr "" + #: kallithea/controllers/admin/repos.py:637 -msgid "An error occurred during pull from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:670 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -854,7 +882,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -931,83 +959,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:746 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:814 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" -#: kallithea/lib/auth.py:851 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:626 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1023,225 +1048,227 @@ msgid "No changes detected" msgstr "" -#: kallithea/lib/helpers.py:610 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:613 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:676 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:682 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:701 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "" -#: kallithea/lib/helpers.py:702 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:703 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "" -#: kallithea/lib/helpers.py:727 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:754 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:756 kallithea/lib/helpers.py:768 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:758 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 +msgid "[forked] repository" +msgstr "" + #: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 -msgid "[forked] repository" -msgstr "" - -#: kallithea/lib/helpers.py:762 kallithea/lib/helpers.py:772 msgid "[updated] repository" msgstr "" +#: kallithea/lib/helpers.py:762 +msgid "[downloaded] archive from repository" +msgstr "" + #: kallithea/lib/helpers.py:764 -msgid "[downloaded] archive from repository" -msgstr "" - -#: kallithea/lib/helpers.py:766 msgid "[delete] repository" msgstr "" +#: kallithea/lib/helpers.py:772 +msgid "[created] user" +msgstr "" + #: kallithea/lib/helpers.py:774 -msgid "[created] user" +msgid "[updated] user" msgstr "" #: kallithea/lib/helpers.py:776 -msgid "[updated] user" +msgid "[created] user group" msgstr "" #: kallithea/lib/helpers.py:778 -msgid "[created] user group" +msgid "[updated] user group" msgstr "" #: kallithea/lib/helpers.py:780 -msgid "[updated] user group" +msgid "[commented] on revision in repository" msgstr "" #: kallithea/lib/helpers.py:782 -msgid "[commented] on revision in repository" +msgid "[commented] on pull request for" msgstr "" #: kallithea/lib/helpers.py:784 -msgid "[commented] on pull request for" +msgid "[closed] pull request for" msgstr "" #: kallithea/lib/helpers.py:786 -msgid "[closed] pull request for" +msgid "[pushed] into" msgstr "" #: kallithea/lib/helpers.py:788 -msgid "[pushed] into" +msgid "[committed via Kallithea] into repository" msgstr "" #: kallithea/lib/helpers.py:790 -msgid "[committed via Kallithea] into repository" +msgid "[pulled from remote] into repository" msgstr "" #: kallithea/lib/helpers.py:792 -msgid "[pulled from remote] into repository" +msgid "[pulled] from" msgstr "" #: kallithea/lib/helpers.py:794 -msgid "[pulled] from" +msgid "[started following] repository" msgstr "" #: kallithea/lib/helpers.py:796 -msgid "[started following] repository" -msgstr "" - -#: kallithea/lib/helpers.py:798 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1127 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1131 -msgid "No Files" +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 +msgid "new file" msgstr "" #: kallithea/lib/helpers.py:1197 -msgid "new file" +msgid "mod" msgstr "" #: kallithea/lib/helpers.py:1200 -msgid "mod" +msgid "del" msgstr "" #: kallithea/lib/helpers.py:1203 -msgid "del" -msgstr "" - -#: kallithea/lib/helpers.py:1206 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1211 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1443 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "%s repository is not mapped to db perhaps it was created or renamed from the filesystem please run the application again in order to rescan repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "" @@ -1256,7 +1283,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1271,7 +1298,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1286,7 +1313,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1301,7 +1328,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1340,7 +1367,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1355,7 +1382,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1370,7 +1397,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1385,7 +1412,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1400,7 +1427,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1436,7 +1463,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1451,7 +1478,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1466,7 +1493,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1481,7 +1508,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1493,7 +1520,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1505,7 +1532,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1517,7 +1544,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1529,7 +1556,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1541,7 +1568,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1552,7 +1579,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1563,7 +1590,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1574,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1585,7 +1612,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1596,7 +1623,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1607,7 +1634,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1618,7 +1645,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1629,7 +1656,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1640,7 +1667,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1651,7 +1678,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1662,29 +1689,125 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:165 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +msgid "Only admins can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1695 +msgid "Non-admins can can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "" @@ -1703,283 +1826,296 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by %(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format -msgid "Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +msgid "[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "[Comment from %(comment_username)s] %(repo_name)s pull request %(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "" -#: kallithea/model/pull_request.py:133 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" + +#: kallithea/model/user.py:254 #, python-format msgid "User \"%s\" still owns %s repositories and cannot be removed. Switch owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "User \"%s\" still owns %s repository groups and cannot be removed. Switch owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "User \"%s\" still owns %s user groups and cannot be removed. Switch owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 -msgid "Username may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 +msgid "Username may only contain alphanumeric characters underscores, periods or dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "user group name may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "" - -#: kallithea/model/validators.py:340 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "" + +#: kallithea/model/validators.py:331 msgid "Token mismatch" msgstr "" -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +msgid "Invalid repository URL" +msgstr "" + +#: kallithea/model/validators.py:466 +msgid "Invalid repository URL. It must be a valid http, https, ssh, svn+http or svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" -msgstr "" - -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" +msgstr "" + +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "The LDAP Login attribute of the CN must be specified - this is the name of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2041,13 +2177,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2063,7 +2199,7 @@ msgid "Description" msgstr "" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2084,11 +2220,11 @@ msgid "Name" msgstr "" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2097,18 +2233,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:138 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2120,7 +2257,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2132,11 +2269,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2148,7 +2285,7 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 #: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 @@ -2170,39 +2307,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 #: kallithea/templates/base/base.html:309 msgid "Username" msgstr "" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 #: kallithea/templates/base/base.html:318 msgid "Password" msgstr "" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:329 -msgid "Don't have an account ?" -msgstr "" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2248,26 +2385,26 @@ msgstr "" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "" @@ -2375,104 +2512,91 @@ msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:33 -msgid "Comma separated list of plugins. Order of plugins is also order in which Kallithea will try to authenticate user" +msgid "Comma-separated list of plugins; Kallithea will try user authentication in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 #: kallithea/templates/admin/defaults/defaults.html:82 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:5 -msgid "Repository Defaults" -msgstr "" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" +msgid "Repository Defaults" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:33 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:42 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 #: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:46 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "Private repositories are only visible to people explicitly added as collaborators." msgstr "" #: kallithea/templates/admin/defaults/defaults.html:53 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:57 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" #: kallithea/templates/admin/defaults/defaults.html:63 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:67 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" #: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2502,6 +2626,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2512,7 +2642,7 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +msgid "Never" msgstr "" #: kallithea/templates/admin/gists/edit.html:145 @@ -2520,7 +2650,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2574,25 +2704,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 #: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2622,11 +2754,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 #: kallithea/templates/admin/repos/repo_edit_advanced.html:75 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "" @@ -2635,10 +2778,19 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 #: kallithea/templates/data_table/_dt_elements.html:165 +#: kallithea/templates/data_table/_dt_elements.html:167 #: kallithea/templates/data_table/_dt_elements.html:181 +#: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 #: kallithea/templates/files/files_source.html:44 @@ -2672,26 +2824,29 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" +msgid "Owned Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" +msgid "Watched Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +msgid "Show Permissions" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2699,56 +2854,42 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 #, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" +msgid "Confirm to reset this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 #, python-format -msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +msgid "Remove" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 #: kallithea/templates/admin/permissions/permissions_ips.html:38 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2761,19 +2902,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:12 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:129 -#: kallithea/templates/data_table/_dt_elements.html:157 -#: kallithea/templates/data_table/_dt_elements.html:173 -#: kallithea/templates/data_table/_dt_elements.html:189 -msgid "delete" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2794,19 +2922,24 @@ msgid "Change Your Account Password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "" @@ -2827,11 +2960,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "Your user is in an external Source of Record; some details cannot be managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2890,15 +3019,9 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" +msgid "Default Permissions" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:28 @@ -2907,14 +3030,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "" @@ -2924,19 +3043,21 @@ msgid "Allow access to Kallithea without needing to log in. Anonymous users use %s user permissions." msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:25 +msgid "All default permissions on each repository will be reset to chosen permission, note that all custom default permission on repositories will be lost" +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:26 -msgid "All default permissions on each repository will be reset to chosen permission, note that all custom default permission on repositories will be lost" +msgid "Apply to all existing repositories" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 #: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" @@ -2946,47 +3067,79 @@ msgid "All default permissions on each repository group will be reset to chosen permission, note that all custom default permission on repository groups will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 #: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 -msgid "All default permissions on each user group will be reset to chosen permission, note that all custom default permission on repository groups will be lost" +msgid "All default permissions on each user group will be reset to chosen permission, note that all custom default permission on user groups will be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +msgid "Top level repository creation" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "Note: This will also give all users API access to create repositories everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 -msgid "Write permission to a repository group allows creating repositories inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "With this, write permission to a repository group allows creating repositories inside that group. Without this, group write permissions mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" #: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 #, python-format -msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "" #: kallithea/templates/admin/permissions/permissions_ips.html:19 @@ -2996,7 +3149,7 @@ #: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 @@ -3020,12 +3173,12 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3052,10 +3205,16 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3076,7 +3235,7 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" @@ -3092,38 +3251,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3132,7 +3263,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +msgid "Default" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3141,12 +3272,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3156,7 +3282,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3200,42 +3326,37 @@ msgid "Number of Top-level Repositories" msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +msgid "Clone remote repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "Optional: URL of a remote repository. If set, the repository will be created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "Default revision for files page, downloads, full text search index and readme generation" msgstr "" @@ -3276,8 +3397,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:175 -#: kallithea/templates/summary/summary.html:176 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "" @@ -3397,8 +3518,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "" @@ -3437,23 +3558,23 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +msgid "Private Repository" msgstr "" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +msgid "Remote repository URL" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +msgid "Pull Changes from Remote Repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +msgid "Confirm to pull changes from remote repository." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 @@ -3476,36 +3597,22 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:122 -#: kallithea/templates/data_table/_dt_elements.html:123 -#: kallithea/templates/data_table/_dt_elements.html:150 -#: kallithea/templates/data_table/_dt_elements.html:151 -#: kallithea/templates/data_table/_dt_elements.html:167 -#: kallithea/templates/data_table/_dt_elements.html:183 -msgid "edit" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +msgid "Remote repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +msgid "Repository URL" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "Optional: URL of a remote repository. If set, the repository can be pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3562,55 +3669,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3677,11 +3740,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 -msgid "Check this option to remove references to repositories that no longer exist in on the filesystem." +msgid "Check this option to remove all comments, pull requests and other records related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3700,7 +3763,7 @@ msgid "Verify if Kallithea's Git hooks are installed for each repository. Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3725,38 +3788,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -3883,11 +3950,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -3895,7 +3962,7 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -3912,6 +3979,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -3931,15 +3999,8 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +msgid "Show Members" msgstr "" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -3947,6 +4008,12 @@ msgid "User Group: %s" msgstr "" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 #: kallithea/templates/data_table/_dt_elements.html:174 #, python-format @@ -3973,10 +4040,6 @@ msgid "User Groups Administration" msgstr "" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "" @@ -4002,11 +4065,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4016,7 +4075,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4026,7 +4085,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 @@ -4052,16 +4111,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "This user is in an external Source of Record (%s); some details cannot be managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4184,12 +4238,6 @@ msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:229 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "" - #: kallithea/templates/base/base.html:234 #: kallithea/templates/base/base.html:235 msgid "Public journal" @@ -4238,29 +4286,29 @@ msgid "Forgot password ?" msgstr "" -#: kallithea/templates/base/base.html:351 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:399 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:528 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:537 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" +msgid "Inherit defaults" msgstr "" #: kallithea/templates/base/default_perms_box.html:19 #, python-format -msgid "Select to inherit permissions from %s permissions settings, and default IP address whitelist." +msgid "Select to inherit global settings, IP whitelist and permissions from the %s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4288,7 +4336,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4384,6 +4433,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "" @@ -4413,6 +4470,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4441,10 +4499,6 @@ msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4461,7 +4515,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4474,7 +4528,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4484,7 +4538,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4517,7 +4571,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "" @@ -4533,7 +4587,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4574,7 +4628,7 @@ msgstr "" #: kallithea/templates/changelog/changelog_summary_data.html:90 -msgid "Push new repo" +msgid "Push new repository" msgstr "" #: kallithea/templates/changelog/changelog_summary_data.html:98 @@ -4587,15 +4641,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4618,7 +4672,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4629,144 +4683,147 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +msgid "No revisions" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +msgid "on pull request" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +msgid "No title" msgstr "" #: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -msgid "No title" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +msgid "on this changeset" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 msgid "Delete comment?" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +msgid "Status change" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 +#: kallithea/templates/changeset/changeset_file_comment.html:150 msgid "Use @username inside this text to notify another user." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 msgid "Set changeset status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "" @@ -4785,7 +4842,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4794,11 +4851,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "" @@ -4810,29 +4867,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, python-format msgid "%s changesets" msgstr "" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "" @@ -4856,18 +4925,13 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" @@ -5022,10 +5086,6 @@ msgid "Commit Changes" msgstr "" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5051,18 +5111,14 @@ msgstr "" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" +msgid "Last Modified" msgstr "" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5174,8 +5230,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:146 -#: kallithea/templates/summary/summary.html:147 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5226,8 +5282,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:152 -#: kallithea/templates/summary/summary.html:153 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5248,18 +5304,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" +msgid "My Repositories" msgstr "" #: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5301,20 +5352,14 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +msgid "Vote" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5323,50 +5368,46 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, python-format +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5382,86 +5423,86 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 msgid "Remove reviewer" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 msgid "Potential Reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5562,8 +5603,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:104 -#: kallithea/templates/summary/summary.html:120 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5572,12 +5613,12 @@ msgstr "" #: kallithea/templates/summary/statistics.html:89 -#: kallithea/templates/summary/summary.html:353 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" #: kallithea/templates/summary/statistics.html:113 -#: kallithea/templates/summary/summary.html:377 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" @@ -5631,6 +5672,14 @@ msgid "Fork of" msgstr "" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" +msgstr "" + #: kallithea/templates/summary/summary.html:78 msgid "Show by Name" msgstr "" @@ -5639,57 +5688,57 @@ msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:96 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" +#: kallithea/templates/summary/summary.html:108 +msgid "Download" +msgstr "" + #: kallithea/templates/summary/summary.html:112 -msgid "Download" -msgstr "" - -#: kallithea/templates/summary/summary.html:116 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:118 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:124 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:129 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:129 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:160 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:167 -#: kallithea/templates/summary/summary.html:169 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:190 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "" -#: kallithea/templates/summary/summary.html:192 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "" -#: kallithea/templates/summary/summary.html:206 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:297 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,9 +5,9 @@ # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-05-28 22:41+0200\n" "Last-Translator: Sam Jaques \n" "Language-Team: Dutch (Belgium) " @@ -20,19 +20,23 @@ "X-Generator: Weblate 2.3-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Er zijn nog geen changesets" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Geen" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(gesloten)" @@ -48,52 +52,56 @@ #: kallithea/controllers/changeset.py:169 #, fuzzy, python-format -msgid "increase diff context to %(num)s lines" +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "vergroot de diff context met %(num)s lijnen" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Deze revisie bestaat niet in deze repository" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Geen kommentaar." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -"Het is niet toegestaan de status te wijzigen van een changeset geassocieerd " -"met een gesloten pull request" - -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +"Het is niet toegestaan de status te wijzigen van een changeset " +"geassocieerd met een gesloten pull request" + +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "Selecteer de changeset" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +msgid "No response" +msgstr "" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 -msgid "Unauthorized access to resource" -msgstr "" - -#: kallithea/controllers/error.py:101 -msgid "You don't have permission to view this page" -msgstr "" - #: kallithea/controllers/error.py:103 -msgid "The resource could not be found" +msgid "Unauthorized access to resource" msgstr "" #: kallithea/controllers/error.py:105 +msgid "You don't have permission to view this page" +msgstr "" + +#: kallithea/controllers/error.py:107 +msgid "The resource could not be found" +msgstr "" + +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -109,17 +117,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -197,45 +205,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -251,9 +257,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "" @@ -273,145 +279,161 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, fuzzy, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "" @@ -427,21 +449,21 @@ msgid "An error occurred during search operation." msgstr "" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -454,38 +476,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -499,7 +521,7 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +msgid "Unmodified" msgstr "" #: kallithea/controllers/admin/gists.py:262 @@ -515,117 +537,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" msgstr "" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" msgstr "" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -633,11 +671,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -645,221 +683,213 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been locked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been unlocked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" msgstr "" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -875,7 +905,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -952,83 +982,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1044,158 +1071,160 @@ msgid "No changes detected" msgstr "" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:699 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1203,69 +1232,69 @@ "repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "" @@ -1280,7 +1309,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1295,7 +1324,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1310,7 +1339,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1325,7 +1354,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1364,7 +1393,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1379,7 +1408,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1394,7 +1423,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1409,7 +1438,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1424,7 +1453,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1460,7 +1489,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1475,7 +1504,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1490,7 +1519,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1505,7 +1534,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1517,7 +1546,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1529,7 +1558,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1541,7 +1570,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1553,7 +1582,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1565,7 +1594,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1576,7 +1605,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1587,7 +1616,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1598,7 +1627,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1609,7 +1638,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1620,7 +1649,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1631,7 +1660,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1642,7 +1671,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1653,7 +1682,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1664,7 +1693,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1675,7 +1704,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1686,29 +1715,131 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +msgid "Only admins can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1695 +msgid "Non-admins can can fork repositories" +msgstr "" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "" @@ -1727,297 +1858,316 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" + +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "" + +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +msgid "Invalid repository URL" +msgstr "" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" -msgstr "" - -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" +msgstr "" + +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2079,13 +2229,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2097,11 +2247,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2122,11 +2272,11 @@ msgid "Name" msgstr "" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2135,18 +2285,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2158,7 +2309,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2170,11 +2321,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2186,10 +2337,10 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2199,7 +2350,7 @@ msgstr "" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "" @@ -2208,39 +2359,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2288,26 +2439,26 @@ msgstr "" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "" @@ -2416,108 +2567,94 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +msgid "Repository Defaults" +msgstr "" + +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2549,6 +2686,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2559,7 +2702,7 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +msgid "Never" msgstr "" #: kallithea/templates/admin/gists/edit.html:145 @@ -2567,7 +2710,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2590,12 +2733,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2621,25 +2764,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2669,11 +2814,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "" @@ -2682,9 +2838,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2710,7 +2875,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "" @@ -2719,26 +2884,29 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" +msgid "Owned Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" +msgid "Watched Repositories" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +msgid "Show Permissions" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2746,56 +2914,42 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 #, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" +msgid "Confirm to reset this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 #, python-format -msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +msgid "Remove" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2808,19 +2962,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2841,19 +2982,24 @@ msgid "Change Your Account Password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "" @@ -2874,13 +3020,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2916,7 +3056,7 @@ msgstr "" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2934,20 +3074,14 @@ msgstr "" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" +msgid "Default Permissions" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:28 @@ -2956,14 +3090,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "" @@ -2975,23 +3105,25 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +msgid "Apply to all existing repositories" +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "" @@ -3003,70 +3135,99 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +msgid "Top level repository creation" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm to delete this IP address: %s" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" +msgid "New IP address" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 @@ -3090,12 +3251,12 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3113,19 +3274,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3146,12 +3313,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3162,38 +3329,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3202,7 +3341,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +msgid "Default" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3211,12 +3350,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3226,7 +3360,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3275,42 +3409,39 @@ msgid "Number of Top-level Repositories" msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +msgid "Clone remote repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3357,8 +3488,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "" @@ -3380,45 +3511,45 @@ msgid "Public Journal Visibility" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3426,33 +3557,33 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3490,8 +3621,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "" @@ -3530,27 +3661,27 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +msgid "Private Repository" msgstr "" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +msgid "Remote repository URL" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +msgid "Pull Changes from Remote Repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +msgid "Confirm to pull changes from remote repository." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" +msgid "Permanent Repository ID" msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 @@ -3565,43 +3696,31 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +msgid "Remote repository" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +msgid "Repository URL" +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3658,55 +3777,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3779,13 +3854,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3806,7 +3881,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3833,38 +3908,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4016,11 +4095,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4028,7 +4107,7 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4047,6 +4126,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4066,15 +4146,8 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +msgid "Show Members" msgstr "" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -4082,8 +4155,14 @@ msgid "User Group: %s" msgstr "" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4108,10 +4187,6 @@ msgid "User Groups Administration" msgstr "" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "" @@ -4137,11 +4212,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4151,7 +4222,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4161,11 +4232,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4187,18 +4258,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4219,47 +4283,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 -#: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 -msgid "Changelog" -msgstr "" - #: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:141 +#: kallithea/templates/changelog/changelog.html:14 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 +msgid "Changelog" +msgstr "" + +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4269,129 +4341,123 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 -#: kallithea/templates/forks/fork.html:9 -msgid "Fork" +msgid "Follow" msgstr "" #: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 +#: kallithea/templates/forks/fork.html:9 +msgid "Fork" +msgstr "" + +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" +msgid "Inherit defaults" msgstr "" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4419,7 +4485,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4446,7 +4513,7 @@ msgstr "" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "" @@ -4517,6 +4584,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4547,6 +4622,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4575,10 +4651,6 @@ msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4595,7 +4667,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4608,7 +4680,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4618,7 +4690,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4651,7 +4723,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "" @@ -4667,7 +4739,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4697,21 +4769,21 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +msgid "Push new repository" +msgstr "" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4721,15 +4793,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4752,7 +4824,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4763,147 +4835,155 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +msgid "No revisions" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Status change from pull request" +msgid "on pull request" +msgstr "Statuswijziging -> %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +msgid "No title" msgstr "" #: kallithea/templates/changeset/changeset_file_comment.html:24 #, fuzzy -msgid "Status change from pull request" -msgstr "Statuswijziging -> %s" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -msgid "No title" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#| msgid "Select changeset" +msgid "on this changeset" +msgstr "Selecteer de changeset" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Statuswijziging -> %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Selecteer de changeset" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(gesloten)" @@ -4923,7 +5003,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4932,11 +5012,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "" @@ -4948,29 +5028,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "" @@ -4994,56 +5086,43 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5169,10 +5248,6 @@ msgid "Commit Changes" msgstr "Selecteer de changeset" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5198,18 +5273,14 @@ msgstr "" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" +msgid "Last Modified" msgstr "" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5321,8 +5392,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5373,8 +5444,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5382,7 +5453,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "" @@ -5395,18 +5466,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" -msgstr "" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5448,20 +5514,14 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +msgid "Vote" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5470,50 +5530,48 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5529,89 +5587,89 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "Selecteer de changeset" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5712,8 +5770,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5721,45 +5779,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 -msgid "commits" -msgstr "" - #: kallithea/templates/summary/statistics.html:390 -msgid "files added" +msgid "commits" msgstr "" #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" +msgid "files added" msgstr "" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "" -#: kallithea/templates/summary/statistics.html:394 -msgid "commit" -msgstr "" - #: kallithea/templates/summary/statistics.html:395 -msgid "file added" +msgid "commit" msgstr "" #: kallithea/templates/summary/statistics.html:396 -msgid "file changed" +msgid "file added" msgstr "" #: kallithea/templates/summary/statistics.html:397 +msgid "file changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "" @@ -5781,66 +5839,74 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" msgstr "" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "Statuswijziging -> %s" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" @@ -5853,3 +5919,419 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "" + +#~ msgid "No comments." +#~ msgstr "Geen kommentaar." + +#~ msgid "public journal" +#~ msgstr "" + +#~ msgid "journal" +#~ msgstr "" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Cannot delete %s it still contains attached forks" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "" + +#~ msgid "Locked" +#~ msgstr "" + +#~ msgid "Repository has been %s" +#~ msgstr "" + +#~ msgid "You can't edit this user" +#~ msgstr "" + +#~ msgid "compare view" +#~ msgstr "" + +#~ msgid "fork name %s" +#~ msgstr "" + +#~ msgid "Pull request #%s" +#~ msgstr "" + +#~ msgid "No Files" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "You can't remove this user since it's crucial for entire application" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid password" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "" + +#~ msgid "Your account is disabled" +#~ msgstr "" + +#~ msgid "Repository name %(repo)s is disallowed" +#~ msgstr "" + +#~ msgid "invalid clone URL" +#~ msgstr "" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" + +#~ msgid "This email address is already taken" +#~ msgstr "" + +#~ msgid "email \"%(email)s\" does not exist." +#~ msgstr "" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "" + +#~ msgid "My Permissions" +#~ msgstr "" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "Repository creation" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "" + +#~ msgid "none" +#~ msgstr "" + +#~ msgid "read" +#~ msgstr "" + +#~ msgid "write" +#~ msgstr "" + +#~ msgid "admin" +#~ msgstr "" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "default" +#~ msgstr "" + +#~ msgid "revoke" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "" + +#~ msgid "private repository" +#~ msgstr "" + +#~ msgid "Remote URL" +#~ msgstr "" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "merge" +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Comment from pull request" +#~ msgstr "" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "" + +#~ msgid "My Repos" +#~ msgstr "" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/pl/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/pl/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/pl/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -9,9 +9,9 @@ # Nemcio , 2012-2013 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-04-04 09:08+0200\n" "Last-Translator: Andrew Shadura \n" "Language-Team: Polish " @@ -25,19 +25,23 @@ "X-Generator: Weblate 2.3-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Brak zestawienia zmian" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Brak" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(zamknięty)" @@ -52,20 +56,15 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Brak komentarzy." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" @@ -73,33 +72,43 @@ "Zmiana statusu na grupy zmian powiązania łączy zamkniętego wniosku jest " "niedozwolona" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "Wybrane zmiany" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "rewizja" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" "Wniosek nie może być rozumiany przez serwer z powodu zniekształconej " "składni." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Nieautoryzowany dostęp do zasobów" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "Nie masz uprawnień do przeglądania tej strony" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "Zasób nie został znaleziony" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -117,17 +126,17 @@ msgid "%s %s feed" msgstr "%s %s zasilać" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "Lista zmian była zbyt duża i została ucięta..." -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s zakomitowal w %s" @@ -205,45 +214,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "Lokalizacja musi być ścieżką względną i nie może zawierać .. ścieżki" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Pobieranie wyłączone" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Nieznana wersja %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Puste repozytorium" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Nieznany typ archiwum" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Różnice" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Gałęzie" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Etykiety" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Wystąpił błąd podczas rozgałęzienia %s repozytorium" @@ -259,9 +266,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Repozytoria" @@ -281,146 +288,164 @@ msgstr "Bookmark" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" -msgstr "Dziennik publiczny" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" +msgstr "Dziennik Publiczny" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "dziennik" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "Dziennik" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Udało Ci się zarejestrować na stronie" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "Twój link zresetowania hasła został wysłany" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "Twoje hasło zostało zresetowane, nowe hasło zostanie wysłane na e-mail" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (zamknięty)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Grupy zmian" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Specjalne" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "gałęzie" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Zakładki" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "Brak opisu" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "Prośba o wykonanie połączenia gałęzi została wykonana prawidłowo" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "Wystąpił błąd podczas prośby o połączenie gałęzi" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "Recenzje wniosków połączenia gałęzi" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 #, fuzzy msgid "Pull request updated" msgstr "Połączone gałęzie" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "Prośba o skasowanie połączenia gałęzi została wykonana prawidłowo" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +#, fuzzy +#| msgid "Vote for pull request status" +msgid "No permission to change pull request status" +msgstr "Zagłosuj na żądanie na grupę zmian" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "Zamknięcie." @@ -436,22 +461,22 @@ msgid "An error occurred during search operation." msgstr "Wystąpił błąd podczas operacji wyszukiwania." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 #, fuzzy msgid "No data ready yet" msgstr "Żadne dane nie zostały załadowane" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "Statystyki są wyłączone dla tego repozytorium" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "Ustawienia autentykacji poprawnie zaktualizowane" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "wystapił błąd podczas uaktualniania ustawień autentykacji" @@ -464,38 +489,40 @@ msgstr "wystąpił błąd podczas aktualizacji wartości domyślnych" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "na zawsze" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 minut" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 godzina" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 dzień" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 miesiąc" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "Czas życia" @@ -509,8 +536,10 @@ msgstr "Usuń gist %s" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +#, fuzzy +#| msgid "Last Modified" +msgid "Unmodified" +msgstr "Ostatnio modyfikowany" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -525,119 +554,135 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" "Nie możesz edytować tego użytkownika ponieważ jest kluczowy dla całej " "aplikacji" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Twoje konto zostało pomyślnie zaktualizowane" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "wystąpił błąd podczas aktualizacji użytkownika %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "Dodano e-mail %s do użytkownika" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Wystąpił błąd podczas zapisywania e-maila" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "Usunięto e-mail użytkownikowi" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" -msgstr "" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Odczyt" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Odczyt" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Zapis" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Zapis" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Administracja" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Wyłączone" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Dozwolona z ręczną aktywacją konta" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Dozwolona z automatyczną aktywacją konta" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -645,11 +690,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Ręczna aktywacja nowego konta" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -657,221 +702,212 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Automatyczna aktywacja nowego konta" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Włączone" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "Globalne uprawnienia zaktualizowane poprawnie" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Wystąpił błąd podczas aktualizacji uprawnień" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Wystąpił błąd podczas tworzenia grupy repo %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Utworzono grupę repo %s" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Wystąpił błąd podczas tworzenia grupy repo %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Zaktualizowano grupę repo %s" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Wystąpił błąd podczas aktualizacji grupy repo %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Ta grupa zawiera %s repozytorium i nie może być usunięta" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Ta grupa zawiera %s repozytorium i nie może być usunięta" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Usunięto grupę repo %s" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Wystąpił błąd podczas usuwania z repozytorium grupy %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Nie można cofnąć zezwolenia dla admina jako admin" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Aktualizacja uprawnień grup repozytorium" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Wystąpił błąd podczas cofania zezwolenia" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "utworzone repozytorium %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "utworzone repozytorium %s z %s" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "Gałęzi %s w repozytorium %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Utworzone repozytorium %s" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Repozytorium %s zostało pomyślnie zaktualizowane" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Wystąpił błąd podczas aktualizacji repozytorium %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "Oderwane rozgałęzienie %s" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "Usunięte repozytorium %s" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Usunięte repozytorium %s" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "Nie można usunąć %s nadal zawiera załączniki rozgałęzienia" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Wystąpił błąd podczas usuwania %s" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Uprawnienia repozytorium zostały zaktualizowane" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Wystąpił błąd podczas tworzenia użytkownika %s" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Wystąpił błąd podczas zapisywania e-maila" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- Brak rozgalezienia --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "Zaktualizowano widoczność stron w publicznym dzienniku" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "Wystąpił błąd podczas ustawiania tego repozytorium w dzienniku publicznym" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Niezgodność tokenu" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Brak" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Oznaczono %s repo jako rozwidlenie %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Wystąpił błąd podczas tej operacji" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "Zablokowane repozytorium" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "Odblokowane repozytorium" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "Repozytorium nie jest zablokowane" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "Repozytorium nie jest zablokowane" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Wystąpił błąd podczas odblokowywania" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Odblokowany" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Zablokowany" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "Cache wyczyszczony poprawnie" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Wystąpił błąd podczas unieważniania cache" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Pobieranie z lokalizacji zdalnej" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "Repozytoriów jest %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "Cache wyczyszczony poprawnie" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Wystąpił błąd podczas unieważniania cache" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Pobieranie z lokalizacji zdalnej" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "Wystąpił błąd podczas pobierania z lokalizacji zdalnej" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Wystąpił błąd podczas usuwania z repozytorium statystyk" @@ -887,15 +923,15 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "Wystąpił błąd podczas aktualizacji ustawień aplikacji" #: kallithea/controllers/admin/settings.py:213 #, python-format msgid "Repositories successfully rescanned. Added: %s. Removed: %s." msgstr "" -"Repozytoria z powodzeniem zostały ponownie zeskanowane dodano: %s, usunięto: " -"%s." +"Repozytoria z powodzeniem zostały ponownie zeskanowane dodano: %s, " +"usunięto: %s." #: kallithea/controllers/admin/settings.py:270 msgid "Updated application settings" @@ -966,83 +1002,80 @@ msgstr "Grupa docelowa nie może być taka sama" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Aktualizacja uprawnień grupy użytkowników" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Aktualizacja uprawnień" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Wystąpił błąd podczas zapisywania uprawnień" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Utworzono użytkownika %s" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Wystąpił błąd podczas tworzenia użytkownika %s" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "Użytkownik został zaktualizowany" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Użytkownik został usunięty" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Wystąpił błąd podczas usuwania użytkownika" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Nie możesz edytować tego użytkownika" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "Dodano ip %s do listy dozwolonych adresów użytkownia" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Wystąpił błąd podczas zapisywania e-maila" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "Usunięto adres ip z listy dozwolonych adresów dla użytkownika" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "Obserwatorzy %s" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "Musisz być zarejestrowanym użytkownikiem, żeby wykonać to działanie" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Musisz być zalogowany, żeby oglądać stronę" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Nie znaleziono changeset" @@ -1060,158 +1093,164 @@ msgid "No changes detected" msgstr "Nie wykryto zmian" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Usunięta gałąź: %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Utworzony tag: %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Pokaż wszystkie zestawienia zmian changesets %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "Wyświetl porównanie" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "i" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s więcej" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "rewizja" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "nazwa rozgałęzienia %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "Połączonych gałęzi #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[usunięte] repozytorium" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[utworzone] repozytorium" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[utworzone] repozytorium jako rozgałęzienie" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[rozgałęzione] repozytorium" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[zaktualizowane] repozytorium" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "[pobierz] archiwum z repozytorium" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[skasowane] repozytorium" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "[utworzony] użytkownik" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "[zaktualizowany] użytkownik" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "[utworzona] grupa użytkowników" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "[zaktualizowana] grupa użytkowników" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[komentarz] do zmiany w repozytorium" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[komentarz] wniosek o połączenie gałęzi" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[zamknięty] wniosek o połączenie gałęzi" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[wysłane zmiany] w" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[synchronizacja przez Kallithea] z repozytorium" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[pobieranie z zdalnego] do repozytorium" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[pobrano]" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[start następnego] repozytorium" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[zatrzymany po] repozytorium" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " i %s więcej" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Brak Plików" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "Brak plików" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "nowy plik" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "modyfikuj" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "kasuj" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "zmień nazwę" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1222,7 +1261,7 @@ "zmienione z systemie plików proszę uruchomić aplikację ponownie, aby " "ponownie przeskanować repozytoria" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" @@ -1230,7 +1269,7 @@ msgstr[1] "%d lata" msgstr[2] "%d lat" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" @@ -1238,7 +1277,7 @@ msgstr[1] "%d miesięcy" msgstr[2] "%d miesięcy" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" @@ -1246,7 +1285,7 @@ msgstr[1] "%d dni" msgstr[2] "%d dni" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" @@ -1254,7 +1293,7 @@ msgstr[1] "%d godziny" msgstr[2] "%d godzin" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" @@ -1262,7 +1301,7 @@ msgstr[1] "%d minuty" msgstr[2] "%d minut" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" @@ -1270,27 +1309,27 @@ msgstr[1] "%d sekund" msgstr[2] "%d sekund" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "w %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s temu" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "w %s i %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s i %s temu" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "przed chwilą" @@ -1305,7 +1344,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Brak dostępu do repozytorium" @@ -1320,7 +1359,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Repozytorium do odczytu" @@ -1335,7 +1374,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Repozytorium do zapisu" @@ -1350,7 +1389,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Administracja dostępu do repozytorium" @@ -1389,7 +1428,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Administrator Repo" @@ -1404,7 +1443,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Tworzenie repozytorium jest wyłączone" @@ -1419,7 +1458,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Tworzenie repozytorium jest włączone" @@ -1434,7 +1473,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Rozwidlenie repozytorium wyłączone" @@ -1449,7 +1488,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Rozwidlenie repozytorium włączone" @@ -1485,7 +1524,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Brak Korekty" @@ -1500,7 +1539,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Zaakceptowano" @@ -1515,7 +1554,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Odrzucono" @@ -1530,7 +1569,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "Objęty Przeglądem" @@ -1542,7 +1581,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "najwyższy poziom" @@ -1554,7 +1593,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Grupy repozytoriów brak dostępu" @@ -1566,7 +1605,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Grupy repozytoriów dostęp do odczytu" @@ -1578,7 +1617,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Grupy repozytoriów dostęp do zapisu" @@ -1590,7 +1629,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Repozytoria Grupy dostęp administratora" @@ -1601,7 +1640,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Ta grupa użytkowników nie ma dostępu" @@ -1612,7 +1651,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Dostęp do grupy parametrów użytkownika" @@ -1623,7 +1662,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Ta grupa użytkowników ma prawo do zapisu" @@ -1634,7 +1673,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Ta grupa użytkowników ma uprawnienia administratora" @@ -1645,7 +1684,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Tworzenie grup repozytoriów wyłączone" @@ -1656,7 +1695,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Tworzenie grup repozytoriów włączone" @@ -1667,7 +1706,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Tworzenie grup użytkowników wyłączone" @@ -1678,7 +1717,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Tworzenie grup użytkowników właczone" @@ -1689,7 +1728,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Rejestracja wyłączona" @@ -1700,7 +1739,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Rejestracja użytkownika z ręczną aktywacją konta" @@ -1711,29 +1750,149 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Rejestracja użytkownika z automatyczną aktywacją konta" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "widziany %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Wymieniony]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Nieautoryzowany dostęp do zasobów" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Nieautoryzowany dostęp do zasobów" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Utworzono grupę repo %s" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Utworzono grupę repo %s" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "Create user groups" +msgid "Only admins can create user groups" +msgstr "Tworzenie grup użytkowników" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "Create user groups" +msgid "Non-admins can create user groups" +msgstr "Tworzenie grup użytkowników" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Ogólna liczba repozytoriów" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "Unieważnia cache dla wszystkich repozytoriów" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Rejestracja użytkownika z ręczną aktywacją konta" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Rejestracja użytkownika z automatyczną aktywacją konta" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Brak Korekty" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "Objęty Przeglądem" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Wpisz login" @@ -1752,97 +1911,130 @@ msgid "Enter %(min)i characters or more" msgstr "Wpisz %(min)i lub więcej znaków" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s skomentował zatwierdzenie %(when)s" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s wysłał wiadomość do %(when)s" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s wspomniał o Tobie w %(when)s" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s zarejestrował na stronie w %(when)s" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s otworzył nowe połączenie gałęzi w %(when)s" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s skomentował nowe połączenie gałęzi w %(when)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s skomentował zatwierdzenie %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s wysłał wiadomość do %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s wspomniał o Tobie w %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s zarejestrował na stronie w %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s otworzył nowe połączenie gałęzi w %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s skomentował nowe połączenie gałęzi w %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, fuzzy, python-format -msgid "New user %(new_username)s registered" -msgstr "Użytkownik %(new_username)s zarejestrował" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, fuzzy, python-format +msgid "New user %(new_username)s registered" +msgstr "Użytkownik %(new_username)s zarejestrował" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 #, fuzzy msgid "Closing" msgstr "Używa:" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "%(user)s chce żeby przejrzeć nowe gałęzie #%(pr_id)s: %(pr_title)s" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "ostatni tip" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "nowy użytkownik się zarejestrował" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Nie możesz edytować tego użytkownika ponieważ jest kluczowy dla całej " -"aplikacji" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "" "Nie możesz usunąć tego użytkownika ponieważ jest kluczowy dla całej " "aplikacji" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " @@ -1851,7 +2043,7 @@ "użytkownik \"%s\" wciąż posiada repozytoria następujące %s i nie może " "zostać usunięty. Zmień właściciela lub usuń te repozytoria. %s" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" @@ -1860,7 +2052,7 @@ "użytkownik \"%s\" wciąż posiada repozytoria następujące %s i nie może " "zostać usunięty. Zmień właściciela lub usuń te repozytoria. %s" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " @@ -1869,61 +2061,66 @@ "użytkownik \"%s\" wciąż posiada repozytoria następujące %s i nie może " "zostać usunięty. Zmień właściciela lub usuń te repozytoria. %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "łącze resetowania hasła" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Nowe hasło" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Nowe hasło do strony: %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "Wartość listy nie może być pusta" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "Użytkownik \"%(username)s\" już istnieje" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "Nazwa użytkownika \"%(username)s\" jest zabroniona" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "Nazwa użytkownika %(username)s jest nieprawidłowa" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Nazwa użytkownika może zawierać tylko znaki alfanumeryczne, podkreślenia," " kropki lub myślniki i muszą zaczynać się znakiem alfanumerycznym lub " "podkreśleniem" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "Nazwa użytkownika %(username)s jest nieprawidłowa" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Niewłaściwa nazwa grupy" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "Nazwa grupy \"%(usergroup)s\" już istnieje" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1931,108 +2128,112 @@ "nazwa grupy może zawierać tylko znaki alfanumeryczne, podkreślenia, " "kropki lub myślniki i musi zaczynać się znakiem alfanumerycznym" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Nie można przypisać do tej grupy jako rodzic" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "Nazwa grupy \"%(group_name)s\" już istnieje" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Repozytorium o nazwie \"%(group_name)s\" już istnieje" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Nieprawidłowe znaki (nie-ascii) w haśle" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Hasła różnią się" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "nieprawidłowe hasło" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "niepoprawna nazwa użytkownika" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Twoje konto jest wyłączone" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Niezgodność tokenu" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "Nazwa repozytorium %(repo)s jest zabroniona" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Repozytorium o nazwie %(repo)s już istnieje" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "Repozytorium \"%(repo)s\" już istnieje w grupie \"%(group)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Grupa repozytoriów z nazwą \"%(repo)s\" już istnieje" -#: kallithea/model/validators.py:474 -#, fuzzy -msgid "invalid clone URL" -msgstr "nieprawidłowe url klonowania" - -#: kallithea/model/validators.py:475 -#, fuzzy -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "Nieprawidłowe url klonowania, wstaw prawidłowy url http(s)/svn+http(s)" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "prywatne repozytorium" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "Fork musi być tego samego typu, jak rodzic" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "Nie masz uprawnień do tworzenia repozytorium w tej grupie" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "nie masz uprawnień do tworzenia repozytorium w tej grupie" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "Nie masz uprawnień do tworzenia repozytorium w tej grupie" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Ta nazwa użytkownika lub grupy użytkowników nie jest prawidłowa" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "To nie jest prawidłowa ścieżka" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "Ten adres e-mail jest już zajęty" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "e-mail \"%(email)s\" nie istnieje." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" @@ -2040,31 +2241,26 @@ "Atrybut logowania CN do LDAP należy określić, jest to nazwa atrybutu, " "który jest odpowiednikiem \"username\"" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "Rewizja %(revs)s jest już częścią nowej gałęzi więc określ jego status" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" msgstr "Proszę podać poprawny adres IPv4 lub IPv6" -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "Rozmiar sieci (bits) może mieścić się w zakresie od 0-32 (nie %(bits)r)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" "Klucz nazwy może składać się tylko z liter, podkreślenia, myślnika lub " "numerów" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "Nazwa pliku nie może znajdować się w katalogu" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2126,13 +2322,13 @@ msgstr "Nazwa Grupy" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2144,11 +2340,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Opis" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2169,11 +2365,11 @@ msgid "Name" msgstr "Nazwa" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Ostatnia akytwność" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2182,18 +2378,19 @@ msgid "Tip" msgstr "Ostatnia zmiana" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Właściciel" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2205,7 +2402,7 @@ msgid "Click to sort ascending" msgstr "Kliknij, aby posortować rosnąco" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2217,11 +2414,11 @@ msgid "Click to sort descending" msgstr "Kliknij, aby posortować malejąco" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Nie znaleziono repozytorium." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2233,10 +2430,10 @@ msgid "Data error." msgstr "Błąd danych." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2246,7 +2443,7 @@ msgstr "Wczytywanie..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Zaloguj się" @@ -2255,39 +2452,39 @@ msgid "Log In to %s" msgstr "Zaloguj się do %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Nazwa użytkownika" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Hasło" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Zapamiętaj mnie" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Zapomniałeś hasła?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Nie masz konta?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Zaloguj się" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Zapomniałeś hasła?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Nie masz konta?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Łącze resetowania hasła" @@ -2338,26 +2535,26 @@ msgstr "Ponownie wprowadź hasło" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Imię" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Nazwisko" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-mail" @@ -2469,75 +2666,61 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "Wtyczka" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Zapisz" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "Repozytoria domyślne" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "Domyślne" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Typ" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Prywatne repozytorium" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " @@ -2546,34 +2729,34 @@ "Prywatne repozytoria są widoczne tylko dla osób bezpośrednio dodanych " "jako współpracownicy." -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Włącz statystyki" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Włącz okno statystyk na stronie podsumowania." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Włącz pobieranie" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Włącz menu pobierania na stronie podsumowania." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Włącz blokowanie" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "Włącz blokowanie pobierania w repozytorium." @@ -2605,6 +2788,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Wygasa" @@ -2615,7 +2804,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "nigdy" #: kallithea/templates/admin/gists/edit.html:145 @@ -2623,7 +2814,7 @@ msgstr "Zaktualizuj Gist" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Anuluj" @@ -2646,12 +2837,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "Utwórz Nowy Gist" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Utworzono" @@ -2677,25 +2868,27 @@ msgstr "Utwórz Publiczny Gist" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2725,11 +2918,22 @@ msgstr "Prywatny Gist" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Usuń" @@ -2738,9 +2942,18 @@ msgstr "Potwierdź aby usunąć ten Gist" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2766,7 +2979,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Moje konto" @@ -2775,84 +2988,90 @@ msgid "Profile" msgstr "Profil" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Nowy adres e-mail" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "Moje Emaile" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" +msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "Moje Repozytoria" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "repozytoria" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Obserwowane" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "Utwórz repozytorium" #: kallithea/templates/admin/my_account/my_account.html:41 -#, fuzzy -msgid "My Permissions" -msgstr "Moje uprawnienia" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Skopiuj uprawnienia" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to reset this API key: %s" +msgstr "Potwierdź, aby usunąć to ip: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" -msgstr "" +#, fuzzy +#| msgid "Expires" +msgid "Expired" +msgstr "Wygasa" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to remove this API key: %s" +msgstr "Potwierdź, aby usunąć to ip: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" -msgstr "" +#, fuzzy +#| msgid "Removed" +msgid "Remove" +msgstr "Usunięto" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" -msgstr "" +#, fuzzy +#| msgid "No additional emails specified." +msgid "No additional API keys specified" +msgstr "Brak dodatkowych emaili" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" -msgstr "" +#, fuzzy +#| msgid "New field key" +msgid "New API key" +msgstr "Nowe pole klucza" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2865,19 +3084,6 @@ msgid "Primary" msgstr "Główny" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "usuń" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2900,19 +3106,24 @@ msgid "Change Your Account Password" msgstr "Nowe hasło" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Nowe hasło" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "Zmiana awataru na" @@ -2933,13 +3144,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2977,7 +3182,7 @@ msgstr "Komentarze" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Połączone gałęzie" @@ -2997,22 +3202,16 @@ msgstr "Pokaż powiadomienia" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Powiadomienia" #: kallithea/templates/admin/permissions/permissions.html:5 -#, fuzzy -msgid "Permissions Administration" -msgstr "Uprawnienia administracji" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Uprawnienia" +#, fuzzy +msgid "Default Permissions" +msgstr "Domyślne uprawnienia" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -3020,15 +3219,11 @@ msgstr "Globalne" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 #, fuzzy msgid "IP Whitelist" msgstr "Lista dozwolonych adresów IP" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "Podgląd" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Dostęp anonimowy" @@ -3040,26 +3235,30 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" "Wszystkie uprawnienia domyślne każdego repozytorium zostaną przywrócone. " -"Wybrane uprawnienie zostaną skasowane. Pamiętaj, że wszystkie niestandardowe " -"uprawnienia w repozytoriach zostaną utracone" +"Wybrane uprawnienie zostaną skasowane. Pamiętaj, że wszystkie " +"niestandardowe uprawnienia w repozytoriach zostaną utracone" + +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Existing repository?" +msgid "Apply to all existing repositories" +msgstr "Istniejące repozytorium?" #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Nadpisz ustawienia" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Repozytorium grupy" @@ -3071,81 +3270,116 @@ "will be lost" msgstr "" "Wszystkie uprawnienia domyślne każdego repozytorium zostaną przywrócone. " -"Wybrane uprawnienie zostaną skasowane. Pamiętaj, że wszystkie niestandardowe " -"uprawnienia w repozytoriach zostaną utracone" +"Wybrane uprawnienie zostaną skasowane. Pamiętaj, że wszystkie " +"niestandardowe uprawnienia w repozytoriach zostaną utracone" + +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Delete this repository group" +msgid "Apply to all existing repository groups" +msgstr "Usuń ta grupę repozytoriów" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Grupa użytkownika" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" msgstr "" "Wszystkie Uprawnienia domyślne każdej grupy użytkowników zostaną " "przywrócone do wybranego zezwolenia, trzeba pamiętać, że wszystkie " "niestandardowe uprawnienia domyślne dla grup repozytorium zostaną " "utracone" +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Tworzenie repozytorium" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "Tworzenie grupy użytkowników" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "Rozwidlanie repozytorium" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Rejestracja" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "Autoryzacja aktywacji zewnętrznego konta" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "Potwierdź, aby usunąć to ip: %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 #, fuzzy msgid "All IP addresses are allowed." msgstr "Wszystkie adresy IP są dozwolone" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Nowy adres ip" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "Domyślne uprawnienia" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3167,12 +3401,12 @@ msgstr "Rodzic gropy" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3190,19 +3424,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Ustawienia" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Zaawansowane" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Uprawnienia" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3223,12 +3463,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Utworzono" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3240,38 +3480,12 @@ msgid "Delete this repository group" msgstr "Usuń ta grupę repozytoriów" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "brak" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "odczyt" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "zapis" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "administracja" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +#, fuzzy +#| msgid "user/user group" +msgid "User/User Group" msgstr "użytkownik/grupa użytkowników" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3280,7 +3494,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "domyślny" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3289,14 +3505,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "odwołane" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3304,7 +3517,9 @@ msgstr "Dodaj nowe" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "dotyczy dzieci" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3358,43 +3573,41 @@ msgid "Number of Top-level Repositories" msgstr "Liczba najwyższego poziomu repozytorium" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Klonuj z" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -#, fuzzy -msgid "Optional URL from which repository should be cloned." -msgstr "Opcjonalnie http[s] url z którego repozytorium powinno być klonowane." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[utworzone] repozytorium" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "Powinna być krótka i na temat. Użyj pliku README dla dłuższych opisów." -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "Opcjonalnie wybierz grupę do wprowadzenia tego repozytorium." -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Rodzaj repozytorium do stworzenia." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Docelowa rewizja" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3442,8 +3655,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Statystyki" @@ -3468,16 +3681,16 @@ msgid "Public Journal Visibility" msgstr "Dziennik publiczny" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Usuń z dziennika publicznego" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "Dziennik publiczny" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 #, fuzzy msgid "" "All actions done in this repository will be visible to everyone in the " @@ -3486,36 +3699,36 @@ "Wszystkie działania wykonywane na tym repozytorium będą dostępne dla " "wszystkich w dzienniku publicznym" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "Włącz blokowanie" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "Potwierdź odblokowanie repozytorium" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "Odblokowane repozytorium" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "Potwierdź blokowanie repozytorium" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "Odblokowane repozytorium" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Repozytorium nie jest zablokowane" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3523,18 +3736,18 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Potwierdź usunięcie repozytorium: %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "Usuń ta grupę repozytoriów" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" @@ -3542,15 +3755,15 @@ msgstr[1] "to repozytorium ma %s forki" msgstr[2] "to repozytorium ma %s forków" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "Ustaw jako rozwidlenie" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "Usuń rozwidlenie" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3594,8 +3807,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Aktywny" @@ -3635,31 +3848,38 @@ msgstr "Avatary są wyłączone" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "prywatne repozytorium" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -#, fuzzy -msgid "Remote URL" -msgstr "Url klonowania" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Pull Changes from Remote Location" -msgstr "Pobierz z zdalnej lokalizacji" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Utworzone repozytorium %s" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[pobieranie z zdalnego] do repozytorium" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "Potwierdź pull z zdalnej strony" -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "Brak zmiennej id" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "prywatne repozytorium" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3673,44 +3893,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -#, fuzzy -msgid "Clone URL" -msgstr "Url klonowania" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "edycja" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[utworzone] repozytorium" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Repozytorium" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "Wersja domyślna dla plików stronicowania, pobierania plików, readme" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Zmiana właściciela tego repozytorium." @@ -3771,55 +3982,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Wyślij" @@ -3894,13 +4061,15 @@ msgstr "ponowne skanowanie opcji" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "Zniszcz stare dane" +#, fuzzy +#| msgid "Search in repositories" +msgid "Delete records of missing repositories" +msgstr "Szukaj we wszystkich repozytoriach" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3922,7 +4091,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3949,39 +4118,43 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 +msgid "Platform" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:8 #, fuzzy msgid "Git version" msgstr "Edycja Uprawnień" -#: kallithea/templates/admin/settings/settings_system.html:8 +#: kallithea/templates/admin/settings/settings_system.html:9 msgid "Git path" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4137,11 +4310,11 @@ msgstr "Ikony" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "Pokazuj w publicznym repo ikonę w repozytoriach" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "Pokazuj w prywatnym repo ikonę w repozytoriach" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4150,7 +4323,9 @@ msgstr "Pokazuj w publicznym repo ikonę w repozytoriach" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "Tagowanie meta" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4169,6 +4344,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4188,24 +4364,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Domyślne uprawnienia" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "użytkownik" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Użytkownik" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "Potwierdź usunięcie grupy użytkowników: %s" @@ -4231,10 +4408,6 @@ msgid "User Groups Administration" msgstr "Użytkownicy grupy administracji" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Dodaj użytkownika" @@ -4260,12 +4433,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "Domyślne uprawnienia" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4275,7 +4443,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4285,11 +4453,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "Potwierdź usunięcie tego użytkownika: %s" @@ -4311,18 +4479,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "Potwierdzenie nowego hasła" @@ -4344,49 +4505,57 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Repozytorium mercurial" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Repozytorium git" + +#: kallithea/templates/base/base.html:126 #, fuzzy msgid "Create Fork" msgstr "Usuń rozwidlenie" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Podsumowanie" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "Dziennik zmian" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Pliki" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "Przełącz do" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Opcje" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 #, fuzzy msgid "Compare Fork" msgstr "Porównaj rozwidlenie" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4396,135 +4565,131 @@ msgid "Compare" msgstr "Porównaj" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "Szukaj" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "Odblokowany" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "zablokowane" -#: kallithea/templates/base/base.html:176 +#: kallithea/templates/base/base.html:180 msgid "Follow" msgstr "Obserwuj" -#: kallithea/templates/base/base.html:177 +#: kallithea/templates/base/base.html:181 msgid "Unfollow" msgstr "Nie obserwuj" -#: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "Gałąź" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "Stwórz nowe żądanie połączenia gałęzi" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "Pokaż Prośby Pobrania %s" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "Pokaż ostatnią aktywność" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Dziennik" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Dziennik publiczny" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "Wyświetl publiczne gists" -#: kallithea/templates/base/base.html:237 +#: kallithea/templates/base/base.html:241 msgid "Gists" msgstr "Gists" -#: kallithea/templates/base/base.html:241 +#: kallithea/templates/base/base.html:245 #, fuzzy msgid "All Public Gists" msgstr "Wszystkie publiczne gists" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 #, fuzzy msgid "My Public Gists" msgstr "Moje publiczne gists" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 #, fuzzy msgid "My Private Gists" msgstr "Moje prywatne gists" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "Szukaj we wszystkich repozytoriach" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 #, fuzzy msgid "My Pull Requests" msgstr "Połączone gałęzie" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 #, fuzzy msgid "Not Logged In" msgstr "Zaloguj się" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 #, fuzzy msgid "Login to Your Account" msgstr "Zaloguj się do swojego konta" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Nie pamiętasz hasła?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "Wyloguj się" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Repozytoria domyślne" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4558,8 +4723,9 @@ "użytkownika" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "Wyświetl" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4585,7 +4751,7 @@ msgstr "Dodaj kolejny komentarz" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "Zakończyć obserwację tego repozytorium" @@ -4663,6 +4829,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "potwierdzić odwołanie pozwolenie na {0}: {1} ?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4693,6 +4867,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4722,10 +4897,6 @@ msgstr[1] "pokazano %d z %d rewizji" msgstr[2] "pokazano %d z %d rewizji" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "Wyświetl" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "Wyczyść zaznaczenie" @@ -4743,7 +4914,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, fuzzy, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "porównaj gałęzie %s" #: kallithea/templates/changelog/changelog.html:66 @@ -4754,10 +4925,12 @@ #: kallithea/templates/changelog/changelog.html:92 #: kallithea/templates/changelog/changelog_summary_data.html:20 -#, python-format +#, fuzzy, python-format +#| msgid "" "Changeset status: %s\n" "Click to open associated pull request +#| #%s" msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "Status grupy zmian: %s⏎ Kliknij, aby otworzyć prośby pobrania #%s" #: kallithea/templates/changelog/changelog.html:96 @@ -4767,7 +4940,7 @@ msgstr "Status grupy zmian: %s" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4800,7 +4973,7 @@ msgid "Branch %s" msgstr "Gałęzie %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Nie ma jeszcze zmian" @@ -4816,7 +4989,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "Dodana" @@ -4846,21 +5019,23 @@ msgid "Refs" msgstr "Gałąź/Etykieta" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Dodaj lub prześlij pliki bezpośrednio przez stronę" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "Wyślij zmiany do nowego repo" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "Istniejące repozytorium?" @@ -4870,15 +5045,15 @@ msgstr "%s Grupy zmian" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "Status grupy zmian" @@ -4901,7 +5076,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "połącz" #: kallithea/templates/changeset/changeset.html:123 @@ -4913,9 +5090,21 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "utworzono" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "utworzono" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" @@ -4923,9 +5112,9 @@ msgstr[1] "%s pliki zostały zmienione" msgstr[2] "%s plików zostało zmienionych" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, python-format msgid "%s file changed with %s insertions and %s deletions" msgid_plural "%s files changed with %s insertions and %s deletions" @@ -4933,98 +5122,99 @@ 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" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 #, fuzzy msgid "Show full diff anyway" msgstr "Pokaż pełną historię" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -#, fuzzy -msgid "Status change from pull request" -msgstr "Zmiana statusu w grupie zmian" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "rewizja" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "Komentarz połączenia gałęzi %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 #, fuzzy msgid "No title" msgstr "nowy plik" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -#, fuzzy -msgid "Comment from pull request" -msgstr "Komentarz połączenia gałęzi %s" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "Zmiana statusu w grupie zmian" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "Skomentuj grupę zmian" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "Brak zestawienia zmian" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "%d komentarz" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Ostatnia aktywność" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "Komentując linię {1}." -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "Komentarze analizowane za pomocą %s składni od %s wsparcia." -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 #, fuzzy msgid "Use @username inside this text to notify another user" msgstr "" "Użyj @username wewnątrz tego tekstu, aby wysłać powiadomienie do " "użytkownika strony" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "Podgląd komentarza" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 #, fuzzy msgid "Submitting ..." msgstr "Przesyłanie..." -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Komentarz" -#: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 msgid "Preview" msgstr "Podgląd" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "You need to be logged in to comment." msgstr "Musisz być zalogowany żeby komentarz." -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "Zaloguj się teraz" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "Ukryj" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" @@ -5032,7 +5222,7 @@ msgstr[1] "%d komentarzy" msgstr[2] "%d komentarzy" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" @@ -5040,7 +5230,7 @@ msgstr[1] "(%d linii)" msgstr[2] "(%d linii)" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, fuzzy, python-format msgid "%d general" msgid_plural "%d general" @@ -5048,28 +5238,29 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -#, fuzzy -msgid "Use @username inside this text to send notification to another local user." +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "" "Użyj @username wewnątrz tego tekstu, aby wysłać powiadomienie do " "użytkownika strony" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "Zagłosuj na żądanie na grupę zmian" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Zmiana statusu grupy zmian" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "Bez zmian" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(zamknięty)" @@ -5089,7 +5280,7 @@ msgstr "Pokaż pełną edycję tego pliku" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "Pokaż pełną listę zmian i różnic obok siebie" @@ -5098,12 +5289,12 @@ msgid "Show inline comments" msgstr "Pokaż online komentarz" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "usuń" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "zmień nazwę" @@ -5116,32 +5307,44 @@ msgid "Ancestor" msgstr "Przodek" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 #, fuzzy msgid "Show merge diff" msgstr "Pokaż pełną historię" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 #, fuzzy msgid "Common ancestor" msgstr "Skomentuj grupę zmian" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 #, fuzzy msgid "is" msgstr "Gist" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "%s Zestawienie zmian" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "Indeksuj ponownie" @@ -5166,7 +5369,7 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" @@ -5174,49 +5377,36 @@ msgstr[1] "Pokaż %s komentarze" msgstr[2] "Pokaż %s komentarze" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "Brak plików" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "Pokaż pełną historię" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Repozytorium mercurial" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Repozytorium git" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Publiczne repozytorium" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "Nie ma jeszcze zestawienia zmian" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "Subskrybuj %s kanał rss" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "Subskrybuj %s kanał atom" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5344,10 +5534,6 @@ msgid "Commit Changes" msgstr "Zatwierdź zmiany" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "rewizja" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "poprzednia wersja" @@ -5373,19 +5559,15 @@ msgstr "Rozmiar" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Typ MIME" +msgid "Last Revision" +msgstr "Rewizja" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "Rewizja" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "Ostatnio modyfikowany" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "Autor" @@ -5501,8 +5683,8 @@ msgstr "Obserwatorzy %s" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "Obserwuje" @@ -5554,8 +5736,8 @@ msgstr "Gałąź %s" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "Gałęzie" @@ -5563,7 +5745,7 @@ msgid "Forked" msgstr "Rozgałęziony" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "Nie ma jeszcze gałęzi" @@ -5576,19 +5758,13 @@ msgstr "Dziennik kanału RSS" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" -msgstr "Moje repo" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "Moje Repozytoria" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "Brak wpisów jeszcze" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Dziennik Publiczny" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "Publiczny dziennik kanału ATOM" @@ -5631,22 +5807,17 @@ msgid "Destination repository" msgstr "Repozytorium docelowe" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -#, fuzzy -msgid "Pull Request Reviewers" -msgstr "Recenzje wniosków połączenia gałęzi" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 #, fuzzy msgid "No entries" msgstr "Brak wpisów jeszcze" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "odwołane" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5655,52 +5826,51 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, fuzzy, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -#, fuzzy -msgid "Delete Pull Request" -msgstr "Nowa prośba o połączenie gałęzi" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "Potwierdź usunięcie połączenia gałęzi" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "Zamknięte" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +#, fuzzy +msgid "Delete Pull Request" +msgstr "Nowa prośba o połączenie gałęzi" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "Potwierdź usunięcie połączenia gałęzi" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Potwierdź usunięcie połączenia gałęzi" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" +#, fuzzy, python-format +#| msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "%s Połączonych gałęzi #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, fuzzy, python-format -msgid "Pull request #%s from %s#%s" -msgstr "" +#| msgid "Pull Requests from %s'" +msgid "Pull request %s from %s#%s" +msgstr "Połączonych gałęzi #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 #, fuzzy @@ -5716,11 +5886,11 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "Nie ma jeszcze recenzenta" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" @@ -5728,83 +5898,84 @@ msgstr[1] "%d recenzenci" msgstr[2] "%d recenzentów" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "Połączenie gałęzi zostało zweryfikowane przez wszystkich recenzentów" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "Nie ma jeszcze gałęzi" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "brak" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "Pobierz zmiany" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 #, fuzzy msgid "Created by" msgstr "utworzono" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "[zaktualizowany] użytkownik" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "właściciel" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "recenzent" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +#, fuzzy +msgid "Pull Request Reviewers" +msgstr "Recenzje wniosków połączenia gałęzi" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "recenzent" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "Podgląd komentarza" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "Otwórz nową prośbę o połączenie gałęzi" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "Ostatnia aktywność" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "Wniosek połączenia zmienił status" @@ -5909,8 +6080,8 @@ msgstr "%s RSS" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "Włącz" @@ -5918,45 +6089,45 @@ msgid "Stats gathered: " msgstr "Statystyki zebrane: " -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "pliki" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "Pokaż więcej" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "komunikaty" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "pliki dodane" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "pliki zmienione" +msgid "files added" +msgstr "pliki dodane" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "pliki zmienione" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "pliki usunięte" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "komunikaty" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "plik dodany" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "plik zmieniony" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "plik usunięty" @@ -5978,67 +6149,78 @@ msgid "Fork of" msgstr "Gałąź z" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "Pokaż nazwę" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Klonuj z" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "Url klonowania" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "Pokaż nazwę" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "Pokaż ID" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "Statystyki" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "Pobierz" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "Nie pobrano jeszcze plików" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "Pliki do pobrania są zostały wyłączone dla tego repozytorium" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "Pobierz jako zip" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "Zaznacz tu żeby pobrać archiwum z subrepozytorium" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "z subrepozytorium" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "Rozmiar Repozytorium" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "Kanał RSS" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "Ostatnia aktywność" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "Szybki start" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "Pobierz %s jak %s" @@ -6052,3 +6234,331 @@ #, fuzzy msgid "Compare Tags" msgstr "Porównaj tagi" + +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "Brak komentarzy." + +#~ msgid "public journal" +#~ msgstr "Dziennik publiczny" + +#~ msgid "journal" +#~ msgstr "dziennik" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "Zablokowane repozytorium" + +#~ msgid "Unlocked repository" +#~ msgstr "Odblokowane repozytorium" + +#~ msgid "Unlocked" +#~ msgstr "Odblokowany" + +#~ msgid "Locked" +#~ msgstr "Zablokowany" + +#~ msgid "Repository has been %s" +#~ msgstr "Repozytoriów jest %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Nie możesz edytować tego użytkownika" + +#~ msgid "No Files" +#~ msgstr "Brak Plików" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "Nazwa użytkownika \"%(username)s\" jest zabroniona" + +#~ msgid "invalid user name" +#~ msgstr "niepoprawna nazwa użytkownika" + +#~ msgid "Your account is disabled" +#~ msgstr "Twoje konto jest wyłączone" + +#~ msgid "invalid clone URL" +#~ msgstr "nieprawidłowe url klonowania" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "Nieprawidłowe url klonowania, wstaw prawidłowy url http(s)/svn+http(s)" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" +#~ "Rewizja %(revs)s jest już częścią " +#~ "nowej gałęzi więc określ jego status" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "Domyślne" + +#~ msgid "My Emails" +#~ msgstr "Moje Emaile" + +#~ msgid "Watched" +#~ msgstr "Obserwowane" + +#~ msgid "My Permissions" +#~ msgstr "Moje uprawnienia" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "usuń" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Uprawnienia administracji" + +#~ msgid "Overview" +#~ msgstr "Podgląd" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Nadpisz ustawienia" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Domyślne uprawnienia" + +#~ msgid "none" +#~ msgstr "brak" + +#~ msgid "read" +#~ msgstr "odczyt" + +#~ msgid "write" +#~ msgstr "zapis" + +#~ msgid "admin" +#~ msgstr "administracja" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "Opcjonalnie http[s] url z którego repozytorium powinno być klonowane." + +#~ msgid "Remote URL" +#~ msgstr "Url klonowania" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Pobierz z zdalnej lokalizacji" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "Brak zmiennej id" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "edycja" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "Zniszcz stare dane" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Domyślne uprawnienia" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Zmiana statusu w grupie zmian" + +#~ msgid "Status change on changeset" +#~ msgstr "Zmiana statusu w grupie zmian" + +#~ msgid "Comment on changeset" +#~ msgstr "Skomentuj grupę zmian" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" +#~ "Użyj @username wewnątrz tego tekstu, aby" +#~ " wysłać powiadomienie do użytkownika strony" + +#~ msgid "revision" +#~ msgstr "rewizja" + +#~ msgid "Mimetype" +#~ msgstr "Typ MIME" + +#~ msgid "My Repos" +#~ msgstr "Moje repo" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "właściciel" + +#~ msgid "reviewer" +#~ msgstr "recenzent" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -6,7 +6,7 @@ # gnustavo , 2013 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" "POT-Creation-Date: 2015-04-01 03:17+0200\n" "PO-Revision-Date: 2014-02-13 14:34+0000\n" @@ -19,19 +19,23 @@ "Content-Transfer-Encoding: 8bit\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Não há nenhum changeset ainda" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Nenhum" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(fechado)" @@ -46,53 +50,57 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -#, fuzzy -msgid "No comments." -msgstr "%d comentário" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "Mudar o estado de um changeset associado a um pull request não é permitido" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "revisões" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" "A requisição não pôde ser compreendida pelo servidor devido à sintaxe mal" " formada." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Acesso não autorizado ao recurso" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "Você não tem permissão para ver esta página" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "O recurso não pôde ser encontrado" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -110,17 +118,17 @@ msgid "%s %s feed" msgstr "%s - feed %s" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "Conjunto de mudanças era grande demais e foi cortado..." -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s commitados em %s" @@ -198,45 +206,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "O caminho deve ser relativo e não pode conter .." -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Downloads desabilitados" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Revisão desconhecida %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Repositório vazio" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Tipo de arquivo desconhecido" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Conjuntos de mudanças" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Ramos" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Etiquetas" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Ocorreu um erro ao bifurcar o repositório %s" @@ -252,9 +258,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Repositórios" @@ -274,26 +280,31 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" -msgstr "diário público" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" +msgstr "Diário Público" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "diário" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "Diário" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Você foi registrado no Kallithea com sucesso" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "Seu link de reinicialização de senha foi enviado" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" @@ -301,124 +312,137 @@ "Sua reinicialização de senha foi bem sucedida, sua senha foi enviada ao " "seu e-mail" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, fuzzy, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Conjunto de Mudanças" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Especial" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "Ramos pares" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Marcadores" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 #, fuzzy msgid "No description" msgstr "Descrição" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "Novo pull request criado com sucesso" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 #, fuzzy msgid "Error occurred while creating pull request" msgstr "Ocorreu um erro durante o envio do pull request" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 #, fuzzy msgid "Pull request update created" msgstr "Revisores do pull request" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 #, fuzzy msgid "Pull request updated" msgstr "Pull requests para %s" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "Pull request excluído com sucesso" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +#, fuzzy +#| msgid "Vote for pull request status" +msgid "No permission to change pull request status" +msgstr "Vote para estado do pull request" + +#: kallithea/controllers/pullrequests.py:715 #, fuzzy msgid "Closing." msgstr "carregando ..." @@ -436,22 +460,22 @@ msgid "An error occurred during search operation." msgstr "Ocorreu um erro durante essa operação de busca" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 #, fuzzy msgid "No data ready yet" msgstr "Ainda não há dados carregados" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "As estatísticas estão desabillitadas para este repositório" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -464,38 +488,40 @@ msgstr "Ocorreu um erro durnge a atualização dos padrões" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "para sempre" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "cinco minutos" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "uma hora" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "um dia" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "um mês" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -509,8 +535,10 @@ msgstr "Gist %s excluído" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +#, fuzzy +#| msgid "Last Modified" +msgid "Unmodified" +msgstr "Última alteração" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -525,117 +553,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "Você não pode editar esse usuário pois ele é crucial para toda a aplicação" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Sua conta foi atualizada com sucesso" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "Ocorreu um erro durante a atualização do usuário %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "Email %s adicionado ao usuário" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Ocorreu um erro durante o salvamento do email" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "Email removido do usuário" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" -msgstr "" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Ler" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Ler" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Gravar" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Gravar" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Administrador" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Desabilitado" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Permitido com ativação manual de conta" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Permitido com ativação automática de conta" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -643,11 +687,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Ativação manual de conta externa" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -655,221 +699,212 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Ativação automática de conta externa" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Habilitado" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Ocorreu um erro durante a atualização das permissões" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Ocorreu um erro durante a criação do grupo de repositórios %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Grupo de repositórios %s criado" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Ocorreu um erro durante a criação do grupo de repositórios %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Grupo de repositórios %s atualizado" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Ocorreu um erro durante a atualização do grupo de repositórios %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Esse grupo contém %s repositórios e não pode ser excluído" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Este grupo contém %s subgrupos e não pode ser excluído" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Grupo de repositórios %s excluído" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Ocorreu um erro durante a exclusão do grupo de repositórios %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Você não pode revocar sua própria permissão de administrador" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Permissões atualizadas do Grupo de Repositórios" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Ocorreu um erro durante a revocação das permissões" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Erro ao criar repositório %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "Repositório %s criado de %s" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "Repositório %s bifurcado como %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Repositório %s criado" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Repositório %s atualizado com sucesso" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Ocorreu um erro durante a atualização do repositório %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "%s bifurcações excluídas" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Repositório %s excluído" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "Nao é possível excluir %s pois ele ainda contém bifurcações vinculadas" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Ocorreu um erro durante a exclusão de %s" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Permissões do repositório atualizadas" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Ocorreu um erro durante a criação do campo" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Ocorreu um erro durante a remoção do campo" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "Atualizada a visibilidade do repositório no diário público" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "Ocorreu um erro ao ajustar esse repositório no diário público" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Descompasso de Token" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Nada" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Marcado repositório %s como bifurcação de %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Ocorreu um erro durante essa operação" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "Repositório não está travado" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "Repositório não está travado" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Ocorreu um erro durante o destravamento" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Destravado" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Travado" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Ocorreu um erro ao invalidar o cache" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Realizado pull de localização remota" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "O repositório foi %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Ocorreu um erro ao invalidar o cache" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Realizado pull de localização remota" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "Ocorreu um erro ao realizar pull de localização remota" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Ocorreu um erro ao excluir estatísticas de repositório" @@ -885,7 +920,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "Ocorreu um erro durante a atualização das configurações da aplicação" #: kallithea/controllers/admin/settings.py:213 @@ -962,83 +997,80 @@ msgstr "O grupo destino não pode ser o mesmo" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Permissões do Grupo de Usuários atualizadas" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Permissões atualizadas" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Ocorreu um erro durante o salvamento das permissões" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Usuário %s criado" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Ocorreu um erro durante a criação do usuário %s" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "Usuário atualizado com sucesso" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Usuário excluído com sucesso" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Ocorreu um erro ao excluir o usuário" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Você não pode editar esse usuário" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Ocorreu um erro durante o salvamento do IP" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IP %s não permitido" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "Você precisa ser um usuário registrado para realizar essa ação" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Você precisa estar logado para ver essa página" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Conjunto de alterações não encontrado" @@ -1056,158 +1088,164 @@ msgid "No changes detected" msgstr "Nenhuma alteração detectada" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Excluído ramo: %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Tag criada: %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Ver todos os conjuntos de mudanças combinados %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "comparar exibir" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "e" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s mais" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "revisões" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "nome da bifurcação %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "Pull request #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "repositório [excluído]" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "repositório [criado]" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "repositório [criado] como uma bifurcação" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "repositório [bifurcado]" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "repositório [atualizado]" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "[baixado] archive do repositório" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[excluir] repositório" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "usuário [criado]" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "usuário [atualizado]" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "[criado] grupo de usuários" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "[atualizado] grupo de usuários" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[comentado] em revisão no repositório" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[comentado] no pull request para" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[fechado] pull request para" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[realizado push] para" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[commitado via Kallithea] no repositório" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[pulled do remote] no repositório" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[realizado pull] a partir de" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[passou a seguir] o repositório" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[parou de seguir] o repositório" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " e mais %s" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Nenhum Arquivo" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "Nenhum arquivo" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "novo arquivo" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "mod" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "excluir" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "renomear" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1218,69 +1256,69 @@ "renomeado a partir do sistema de arquivos. Por favor, execute a aplicação" " outra vez para varrer novamente por repositórios" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d ano" msgstr[1] "%d anos" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d mês" msgstr[1] "%d meses" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d dia" msgstr[1] "%d dias" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d hora" msgstr[1] "%d horas" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minuto" msgstr[1] "%d minutos" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "em %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s atrás" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "em %s e %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s e %s atrás" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "agora há pouco" @@ -1295,7 +1333,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Nenhum acesso ao repositório" @@ -1310,7 +1348,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Acesso de leitura ao repositório" @@ -1325,7 +1363,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Acesso de escrita ao repositório" @@ -1340,7 +1378,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Acesso administrativo ao repositório" @@ -1379,7 +1417,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Administrador do Kallithea" @@ -1394,7 +1432,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Criação de repositórios desabilitada" @@ -1409,7 +1447,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Criação de repositórios habilitada" @@ -1424,7 +1462,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Bifurcação de repositórios desabilitada" @@ -1439,7 +1477,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Bifurcação de repositórios habilitada" @@ -1475,7 +1513,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Não Revisado" @@ -1490,7 +1528,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Aprovado" @@ -1505,7 +1543,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Rejeitado" @@ -1520,7 +1558,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "Sob Revisão" @@ -1532,7 +1570,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "nível superior" @@ -1544,7 +1582,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Sem acesso ao grupo de repositórios" @@ -1556,7 +1594,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Acesso de leitura ao grupo de repositórios" @@ -1568,7 +1606,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Acesso de escrita ao grupo de repositórios" @@ -1580,7 +1618,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Acesso administrativo ao grupo de repositórios" @@ -1591,7 +1629,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Sem acesso ao grupo de usuários" @@ -1602,7 +1640,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Acesso de leitura ao grupo de usuários" @@ -1613,7 +1651,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Acesso de escrita ao grupo de usuários" @@ -1624,7 +1662,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Acesso administrativo ao grupo de usuários" @@ -1635,7 +1673,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Criação de Grupo de Repositórios desatilibada" @@ -1646,7 +1684,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Criação de Grupo de Repositórios habilitada" @@ -1657,7 +1695,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Criação de Grupo de Usuários desabilitada" @@ -1668,7 +1706,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Criação de Grupo de Usuários habilitada" @@ -1679,7 +1717,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Registro desatilitado" @@ -1690,7 +1728,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Registro de Usuário com ativação manual de conta" @@ -1701,29 +1739,149 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Registro de Usuário com ativação automática de conta" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "na linha %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Menção]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Acesso não autorizado ao recurso" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Acesso não autorizado ao recurso" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Grupo de repositórios %s criado" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Grupo de repositórios %s criado" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "Create user groups" +msgid "Only admins can create user groups" +msgstr "Criar grupos de usuários" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "Create user groups" +msgid "Non-admins can create user groups" +msgstr "Criar grupos de usuários" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Criar repositórios" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "Invalidar o cache para todos os repositórios" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Registro de Usuário com ativação manual de conta" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Registro de Usuário com ativação automática de conta" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Não Revisado" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "Sob Revisão" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Por favor entre um login" @@ -1742,97 +1900,130 @@ msgid "Enter %(min)i characters or more" msgstr "Entre com %(min)i caracteres ou mais" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s comentou no changeset em %(when)s" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s enviou mensagem em %(when)s" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s mencionou-o em %(when)s" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s registrou-se no Kallithea em %(when)s" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s abriu um novo pull request em %(when)s" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s comentou no pull request em %(when)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s comentou no changeset em %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s enviou mensagem em %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s mencionou-o em %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s registrou-se no Kallithea em %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s abriu um novo pull request em %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s comentou no pull request em %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, fuzzy, python-format -msgid "New user %(new_username)s registered" -msgstr "O username \"%(new_username)s\" não é válido" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, fuzzy, python-format +msgid "New user %(new_username)s registered" +msgstr "O username \"%(new_username)s\" não é válido" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 #, fuzzy msgid "Closing" msgstr "Usando" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "%(user)s solicita sua revisão no pull request $%(pr_id)s: %(pr_title)s" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "tip mais recente" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "Novo registro de usuário" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Você não pode Editar esse usuário, pois ele é crucial para toda a " -"aplicação" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "" "Você não pode remover esse usuário, pois ele é crucial para toda a " "aplicação" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " @@ -1841,7 +2032,7 @@ "usuário \"%s\" ainda é dono de %s repositórios e não pode ser removido. " "Troque os donos ou remova esses repositórios. %s" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" @@ -1850,7 +2041,7 @@ "usuário \"%s\" ainda é dono de %s repositórios e não pode ser removido. " "Troque os donos ou remova esses repositórios. %s" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " @@ -1859,60 +2050,65 @@ "usuário \"%s\" ainda é dono de %s repositórios e não pode ser removido. " "Troque os donos ou remova esses repositórios. %s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "Link para trocar senha" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Sua nova senha" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Sua nova senha no Kallithea: %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "O valor não pode ser uma lista vazia" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "O username \\\"%(username)s\\\" já existe" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "O username \\\"%(username)s\\\" é proibido" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "O username \"%(username)s\" não é válido" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Nome de usuário pode conter somente caracteres alfanuméricos, sublinha, " "pontos e hífens e deve iniciar com caractere alfanumérico" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "O username \"%(username)s\" não é válido" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Nome inválido de grupo de usuários" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "O grupo de usuários \"%(usergroup)s\" já existe" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1921,108 +2117,112 @@ "underscores, pontos ou hífens, e deve começar om um caractere alfa-" "numérico" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Não é possível associar esse grupo como progenitor" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "O grupo \\\"%(group_name)s\\\" já existe" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Um repositório com o nome \"%(group_name)s\" já existe" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Caracteres inválidos (não-ascii) na senha" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Senhas não conferem" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "senha inválida" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "nome de usuário inválido" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Sua conta está desabilitada" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Descompasso de Token" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "O nome de repositório %(repo)s não é permitido" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Um repositório chamado %(repo)s já existe" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "Um repositório \"%(repo)s\" já existe no grupo \"%(group)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Um Grupo de Repositórios chamado \"%(repo)s\" já existe" -#: kallithea/model/validators.py:474 -#, fuzzy -msgid "invalid clone URL" -msgstr "URL de clonagem inválida" - -#: kallithea/model/validators.py:475 -#, fuzzy -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "URL inválida, por favor, forneça uma URL de clone http(s)/svn+http(s)" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "repositório privado" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "A bifurcação deve ser do mesmo tipo que o pai" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "Você não tem permissão para criar um repositório neste grupo" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "você não tem permissão para criar um repositório na raiz" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "Você não tem permissão para criar um grupo neste local" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Este nome de usuário ou de grupo de usuários não é válido" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "Esse não é um caminho válido" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "Esse endereço de e-mail já está tomado" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "o e-mail \"%(email)s\" não existe." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" @@ -2030,31 +2230,24 @@ "O atributo de login LDAP do CN deve ser especificado - isto é o nome do " "atributo que é equivalente ao 'nome de usuário'" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" -"As revisões %(revs)s já fazem parte de um pull request ou já setaram o " -"estado" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" msgstr "Por favor, forneça um endereço válido IPv4 ou IPv6" -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "O tamanho da rede (bits) deve estar no intervalo 0-32 (não %(bits)r)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "O nome da chave só pode conter letras, underscore, hífen ou dígitos" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "O nome de arquivo não pode estar dentro de um diretório" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2116,13 +2309,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2134,11 +2327,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Descrição" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2159,11 +2352,11 @@ msgid "Name" msgstr "Nome" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Última Alteração" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2172,18 +2365,19 @@ msgid "Tip" msgstr "Ponta" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Dono" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2195,7 +2389,7 @@ msgid "Click to sort ascending" msgstr "Clique para ordenar em ordem crescente" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2207,11 +2401,11 @@ msgid "Click to sort descending" msgstr "Clique para ordenar em ordem descrescente" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Nenhum repositório encontrado." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2223,10 +2417,10 @@ msgid "Data error." msgstr "Erro de dados." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2236,7 +2430,7 @@ msgstr "Carregando..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Entrar" @@ -2245,39 +2439,39 @@ msgid "Log In to %s" msgstr "Log in em %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Nome de usuário" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Senha" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Lembre-se de mim" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Esqueceu sua senha ?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Não possui uma conta ?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Entrar" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Esqueceu sua senha ?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Não possui uma conta ?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Senha Trocada" @@ -2330,26 +2524,26 @@ msgstr "Repita a senha" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Primeiro Nome" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Último Nome" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-mail" @@ -2460,75 +2654,61 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Salvar" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "Padrões de repositórios" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "Padrões" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Tipo" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Repositório privado" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " @@ -2537,34 +2717,34 @@ "Repositórios privados são visíveis somente por pessoas explicitamente " "adicionadas como colaboradores." -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Habilitar estatísticas" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Habilitar janela de estatísticas na página de sumário." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Habilitar downloads" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Habilitar menu de descarregar na página de sumário." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Habilitar travas" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "Habilitar trava-por-pulling no repositório." @@ -2596,6 +2776,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Expira" @@ -2606,7 +2792,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "nunca" #: kallithea/templates/admin/gists/edit.html:145 @@ -2614,7 +2802,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Cancelar" @@ -2637,12 +2825,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Criado" @@ -2668,25 +2856,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2716,11 +2906,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Excluir" @@ -2729,9 +2930,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2757,7 +2967,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Minha Conta" @@ -2766,84 +2976,88 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Novo endereço de email" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "repositórios" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Seguindo" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "Criar repositórios" #: kallithea/templates/admin/my_account/my_account.html:41 -#, fuzzy -msgid "My Permissions" -msgstr "Minhas permissões" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Copiar permissões" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to reset this API key: %s" +msgstr "Confirme para excluir este IP: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" -msgstr "" +#, fuzzy +#| msgid "Expires" +msgid "Expired" +msgstr "Expira" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to remove this API key: %s" +msgstr "Confirme para excluir este IP: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" -msgstr "" +#, fuzzy +#| msgid "Removed" +msgid "Remove" +msgstr "Removido" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" -msgstr "" +#, fuzzy +#| msgid "New field key" +msgid "New API key" +msgstr "Próxima chave de campo" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2856,19 +3070,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "excluir" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2890,19 +3091,24 @@ msgid "Change Your Account Password" msgstr "Sua nova senha" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Nova senha" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "Altere o seu avatar em" @@ -2923,13 +3129,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2967,7 +3167,7 @@ msgstr "Comentários" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Pull Requests" @@ -2987,22 +3187,16 @@ msgstr "Mostrar notificação" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Notificações" #: kallithea/templates/admin/permissions/permissions.html:5 -#, fuzzy -msgid "Permissions Administration" -msgstr "Administração de permissões" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Permissões" +#, fuzzy +msgid "Default Permissions" +msgstr "Permissões padrão" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -3010,14 +3204,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Acesso anônimo" @@ -3029,7 +3219,7 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " @@ -3039,16 +3229,20 @@ "permissão escolhida, note que todas as permissões padrão customizadas nos" " repositórios serão perdidas" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Existing repository?" +msgid "Apply to all existing repositories" +msgstr "Repositório existente?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Sobrescrever as configurações existentes" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Grupo de repositórios" @@ -3063,77 +3257,112 @@ "modificadas para a permissão escolhida, note que todas as permissões " "padrão customizadas em grupos de repositórios serão perdidas" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy, python-format +#| msgid "Updated repository group %s" +msgid "Apply to all existing repository groups" +msgstr "Grupo de repositórios %s atualizado" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Grupo de usuários" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" msgstr "" "Todas as permissões padrão em cada repositório serão reinicializadas para" " as permissões escolhidas. Note que todas as permissões padrão " "customizadas nos repositórios serão perdidas" +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Criação de repositório" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "Criação de grupo de usuários" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "Bifurcação de repositório" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Registro" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "Ativação de autenticação de conta externa" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "Confirme para excluir este IP: %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 #, fuzzy msgid "All IP addresses are allowed." msgstr "Todos os endereços IP são permitidos" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Novo endereço IP" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "Permissões padrão" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3155,12 +3384,12 @@ msgstr "Progenitor do grupo" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3178,19 +3407,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Configurações" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Permissões" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3211,12 +3446,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Criado em" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3227,39 +3462,13 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "nenhum" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "ler" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "escrever" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "administrador" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" -msgstr "" +#, fuzzy +#| msgid "User group" +msgid "User/User Group" +msgstr "Grupo de usuários" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:45 @@ -3267,7 +3476,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "padrão" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3276,14 +3487,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "revogar" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3291,7 +3499,9 @@ msgstr "Adicionar novo" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "aplicar aos filhos" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3345,45 +3555,43 @@ msgid "Number of Top-level Repositories" msgstr "Número de repositórios de nível superior" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Clonar de" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -#, fuzzy -msgid "Optional URL from which repository should be cloned." -msgstr "URL opcional http[s] da qual o repositório deve ser clonado." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "repositório [criado]" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" "Seja sucinto e objetivo. Use um arquivo README para descrições mais " "longas." -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "Opcionalmente selecione um grupo no qual colocar esse repositório." -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Tipo de repositório a criar." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Revisão de pouso" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3431,8 +3639,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Estatísticas" @@ -3459,16 +3667,16 @@ msgid "Public Journal Visibility" msgstr "diário público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Remover do diário público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "diário público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 #, fuzzy msgid "" "All actions done in this repository will be visible to everyone in the " @@ -3477,36 +3685,36 @@ "Todas as ações feitas nesse repositório serão acessíveis a todos no " "diário público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "Habilitar travas" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "Confirme para destravar repositório" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "Repositório público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "Confirme para travar repositório" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "Repositório público" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Repositório não está travado" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3514,33 +3722,33 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Confirma excluir esse repositório: %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "[excluir] repositório" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "este repositório tem %s bifurcação" msgstr[1] "este repositório tem %s bifurcações" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "Desassociar bifurcações" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "Excluir bifurcações" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3584,8 +3792,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Ativo" @@ -3625,31 +3833,38 @@ msgstr "Registro desabilitado" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "repositório privado" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -#, fuzzy -msgid "Remote URL" -msgstr "URL de clonagem" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Pull Changes from Remote Location" -msgstr "Realizar pull de alterações a partir de localização remota" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -#, fuzzy -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Repositório %s criado" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[pulled do remote] no repositório" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "Confirma realizar pull de alterações a partir de lado remoto" -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "ID inalterável" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "repositório privado" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3663,44 +3878,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -#, fuzzy -msgid "Clone URL" -msgstr "URL de clonagem" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "editar" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "repositório [criado]" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Repositório" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "Revisão padrão para página de arquivos, downloads, whoosh e readme" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Mudar o dono desse repositório." @@ -3761,55 +3967,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Enviar" @@ -3884,13 +4046,15 @@ msgstr "Opção de varredura" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "Destruir dados antigos" +#, fuzzy +#| msgid "Search in repositories" +msgid "Delete records of missing repositories" +msgstr "Buscar nos repositórios" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3912,7 +4076,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3939,39 +4103,43 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 +msgid "Platform" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:8 #, fuzzy msgid "Git version" msgstr "Editar Permissão" -#: kallithea/templates/admin/settings/settings_system.html:8 +#: kallithea/templates/admin/settings/settings_system.html:9 msgid "Git path" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4127,11 +4295,11 @@ msgstr "Ícones" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "Mostrar ícone de repositório público nos repositórios" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "Mostrar ícone de repositório privado nos repositórios" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4140,7 +4308,9 @@ msgstr "Mostrar ícone de repositório público nos repositórios" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "Meta-Tagging" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4159,6 +4329,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4178,24 +4349,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Permissões padrão" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "membros" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Membros" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "Confirme para excluir este grupo de usuário: %s" @@ -4221,10 +4393,6 @@ msgid "User Groups Administration" msgstr "Administração de grupos de usuários" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Adicionar usuário" @@ -4250,12 +4418,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "Permissões padrão" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4265,7 +4428,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4275,11 +4438,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "Confirma excluir este usuário: %s" @@ -4301,18 +4464,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "Confirmação de nova senha" @@ -4334,49 +4490,57 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Repositório Mercurial" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Repositório Git" + +#: kallithea/templates/base/base.html:126 #, fuzzy msgid "Create Fork" msgstr "Excluir bifurcações" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Sumário" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "Registro de alterações" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Arquivos" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "Trocar Para" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Opções" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 #, fuzzy msgid "Compare Fork" msgstr "Compare bifurcação" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4386,135 +4550,131 @@ msgid "Compare" msgstr "Compare" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "Pesquisar" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "Destravar" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "Travar" -#: kallithea/templates/base/base.html:176 +#: kallithea/templates/base/base.html:180 msgid "Follow" msgstr "Seguir" -#: kallithea/templates/base/base.html:177 +#: kallithea/templates/base/base.html:181 msgid "Unfollow" msgstr "Parar de seguir" -#: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "Bifurcação" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "Criar Pull Request" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "Mostrar Pull Requests para %s" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "Mostrar atividade recente" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Diário" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Diário público" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "Mostrar gists públicos" -#: kallithea/templates/base/base.html:237 +#: kallithea/templates/base/base.html:241 msgid "Gists" msgstr "Gists" -#: kallithea/templates/base/base.html:241 +#: kallithea/templates/base/base.html:245 #, fuzzy msgid "All Public Gists" msgstr "Todos os gists públicos" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 #, fuzzy msgid "My Public Gists" msgstr "Meus gists públicos" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 #, fuzzy msgid "My Private Gists" msgstr "Meus gists privados" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "Buscar nos repositórios" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 #, fuzzy msgid "My Pull Requests" msgstr "Pull requests" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 #, fuzzy msgid "Not Logged In" msgstr "Não logado" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 #, fuzzy msgid "Login to Your Account" msgstr "Entrar com sua conta" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Esqueceu a senha ?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "Sair" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Padrões de repositórios" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4548,8 +4708,9 @@ " usuário" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "Mostrar" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4575,7 +4736,7 @@ msgstr "Adicionar outro comentário" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "Parar de seguir este repositório" @@ -4653,6 +4814,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "confirme para revogar permissão para {0}: {1} ?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4683,6 +4852,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4711,10 +4881,6 @@ msgstr[0] "mostrando %d de %d revisão" msgstr[1] "mostrando %d de %d revisões" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "Mostrar" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "Deselecionar seleção" @@ -4732,7 +4898,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, fuzzy, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "Comparar bifurcação com %s" #: kallithea/templates/changelog/changelog.html:66 @@ -4743,10 +4909,12 @@ #: kallithea/templates/changelog/changelog.html:92 #: kallithea/templates/changelog/changelog_summary_data.html:20 -#, python-format +#, fuzzy, python-format +#| msgid "" "Changeset status: %s\n" "Click to open associated pull request +#| #%s" msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" "Estado do changeset: %s\n" "Clique para abrir os pull request #%s associado" @@ -4758,7 +4926,7 @@ msgstr "Estado do changeset: %s" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4791,7 +4959,7 @@ msgid "Branch %s" msgstr "Ramo %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Ainda não há alteações" @@ -4807,7 +4975,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "Adicionado" @@ -4837,21 +5005,23 @@ msgid "Refs" msgstr "Refs" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Adicionar ou enviar arquivos diretamente pelo Kallithea" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "Fazer push de novo repositório" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "Repositório existente?" @@ -4861,15 +5031,15 @@ msgstr "%s Changeset" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "Estado do changeset" @@ -4892,7 +5062,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "mesclar" #: kallithea/templates/changeset/changeset.html:123 @@ -4904,158 +5076,172 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "criado" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "criado" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "%s arquivo modificado" msgstr[1] "%s arquivos modificados" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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 arquivo modificado com %s inserções e %s exclusões" msgstr[1] "%s arquivos modificados com %s inserções e %s exclusões" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 #, fuzzy msgid "Show full diff anyway" msgstr "Mostrar diff completo" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -#, fuzzy -msgid "Status change from pull request" -msgstr "Alteração de estado no changeset" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "revisões" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "Comentar no pull request #%s" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 #, fuzzy msgid "No title" msgstr "novo arquivo" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -#, fuzzy -msgid "Comment from pull request" -msgstr "Comentar no pull request #%s" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "Alteração de estado no changeset" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "Comentário no changeset" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "Nenhum changeset" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "%d comentário" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Mudanças mais recentes" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "Comentando a linha {1}." -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "Comentários interpretados usando a sintaxe %s com suporte a %s." -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 #, fuzzy msgid "Use @username inside this text to notify another user" msgstr "" "Use @nomedeusuário dentro desse texto para enviar notificação a este " "usuário do Kallithea" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "Visualizar comentário" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 #, fuzzy msgid "Submitting ..." msgstr "Enviando..." -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Comentário" -#: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 msgid "Preview" msgstr "Visualizar" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "You need to be logged in to comment." msgstr "Você precisa estar logado para comentar." -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "Entrar agora" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "Ocultar" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d comentário" msgstr[1] "%d comentários" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "(%d em linha)" msgstr[1] "(%d em linha)" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, fuzzy, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" msgstr[1] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -#, fuzzy -msgid "Use @username inside this text to send notification to another local user." +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "" "Use @nomedeusuário dentro desse texto para enviar notificação a este " "usuário do Kallithea" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "Vote para estado do pull request" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Altere o estado do changeset" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "Sem modificações" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(fechado)" @@ -5075,7 +5261,7 @@ msgstr "Mostrar diff completo para este arquivo" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "Mostrar diff completo lado-a-lado para este arquivo" @@ -5084,12 +5270,12 @@ msgid "Show inline comments" msgstr "Mostrar comentários inline" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "excluir" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "renomear" @@ -5102,32 +5288,44 @@ msgid "Ancestor" msgstr "Antecessor" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 #, fuzzy msgid "Show merge diff" msgstr "Mostrar diff completo" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 #, fuzzy msgid "Common ancestor" msgstr "Comentário no changeset" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 #, fuzzy msgid "is" msgstr "Gist" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "%s Changesets" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "Reindexar" @@ -5152,56 +5350,43 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "Mostrando %s commit" msgstr[1] "Mostrando %s commits" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "Nenhum arquivo" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "Mostrar diff completo" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Repositório Mercurial" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Repositório Git" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Repositório público" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "Nenhum conjunto de alterações ainda." +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "Assinar o feed rss de %s" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "Assinar o feed atom de %s" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5329,10 +5514,6 @@ msgid "Commit Changes" msgstr "Realizar commit das alterações" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "Revisão anterior" @@ -5358,19 +5539,15 @@ msgstr "Tamanho" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Mimetype" +msgid "Last Revision" +msgstr "Última revisão" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "Última revisão" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "Última alteração" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "Último commiter" @@ -5485,8 +5662,8 @@ msgstr "%s Seguidores" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "Seguidores" @@ -5538,8 +5715,8 @@ msgstr "%s Bifurcações" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "Bifurcações" @@ -5547,7 +5724,7 @@ msgid "Forked" msgstr "Bifurcado" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "Ainda não há bifurcações" @@ -5560,19 +5737,13 @@ msgstr "RSS feed do diário" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" -msgstr "Meus repositórios" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "Ainda não há entradas" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Diário Público" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "ATOM feed do diário público" @@ -5615,22 +5786,17 @@ msgid "Destination repository" msgstr "Repositório de destino" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -#, fuzzy -msgid "Pull Request Reviewers" -msgstr "Revisores do pull request" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 #, fuzzy msgid "No entries" msgstr "Ainda não há entradas" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "revogar" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5639,52 +5805,51 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, fuzzy, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -#, fuzzy -msgid "Delete Pull Request" -msgstr "Novo pull request" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "Confirme para excluir este pull request" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "Fechado" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +#, fuzzy +msgid "Delete Pull Request" +msgstr "Novo pull request" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "Confirme para excluir este pull request" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Confirme para excluir este pull request" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" +#, fuzzy, python-format +#| msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "%s Pull Request #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, fuzzy, python-format -msgid "Pull request #%s from %s#%s" -msgstr "" +#| msgid "Pull Requests from %s'" +msgid "Pull request %s from %s#%s" +msgstr "Pull requests de %s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 #, fuzzy @@ -5700,94 +5865,95 @@ msgid "Pull request status calculated from votes" msgstr "Estado do pull request calculado a partir dos votos" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "Ainda não revisado por" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "%d revisor" msgstr[1] "%d revisores" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "O pull request foi revisado por todos os revisores" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "Ainda não há ramos" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "nenhum" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "Puxar mudanças" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 #, fuzzy msgid "Created by" msgstr "criado" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "usuário [atualizado]" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "dono" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "revisor" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +#, fuzzy +msgid "Pull Request Reviewers" +msgstr "Revisores do pull request" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "revisor" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "Visualizar comentário" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "Crie novo pull request" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "Mudanças mais recentes" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "O pull request mudou de estado" @@ -5893,8 +6059,8 @@ msgstr "%s RSS feed" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "Habilitar" @@ -5902,45 +6068,45 @@ msgid "Stats gathered: " msgstr "Estatísticas coletadas:" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "arquivos" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "Mostrar mais" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "commits" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "arquivos adicionados" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "arquivos alterados" +msgid "files added" +msgstr "arquivos adicionados" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "arquivos alterados" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "arquivos removidos" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "commit" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "arquivo adicionado" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "arquivo alterado" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "arquivo removido" @@ -5962,67 +6128,78 @@ msgid "Fork of" msgstr "Bifurcação de" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "Mostrar por Nome" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Clonar de" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "URL de clonagem" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "Mostrar por Nome" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "Mostrar por ID" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "Tendências em arquivos" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "Download" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "Ainda não há downloads" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "Downloads estão desabilitados para este repositório" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "Download como zip" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "Marque isto para descarregar arquivo com subrepositórios" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "com subrepositórios" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "Tamanho do Repositório" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "Feed" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "Mudanças mais recentes" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "Início rápido" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "Descarregar %s como %s" @@ -6037,3 +6214,335 @@ msgid "Compare Tags" msgstr "Comparar tags" +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "%d comentário" + +#~ msgid "public journal" +#~ msgstr "diário público" + +#~ msgid "journal" +#~ msgstr "diário" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "Destravado" + +#~ msgid "Locked" +#~ msgstr "Travado" + +#~ msgid "Repository has been %s" +#~ msgstr "O repositório foi %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Você não pode editar esse usuário" + +#~ msgid "No Files" +#~ msgstr "Nenhum Arquivo" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "O username \\\"%(username)s\\\" é proibido" + +#~ msgid "invalid user name" +#~ msgstr "nome de usuário inválido" + +#~ msgid "Your account is disabled" +#~ msgstr "Sua conta está desabilitada" + +#~ msgid "invalid clone URL" +#~ msgstr "URL de clonagem inválida" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "URL inválida, por favor, forneça uma URL de clone http(s)/svn+http(s)" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" +#~ "As revisões %(revs)s já fazem parte " +#~ "de um pull request ou já setaram" +#~ " o estado" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "Padrões" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "Seguindo" + +#~ msgid "My Permissions" +#~ msgstr "Minhas permissões" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "excluir" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Administração de permissões" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Sobrescrever as configurações existentes" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Permissões padrão" + +#~ msgid "none" +#~ msgstr "nenhum" + +#~ msgid "read" +#~ msgstr "ler" + +#~ msgid "write" +#~ msgstr "escrever" + +#~ msgid "admin" +#~ msgstr "administrador" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "URL opcional http[s] da qual o repositório deve ser clonado." + +#~ msgid "Remote URL" +#~ msgstr "URL de clonagem" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Realizar pull de alterações a partir de localização remota" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "ID inalterável" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "editar" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "Destruir dados antigos" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Permissões padrão" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Alteração de estado no changeset" + +#~ msgid "Status change on changeset" +#~ msgstr "Alteração de estado no changeset" + +#~ msgid "Comment on changeset" +#~ msgstr "Comentário no changeset" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" +#~ "Use @nomedeusuário dentro desse texto " +#~ "para enviar notificação a este usuário" +#~ " do Kallithea" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "Mimetype" + +#~ msgid "My Repos" +#~ msgstr "Meus repositórios" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "dono" + +#~ msgid "reviewer" +#~ msgstr "revisor" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/ru/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/ru/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/ru/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -16,9 +16,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-04-13 20:18+0200\n" "Last-Translator: Andrew Shadura \n" "Language-Team: Russian " @@ -32,19 +32,23 @@ "X-Generator: Weblate 2.3-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Ещё не было изменений" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "Ничего" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(закрыто)" @@ -58,21 +62,17 @@ msgstr "Игнорировать пробелы" #: kallithea/controllers/changeset.py:169 -#, python-format -msgid "increase diff context to %(num)s lines" +#, fuzzy, python-format +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "увеличить контекст до %(num)s строк" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Нет такой ревизии в этом репозитории" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Нет комментариев." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" @@ -80,31 +80,41 @@ "Нельзя редактировать статус изменений, связанных с закрытыми pull-" "request'ами" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "Выбрать набор изменений" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "Невозможно сравнивать репозитории без общего предка" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "версии" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "Запрос не распознан сервером из-за неправильного синтаксиса." -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "Несанкционированный доступ к ресурсу" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "У вас нет прав для просмотра этой страницы" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "Ресурс не найден" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -120,17 +130,17 @@ msgid "%s %s feed" msgstr "Лента новостей %s %s" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "Изменения оказались слишком большими и были вырезаны..." -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "%s выполнил коммит в %s" @@ -212,45 +222,43 @@ "Расположение должно быть относительным путем, и не должно содержать " "\"..\" в пути" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Возможность скачивать отключена" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Неизвестная ревизия %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Пустой репозиторий" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "Неизвестный тип архива" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Набор изменений" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Ветки" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Метки" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "Произошла ошибка во время создания форка репозитория %s" @@ -266,9 +274,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Репозитории" @@ -288,145 +296,163 @@ msgstr "Закладки" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" -msgstr "общедоступный журнал" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" +msgstr "Публичный журнал" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "журнал" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "Журнал" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "неверная капча" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "Регистрация в Kallithea прошла успешно" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "Ссылка для сброса пароля отправлена" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "Сброс пароля произведён, новый пароль был отправлен на ваш email" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (закрыта)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "Изменения" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "Специальный" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "Ветки участника" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Закладки" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "Ошибка при создании pull-запроса: %s" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "Нет описания" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "Pull-запрос создан успешно" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "Произошла ошибка при создании pull-запроса" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "Отсутствующие ревизии относительно предыдущего pull-запроса:" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "Новые ревизии на %s %s относительно предыдущего pull-запроса" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "Этот pull-запрос основан на другой ревизии %s, простой diff невозможен" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "Нет изменений на %s %s относительно предыдущей версии." -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "Закрыт, замещён %s ." -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "Обновление для pull-запроса создано" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "Pull-запрос обновлён" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "Pull-запрос успешно удалён" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "Этот pull-запрос уже принят на ветку %s." -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "Этот pull-запрос был закрыт и не может быть обновлён." -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "Этот pull-запрос может быть обновлён из %s:" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "Нет изменений для обновления этого pull-запроса." -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "Внимание: Ветка %s имеет ещё одну верхушку: %s." -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "Обновление pull-запросы git не поддерживается." -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "Закрыт." @@ -442,21 +468,21 @@ msgid "An error occurred during search operation." msgstr "Произошла ошибка при выполнении этого поиска." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "Нет данных" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "Статистические данные отключены для этого репозитария" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "Настройки авторизации успешно обновлены" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "произошла ошибка при обновлении настроек авторизации" @@ -469,38 +495,40 @@ msgstr "Произошла ошибка при обновлении стандартных настроек" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "forever" +msgid "Forever" msgstr "навсегда" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 минут" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 час" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 день" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 месяц" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "Срок" @@ -514,8 +542,10 @@ msgstr "Gist-запись %s удалена" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +#, fuzzy +#| msgid "Last Modified" +msgid "Unmodified" +msgstr "Последнее изменение" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -530,119 +560,135 @@ msgid "Error occurred during update of gist %s" msgstr "Произошла ошибка при обновлении gist-записи %s" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" "Вы не можете изменить данные этого пользователя, поскольку он важен для " "работы всего приложения" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "Ваша учетная запись успешно обновлена" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "Произошла ошибка при обновлении пользователя %s" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Пароль обновлён" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "Ошибка при обновлении пароля" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "Пользователю добавлен e-mail %s" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Произошла ошибка при сохранении e-mail" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "E-mail пользователя удалён" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" msgstr "API-ключ успешно создан" -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" msgstr "API-ключ успешно сброшен" -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" msgstr "API-ключ успешно удалён" +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "Чтение" + #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "Чтение" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "Запись" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "Запись" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "Администратор" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "Отключено" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "Разрешена, с ручной активацией учётной записи" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "Разрешена, с автоматической активацией учётной записи" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -650,11 +696,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "Ручная активация внешней учетной записи" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -662,221 +708,212 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "Автоматическая активация внешней учетной записи" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "Включено" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "Глобальные привилегии успешно обновлены" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "Произошла ошибка во время обновления привилегий" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "Произошла ошибка при создании группы репозиториев %s" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "Создана новая группа репозиториев %s" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "Произошла ошибка при создании группы репозиториев %s" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "Группа репозиториев %s обновлена" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "Произошла ошибка при обновлении группы репозиториев %s" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "Данная группа содержит %s репозитариев и не может быть удалена" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "Группа содержит в себе %s подгрупп и не может быть удалён" -#: kallithea/controllers/admin/repo_groups.py:302 +#: kallithea/controllers/admin/repo_groups.py:297 #, python-format msgid "Removed repository group %s" msgstr "Группа репозиториев %s удалена" -#: kallithea/controllers/admin/repo_groups.py:307 +#: kallithea/controllers/admin/repo_groups.py:302 #, python-format msgid "Error occurred during deletion of repository group %s" msgstr "Произошла ошибка при удалении группы репозиториев %s" -#: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 #: kallithea/controllers/admin/user_groups.py:340 msgid "Cannot revoke permission for yourself as admin" msgstr "Администратор не может отозвать свои привелегии" -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" +#: kallithea/controllers/admin/repo_groups.py:420 +msgid "Repository group permissions updated" msgstr "Привилегии группы репозиториев обновлены" -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "Произошла ошибка при отзыве привелегии" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "Произошла ошибка при создании репозитория %s" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "Репозиторий %s создан из %s" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "Сделан форк(копия) репозитория %s на %s" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "Репозиторий %s создан" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "Репозитарий %s успешно обновлён" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "Произошла ошибка во время обновления репозитория %s" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "Форки %s отсоединены" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "Удалены форки репозитория %s" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "Репозиторий %s удалён" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "Невозможно удалить %s, он всё-ещё содержит форки" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "Произошла ошибка во время удаления %s" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "Привилегии репозитория обновлены" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "Произошла ошибка при создании поля" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "Произошла ошибка при удалении поля" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "-- Не форк --" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "Видимость репозитория в публичном журнале обновлена" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "Произошла ошибка при установке репозитария в общедоступный журнал" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "Несовпадение токенов" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Ничего" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "Репозиторий %s отмечен как форк %s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "Произошла ошибка при выполнении операции" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "Закрытый репозиторий" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "Открытый репозиторий" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "Репозиторий не заблокирован" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "Репозиторий не заблокирован" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "Произошла ошибка во время разблокирования" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "Разблокировано" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "Заблокировано" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "Кэш сброшен" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "Произошла ошибка при очистке кэша" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "Внесены изменения из удалённого репозитория" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "Репозиторий %s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "Кэш сброшен" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "Произошла ошибка при очистке кэша" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "Внесены изменения из удалённого репозитория" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "Произошла ошибка при внесении изменений из удалённого репозитория" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "Произошла ошибка при удалении статистики репозитория" @@ -894,7 +931,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "Произошла ошибка при обновлении настроек приложения" #: kallithea/controllers/admin/settings.py:213 @@ -971,85 +1008,82 @@ msgstr "Целевая группа не может быть такой же" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "Привилегии группы пользователей обновлены" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "Обновлены привилегии" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "Произошла ошибка при сохранении привилегий" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "Пользователь %s создан" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "Произошла ошибка при создании пользователя %s" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "Пользователь успешно обновлён" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "Пользователь успешно удалён" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "Произошла ошибка при удалении пользователя" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "Вы не можете редактировать данного пользователя" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" msgstr "Добавлен IP %s в белый список пользователя" -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" msgstr "Произошла ошибка при сохранении IP" -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" msgstr "Удален IP %s из белого списка пользователя" -#: kallithea/lib/auth.py:745 +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "IP %s заблокирован" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" "Вы должны быть зарегистрированным пользователем, чтобы выполнить это " "действие" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "Страница доступна только авторизованным пользователям" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "Репозиторий не найден на файловой системе" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "Набор изменений не найден" @@ -1067,158 +1101,164 @@ msgid "No changes detected" msgstr "Изменений не обнаружено" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "Удалена ветка: %s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "Создан тег: %s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "Показать отличия вместе %s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "сравнение" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "и" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "на %s больше" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "версии" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "имя форка %s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "Pull-запрос #%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[удален] репозиторий" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[создан] репозиторий" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[создан] репозиторий как форк" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[форкнут] репозиторий" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[обновлён] репозиторий" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "[загружен] архив из репозитория" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[удален] репозиторий" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "[создан] пользователь" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "[обновлён] пользователь" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "[создана] группа пользователей" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "[обновлена] группа пользователей" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[комментарий] к ревизии в репозитории" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[прокомментировано] в запросе на внесение изменений для" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[закрыт] Pull-запрос для" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[отправлено] в" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[внесены изменения с помощью Kallithea] в репозитории" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[внесены изменения из удалённого репозитория] в репозиторий" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[внесены изменения] из" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[добавлен в наблюдения] репозиторий" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[удалён из наблюдения] репозиторий" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " и на %s больше" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "Файлов нет" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "Нет файлов" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "новый файл" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "изменён" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "удалён" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "переименован" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "chmod" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1229,7 +1269,7 @@ "переименован из файловой системы. Пожалуйста, перезапустите приложение " "для сканирования репозиториев" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" @@ -1237,7 +1277,7 @@ msgstr[1] "%d лет" msgstr[2] "%d года" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" @@ -1245,7 +1285,7 @@ msgstr[1] "%d месяца" msgstr[2] "%d месяцев" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" @@ -1253,7 +1293,7 @@ msgstr[1] "%d дня" msgstr[2] "%d дней" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" @@ -1261,7 +1301,7 @@ msgstr[1] "%d часов" msgstr[2] "%d часа" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" @@ -1269,7 +1309,7 @@ msgstr[1] "%d минут" msgstr[2] "%d минуты" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" @@ -1277,27 +1317,27 @@ msgstr[1] "%d секунды" msgstr[2] "%d секунды" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "в %s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s назад" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "в %s и %s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s и %s назад" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "прямо сейчас" @@ -1312,7 +1352,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "Репозитарий - нет доступа" @@ -1327,7 +1367,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "Репозитарий - доступ на чтение" @@ -1342,7 +1382,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "Репозитарий - доступ на запись" @@ -1357,7 +1397,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "Репозитарий - администрирование" @@ -1396,7 +1436,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Администратор Kallithea" @@ -1411,7 +1451,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "Создание репозиториев отключено" @@ -1426,7 +1466,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "Создание репозиториев включено" @@ -1441,7 +1481,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "Возможность создавать форк репозитория отключена" @@ -1456,7 +1496,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "Возможность создавать форк репозитория включена" @@ -1492,7 +1532,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "Не просмотрено" @@ -1507,7 +1547,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "Одобрено" @@ -1522,7 +1562,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "Отклонено" @@ -1537,7 +1577,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "На рассмотрении" @@ -1549,7 +1589,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "верхний уровень" @@ -1561,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "Группа Репозиториев - нет доступа" @@ -1573,7 +1613,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "Группа репозиториев - доступ на чтение" @@ -1585,7 +1625,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "Группа репозиториев - доступ на запись" @@ -1597,7 +1637,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "Группа репозиториев - администрирование" @@ -1608,7 +1648,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "Группа пользователей - нет доступа" @@ -1619,7 +1659,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "Группа пользователей - доступ на чтение" @@ -1630,7 +1670,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "Группа пользователей - доступ на запись" @@ -1641,7 +1681,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "Группа пользователей - администрирование" @@ -1652,7 +1692,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "Создание групп репозиториев отключено" @@ -1663,7 +1703,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "Создание групп репозиториев включено" @@ -1674,7 +1714,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "Создание групп пользователей отключено" @@ -1685,7 +1725,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "Создание групп пользователей включено" @@ -1696,7 +1736,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "Регистрация отключена" @@ -1707,7 +1747,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "Регистрация пользователя с ручной активацией учётной записи" @@ -1718,29 +1758,149 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "Регистрация пользователя с автоматической активацией" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "на строке %s" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[Упоминание]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "Несанкционированный доступ к ресурсу" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "Несанкционированный доступ к ресурсу" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Only admins can create repository groups" +msgstr "Создана новая группа репозиториев %s" + +#: kallithea/model/db.py:1683 +#, fuzzy, python-format +#| msgid "Created repository group %s" +msgid "Non-admins can create repository groups" +msgstr "Создана новая группа репозиториев %s" + +#: kallithea/model/db.py:1685 +#, fuzzy +#| msgid "Create user groups" +msgid "Only admins can create user groups" +msgstr "Создавать группы пользователей" + +#: kallithea/model/db.py:1686 +#, fuzzy +#| msgid "Create user groups" +msgid "Non-admins can create user groups" +msgstr "Создавать группы пользователей" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Местонахождение репозиториев" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Invalidate cache for all repositories" +msgid "Non-admins can can fork repositories" +msgstr "Сбросить кэш для всех репозиториев" + +#: kallithea/model/db.py:1698 +#, fuzzy +#| msgid "User Registration with manual account activation" +msgid "User registration with manual account activation" +msgstr "Регистрация пользователя с ручной активацией учётной записи" + +#: kallithea/model/db.py:1699 +#, fuzzy +#| msgid "User Registration with automatic account activation" +msgid "User registration with automatic account activation" +msgstr "Регистрация пользователя с автоматической активацией" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "Не просмотрено" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "На рассмотрении" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "Пожалуйста, введите логин" @@ -1759,177 +1919,217 @@ msgid "Enter %(min)i characters or more" msgstr "Введите не менее %(min)i символов" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 +#: kallithea/model/notification.py:254 +#, fuzzy, python-format +#| msgid "%(user)s commented on changeset at %(when)s" +msgid "%(user)s commented on changeset %(age)s" +msgstr "%(user)s оставил комментарий к набору изменений %(when)s" + +#: kallithea/model/notification.py:255 +#, fuzzy, python-format +#| msgid "%(user)s sent message at %(when)s" +msgid "%(user)s sent message %(age)s" +msgstr "%(user)s отправил сообщение %(when)s" + +#: kallithea/model/notification.py:256 +#, fuzzy, python-format +#| msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s mentioned you %(age)s" +msgstr "%(user)s упомянул вас %(when)s" + +#: kallithea/model/notification.py:257 +#, fuzzy, python-format +#| msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "%(user)s зарегистрировался в Kallithea %(when)s" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s opened new pull request %(age)s" +msgstr "%(user)s открыл новый pull-запрос %(when)s" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "%(user)s commented on pull request at %(when)s" +msgid "%(user)s commented on pull request %(age)s" +msgstr "%(user)s оставил комментарий к pull-запросу %(when)s" + +#: kallithea/model/notification.py:266 #, python-format msgid "%(user)s commented on changeset at %(when)s" msgstr "%(user)s оставил комментарий к набору изменений %(when)s" -#: kallithea/model/notification.py:253 +#: kallithea/model/notification.py:267 #, python-format msgid "%(user)s sent message at %(when)s" msgstr "%(user)s отправил сообщение %(when)s" -#: kallithea/model/notification.py:254 +#: kallithea/model/notification.py:268 #, python-format msgid "%(user)s mentioned you at %(when)s" msgstr "%(user)s упомянул вас %(when)s" -#: kallithea/model/notification.py:255 +#: kallithea/model/notification.py:269 #, python-format msgid "%(user)s registered in Kallithea at %(when)s" msgstr "%(user)s зарегистрировался в Kallithea %(when)s" -#: kallithea/model/notification.py:256 +#: kallithea/model/notification.py:270 #, python-format msgid "%(user)s opened new pull request at %(when)s" msgstr "%(user)s открыл новый pull-запрос %(when)s" -#: kallithea/model/notification.py:257 +#: kallithea/model/notification.py:271 #, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "%(user)s оставил комментарий к pull-запросу %(when)s" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "Новый пользователь \"%(new_username)s\" зарегистрирован" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "Новый пользователь \"%(new_username)s\" зарегистрирован" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "Закрыт" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#: kallithea/model/pull_request.py:137 +#, fuzzy, python-format +#| msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" msgstr "%(user)s просит вас рассмотреть pull request #%(pr_id)s: %(pr_title)s" -#: kallithea/model/scm.py:808 +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "последняя версия" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "Регистрация нового пользователя" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" -"Вы не можете редактировать пользователя, поскольку это критично для " -"работы всего приложения" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "" "Вы не можете удалить пользователя, поскольку это критично для работы " "всего приложения" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -"Пользователь \"%s\" всё ещё является владельцем %s репозиториев и поэтому не " -"может быть удалён. Смените владельца или удалите эти репозитории: %s" - -#: kallithea/model/user.py:268 +"Пользователь \"%s\" всё ещё является владельцем %s репозиториев и поэтому" +" не может быть удалён. Смените владельца или удалите эти репозитории: %s" + +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" "Пользователь \"%s\" всё ещё является владельцем %s групп репозиториев и " -"поэтому не может быть удалён. Смените владельца или удалите данные группы: %s" - -#: kallithea/model/user.py:275 +"поэтому не может быть удалён. Смените владельца или удалите данные " +"группы: %s" + +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" "Пользователь \"%s\" всё ещё является владельцем %s групп пользователей и " -"поэтому не может быть удалён. Смените владельца или удалите данные группы: %s" - -#: kallithea/model/user.py:305 +"поэтому не может быть удалён. Смените владельца или удалите данные " +"группы: %s" + +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "Ссылка сброса пароля" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "Ваш новый пароль" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "Ваш новый пароль от Kallithea: %s" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "Значение не может быть пустым списком" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "Пользователь с именем \"%(username)s\" уже существует" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "Имя \"%(username)s\" отклонено" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "Имя \"%(username)s\" недопустимо" + +#: kallithea/model/validators.py:99 +#, fuzzy +#| msgid "" "Username may only contain alphanumeric characters underscores, +#| periods or" " dashes and must begin with alphanumeric character or +#| underscore" msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" +" dashes and must begin with an alphanumeric character or underscore" msgstr "" "Имя пользователя может содержать только буквы, цифры, символы " "подчеркивания, точки и тире; а так же должно начинаться с буквы, цифры " "либо с символа подчеркивания" -#: kallithea/model/validators.py:132 +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "Имя \"%(username)s\" недопустимо" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "Неверное имя группы пользователей" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "Группа пользователей \"%(usergroup)s\" уже существует" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" @@ -1937,108 +2137,112 @@ "имя группы пользователей может содержать только буквы, цифры, символы " "подчеркивания, точки и тире; а так же должно начинаться с буквы или цифры" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "Невозможно использовать эту группу как родителя" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "Группа \"%(group_name)s\" уже существует" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "Репозитарий с именем \"%(group_name)s\" уже существует" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "Недопустимые символы (не ascii) в пароле" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "Неверно задан старый пароль" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "Пароли не совпадают" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "неверный пароль" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "неверное имя пользователя" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "Ваш аккаунт выключен" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "Несовпадение токенов" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "Имя репозитория %(repo)s запрещено" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "Репозитарий %(repo)s уже существует" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "Репозитарий \"%(repo)s\" уже существует в группе \"%(group)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "Группа репозиториев \"%(repo)s\" уже существует" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "неверный URL для клонирования" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" -"Неверный URL клонирования, предоставьте корректный URL для клонирования в " -"формате http(s)/svn+http(s)/ssh" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "приватный репозиторий" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "Тип форка будет совпадать с родительским" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "У вас недостаточно прав для создания репозиториев в этой группе" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "недостаточно прав для создания репозитория в корневом каталоге" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "У Вас недостаточно привилегий для создания группы в этом месте" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "Данное имя пользователя или группы пользователей недопустимо" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "Этот путь ошибочен" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "Этот E-mail уже занят" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "\"%(email)s\" не существует." -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" @@ -2046,35 +2250,28 @@ "Для входа по LDAP должно быть указано значение аттрибута CN - это " "эквивалент имени пользователя" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" -"Ревизии %(revs)s уже включены в pull-request или имеют установленный " -"статус" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "Пожалуйста, введите существующий IPv4 или IpV6 адре" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "Пожалуйста, введите существующий IPv4 или IPv6 адре" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" "Значение маски подсети должно быть в пределах от 0 до 32 (%(bits)r - " "неверно)" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" "Ключевое имя может только состоять из букв, символа подчеркивания, тире " "или чисел" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "Файла нет в каталоге" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2136,13 +2333,13 @@ msgstr "Имя группы" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2154,11 +2351,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "Описание" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2179,11 +2376,11 @@ msgid "Name" msgstr "Имя" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "Последнее изменение" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2192,18 +2389,19 @@ msgid "Tip" msgstr "Состояние" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "Владелец" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2215,7 +2413,7 @@ msgid "Click to sort ascending" msgstr "По возрастанию" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2227,11 +2425,11 @@ msgid "Click to sort descending" msgstr "По убыванию" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "Репозитарии не найдены." -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2243,10 +2441,10 @@ msgid "Data error." msgstr "Ошибка данных." -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2256,7 +2454,7 @@ msgstr "Загрузка..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "Войти" @@ -2265,39 +2463,39 @@ msgid "Log In to %s" msgstr "Войти в %s" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "Имя пользователя" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "Пароль" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "Запомнить" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "Забыли пароль?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "Нет аккаунта?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "Войти" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "Забыли пароль?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "Нет аккаунта?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "Сброс пароля" @@ -2345,26 +2543,26 @@ msgstr "Повторите пароль" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "Имя" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "Фамилия" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "E-mail" @@ -2473,9 +2671,12 @@ msgstr "Включенные плагины" #: kallithea/templates/admin/auth/auth_settings.html:33 +#, fuzzy +#| msgid "" "Comma separated list of plugins. Order of plugins is also order in +#| which " "Kallithea will try to authenticate user" msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" "Список плагинов, разделенных запятой. Kallithea будет пробовать " "аутентифицировать пользователя в порядке указания плагинов" @@ -2484,100 +2685,86 @@ msgid "Available built-in plugins" msgstr "Доступные встроенные плагины" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "включено" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "отключено" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "Плагин" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "Сохранить" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 -msgid "Repository Defaults" -msgstr "Значения по умолчанию" - #: kallithea/templates/admin/defaults/defaults.html:11 #: kallithea/templates/base/base.html:66 -msgid "Defaults" +msgid "Repository Defaults" msgstr "Значения по умолчанию" -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "Тип" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "Приватный репозиторий" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "Приватные репозитории видны только их участникам." -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "Включить статистику" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "Включить окно статистики на странице «Общие сведения»." -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "Включить скачивание" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "Включить меню скачивания на странице «Общие сведения»." -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "Включить блокирование" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "Включить автоблокировку для репозитория." @@ -2609,6 +2796,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "Истекает" @@ -2619,7 +2812,9 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +#, fuzzy +#| msgid "never" +msgid "Never" msgstr "никогда" #: kallithea/templates/admin/gists/edit.html:145 @@ -2627,7 +2822,7 @@ msgstr "Обновить" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "Отмена" @@ -2650,12 +2845,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "Создать новую gist-запись" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "Создано" @@ -2681,25 +2876,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2729,11 +2926,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "Удалить" @@ -2742,9 +2950,18 @@ msgstr "Подтвердите удаление этой gist-записи" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2770,7 +2987,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "Мой Аккаунт" @@ -2779,83 +2996,90 @@ msgid "Profile" msgstr "Профиль" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "API-ключи" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "Новый E-mail" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" -msgstr "Мои адреса E-mail" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" +msgstr "API-ключи" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "Мои репозитории" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "репозитории" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "Просмотрено" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "Создать репозитории" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" -msgstr "Мои привилегии" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +#, fuzzy +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "Скопировать привилегии" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to reset this api key: %s" +msgid "Confirm to reset this API key: %s" msgstr "Подтвердите сброс этого API-ключа: %s" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" -msgstr "" +#, fuzzy +#| msgid "Expires" +msgid "Expired" +msgstr "Истекает" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" +#, fuzzy, python-format +#| msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "Подтвердите удаление этого API-ключа: %s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" -msgstr "" +#, fuzzy +#| msgid "Removed" +msgid "Remove" +msgstr "Удалено" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" -msgstr "" +#, fuzzy +#| msgid "No additional emails specified." +msgid "No additional API keys specified" +msgstr "Дополнительные адреса e-mail не указаны" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" -msgstr "" +#, fuzzy +#| msgid "New field key" +msgid "New API key" +msgstr "Ключ" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2868,19 +3092,6 @@ msgid "Primary" msgstr "Основной" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "удалить" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2901,19 +3112,24 @@ msgid "Change Your Account Password" msgstr "Смена пароля" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "Текущий пароль" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "Новый пароль" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "Подтвердите новый пароль" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "Измените аватар через сайт" @@ -2934,15 +3150,11 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" +#, fuzzy +#| msgid "current IP" +msgid "Current IP" msgstr "текущий IP-адрес" -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_repos.html:1 msgid "Repositories You Own" msgstr "Репозитории, где Вы — владелец" @@ -2976,7 +3188,7 @@ msgstr "Комментарии" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "Pull-запросы" @@ -2994,21 +3206,15 @@ msgstr "Показать уведомление" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "Уведомления" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "Управление привилегиями" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "Привилегии" +msgid "Default Permissions" +msgstr "Стандартные привилегии" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -3016,14 +3222,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "Белый список IP" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "Обзор" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "Анонимный доступ" @@ -3035,25 +3237,30 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" -"Выбранные привилегии будут установлены по умолчанию для каждого репозитория. " -"Учтите, что ранее установленные привилегии по умолчанию будут сброшены" +"Выбранные привилегии будут установлены по умолчанию для каждого " +"репозитория. Учтите, что ранее установленные привилегии по умолчанию " +"будут сброшены" + +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Existing repository?" +msgid "Apply to all existing repositories" +msgstr "Существующий репозиторий?" #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" -msgstr "Перезаписать существующие настройки" +msgid "Permissions for the Default user on new repositories." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "Группа репозиториев" @@ -3065,78 +3272,114 @@ "will be lost" msgstr "" "Выбранные привилегии будут установлены по умолчанию для каждой группы " -"репозиториев. Учтите, что ранее установленные привилегии по умолчанию для " -"групп репозиториев будут сброшены" +"репозиториев. Учтите, что ранее установленные привилегии по умолчанию для" +" групп репозиториев будут сброшены" + +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Delete this repository group" +msgid "Apply to all existing repository groups" +msgstr "Удалить эту группу репозиториев" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "Группа пользователей" #: kallithea/templates/admin/permissions/permissions_globals.html:53 +#, fuzzy +#| msgid "" "All default permissions on each user group will be reset to chosen +#| " "permission, note that all custom default permission on repository groups +#| " "will be lost" msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" msgstr "" "Выбранные привилегии будут установлены по умолчанию для каждой группы " -"пользователей. Учтите, что ранее установленные привилегии по умолчанию для " -"групп пользователей будут сброшены" +"пользователей. Учтите, что ранее установленные привилегии по умолчанию " +"для групп пользователей будут сброшены" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." +msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "Создание репозитория" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "Создание групп пользователей" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "Создание форка репозитория" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "Регистрация" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "Активация сторонней учетной записи" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "Белый список IP для всех пользователей" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" +#, fuzzy, python-format +#| msgid "Confirm to delete this ip: %s" +msgid "Confirm to delete this IP address: %s" msgstr "Подтвердите удаление IP %s" -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "Разрешены любые IP-адреса" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" +msgid "New IP address" msgstr "Новый IP-адрес" -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" -msgstr "Обзор прав пользователей по умолчанию" - #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:105 @@ -3158,12 +3401,12 @@ msgstr "Родительская группа" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3181,19 +3424,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "Настройки" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "Дополнительно" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "Привилегии" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3214,12 +3463,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "Создано" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3231,39 +3480,13 @@ msgid "Delete this repository group" msgstr "Удалить эту группу репозиториев" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "ничего" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "читать" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "записывать" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "администратор" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" -msgstr "" +#, fuzzy +#| msgid "User group" +msgid "User/User Group" +msgstr "Группа пользователей" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:45 @@ -3271,7 +3494,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "по умолчанию" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3280,14 +3505,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "отозвать" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3295,7 +3517,9 @@ msgstr "Добавить новый" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "применить к дочерним" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3345,43 +3569,41 @@ msgid "Number of Top-level Repositories" msgstr "Число репозиториев верхнего уровня" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "Клонировать из" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "Опциональный URL, с которого требуется склонировать репозиторий." - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[создан] репозиторий" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." -msgstr "" -"Короткое и осмысленное. Для развернутого описания используйте файл README." - -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +msgstr "Короткое и осмысленное. Для развернутого описания используйте файл README." + +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "Опционально выбрать группу, в которую поместить данный репозиторий." -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "Тип создаваемого репозитория." -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "Ревизия для выгрузки" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3428,8 +3650,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "Статистика" @@ -3451,47 +3673,47 @@ msgid "Public Journal Visibility" msgstr "Доступ к публичному журналу" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "Удалить из общедоступного журнала" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "Добавить в публичный журнал" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -"Все производимые с этим репозиторием действия будут отображаться в публичном " -"журнале" - -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +"Все производимые с этим репозиторием действия будут отображаться в " +"публичном журнале" + +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "Включить блокирование" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "Подтвердите снятие блокировки с репозитория." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "Разблокировать репозиторий" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "Подтвердите блокировку репозитория." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "Заблокировать репозиторий" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "Репозиторий не заблокирован" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3499,17 +3721,17 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "Подтвердите удаление этого репозитория: %s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 msgid "Delete this Repository" msgstr "Удалить этот репозиторий" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" @@ -3517,15 +3739,15 @@ msgstr[1] "Данный репозиторий имеет %s копии" msgstr[2] "Данный репозиторий имеет %s копий" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "Отсоединить fork'и" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "Удалить fork'и" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3563,8 +3785,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "Активный" @@ -3603,28 +3825,38 @@ msgstr "Дополнительные поля отключены." #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "приватный репозиторий" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "Ссылка для клонирования" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "Получить изменения с удалённой стороны" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." +#, fuzzy, python-format +#| msgid "Created repository %s" +msgid "Remote repository URL" +msgstr "Репозиторий %s создан" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[внесены изменения из удалённого репозитория] в репозиторий" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "Подтвердите скачивание изменений." -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "Неизменяемый id" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "приватный репозиторий" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3638,45 +3870,37 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "Ссылка для клонирования" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "редактировать" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[создан] репозиторий" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository" +msgid "Repository URL" +msgstr "Репозиторий" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" "Ревизия по умолчанию, из которой будет производиться выгрузка файлов при " "скачивании" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "Изменить владельца репозитория." @@ -3733,55 +3957,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "Отправить" @@ -3854,13 +4034,15 @@ msgstr "Опции пересканирования" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" -msgstr "Уничтожить все данные" +#, fuzzy +#| msgid "Search in repositories" +msgid "Delete records of missing repositories" +msgstr "Поиск по репозиториям" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3881,7 +4063,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3908,38 +4090,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 +msgid "Platform" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:8 msgid "Git version" msgstr "Версия Git" -#: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4093,11 +4279,11 @@ msgstr "Иконки" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "Показывать иконки публичных репозиториев" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "Показывать иконки приватных репозиториев" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4105,7 +4291,9 @@ msgstr "Показывать иконки публичных репозиториев." #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "Метатегирование" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4124,6 +4312,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4143,24 +4332,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "Стандартные привилегии" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "участники" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "Участники" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "Подтвердите удаление следующей группы пользователей: %s" @@ -4185,10 +4375,6 @@ msgid "User Groups Administration" msgstr "Администрирование групп пользователей" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "Добавить пользователя" @@ -4214,11 +4400,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "Стандартные привилегии" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4228,7 +4410,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4238,11 +4420,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "Подтвердите удаление пользователя %s" @@ -4264,18 +4446,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "Подтвердите новый пароль" @@ -4296,47 +4471,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Репозиторий Mercurial" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Git репозиторий" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "Создать форк" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "Общие сведения" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "История изменений" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "Файлы" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "Переключиться на" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "Опции" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "Сравнить форк" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4346,129 +4529,125 @@ msgid "Compare" msgstr "Сравнить" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "Поиск" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "Разблокировать" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "Заблокировать" -#: kallithea/templates/base/base.html:176 +#: kallithea/templates/base/base.html:180 msgid "Follow" msgstr "Наблюдать" -#: kallithea/templates/base/base.html:177 +#: kallithea/templates/base/base.html:181 msgid "Unfollow" msgstr "Не наблюдать" -#: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "Форк" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "Создать Pull запрос" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "Показать pull-запросы для %s" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "Показать последнюю активность" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "Журнал" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "Общедоступный журнал" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "Показать публичные записи" -#: kallithea/templates/base/base.html:237 +#: kallithea/templates/base/base.html:241 msgid "Gists" msgstr "Gist" -#: kallithea/templates/base/base.html:241 +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "Все публичные Gist-записи" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "Мои публичные Gist-записи" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "Мои приватные Gist-записи" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "Поиск по репозиториям" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "Мои Pull-запросы" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "Не авторизован" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "Авторизоваться" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "Забыли пароль?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "Выход" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Значения по умолчанию" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4498,8 +4677,9 @@ "репозиториев" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "Показать" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4524,7 +4704,7 @@ msgstr "Добавить ещё один комментарий" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "Отменить наблюдение за репозиторием" @@ -4594,6 +4774,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "Подтвердите удаление привилегии для {0}: {1} ?" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "включено" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "отключено" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "Выбрать набор изменений" @@ -4623,6 +4811,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4652,10 +4841,6 @@ msgstr[1] "Показаны %d из %d ревизий" msgstr[2] "Показаны %d из %d ревизий" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "Показать" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "Очистить выбор" @@ -4672,7 +4857,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "Сравнить форк с родительским репозиторием (%s)" #: kallithea/templates/changelog/changelog.html:66 @@ -4682,10 +4867,12 @@ #: kallithea/templates/changelog/changelog.html:92 #: kallithea/templates/changelog/changelog_summary_data.html:20 -#, python-format +#, fuzzy, python-format +#| msgid "" "Changeset status: %s\n" "Click to open associated pull request +#| #%s" msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" "Статус набора изенений: %s⏎\n" "Кликрните, чтобы перейти к соответствующему pull-request'у #%s" @@ -4697,7 +4884,7 @@ msgstr "Статус набора изменений: %s" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4730,7 +4917,7 @@ msgid "Branch %s" msgstr "Ветка %s" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "Изменений ещё нет" @@ -4746,7 +4933,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "Добавлено" @@ -4776,21 +4963,23 @@ msgid "Refs" msgstr "Ссылки" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "Добавить или загрузить файлы через Kallithea" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "Отправить новый репозиторий" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "Существующий репозиторий?" @@ -4800,15 +4989,15 @@ msgstr "%s Изменения" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "Статут изменений" @@ -4831,7 +5020,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "свести" #: kallithea/templates/changeset/changeset.html:123 @@ -4842,9 +5033,21 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "Создано" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "Создано" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" @@ -4852,9 +5055,9 @@ msgstr[1] "%s файлов изменено" msgstr[2] "%s файла изменено" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, python-format msgid "%s file changed with %s insertions and %s deletions" msgid_plural "%s files changed with %s insertions and %s deletions" @@ -4862,93 +5065,96 @@ msgstr[1] "%s файла изменёно: %s добавления, %s удаления" msgstr[2] "%s файлов изменёно: %s добавлений, %s удалений" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "Показать полный diff" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "Изменение статуса" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "версии" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "Комментарий в pull-запросе" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 msgid "No title" msgstr "Нет заголовка" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "Комментарий в pull-запросе" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changesets" +msgid "on this changeset" +msgstr "Нет изменений" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 msgid "Delete comment?" msgstr "Удалить комментарий?" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Последние изменения" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "Комментарий к строке {1}." -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" "Парсинг комментариев выполнен с использованием синтаксиса %s с поддержкой" " %s." -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" "Используйте @имя_пользователя в тексте, чтобы отправить оповещение " "указанному пользователю." -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "Предварительный просмотр комментария" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 msgid "Submitting ..." msgstr "Применение..." -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "Комментировать" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "Предпросмотр" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "Предпросмотр" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "Вам необходимо авторизоваться, чтобы оставлять комментарии." -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "Авторизоваться сейчас" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "Скрыть" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" @@ -4956,7 +5162,7 @@ msgstr[1] "%d комментария" msgstr[2] "%d комментариев" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, python-format msgid "%d inline" msgid_plural "%d inline" @@ -4964,7 +5170,7 @@ msgstr[1] "%d к строкам" msgstr[2] "%d к строкам" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" @@ -4972,25 +5178,27 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." +#: kallithea/templates/changeset/changeset_file_comment.html:150 +#, fuzzy +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "" "Используйте @имя_пользователя в тексте, чтобы отправить оповещение " "указанному пользователю." -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 msgid "Set changeset status" msgstr "Изменить статус ревизии" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 msgid "No change" msgstr "Без изменений" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "Закрыть" @@ -5009,7 +5217,7 @@ msgstr "Показать полный diff для этого файла" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "Показать полный diff для этого файла" @@ -5018,11 +5226,11 @@ msgid "Show inline comments" msgstr "Показать комментарии в строках" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "Удалён" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "Переименован" @@ -5034,29 +5242,41 @@ msgid "Ancestor" msgstr "Предок" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "Показать merge diff" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "Общий предок" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "отстаёт на" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, python-format msgid "%s changesets" msgstr "%s изменений" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "от" @@ -5080,7 +5300,7 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" @@ -5088,49 +5308,36 @@ msgstr[1] "Показать %s commit'а" msgstr[2] "Показать %s commit'ов" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "Нет файлов" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "Показать полный diff" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Репозиторий Mercurial" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Git репозиторий" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "Публичный репозиторий" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "Изменений ещё не было" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "Подписаться на ленту RSS %s" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "Подписаться на ленту Atom %s" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5257,10 +5464,6 @@ msgid "Commit Changes" msgstr "Применить изменения" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "Предыдущая ревизия" @@ -5286,18 +5489,14 @@ msgstr "Размер" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "Тип файла" - -#: kallithea/templates/files/files_browser.html:63 msgid "Last Revision" msgstr "Последняя версия" -#: kallithea/templates/files/files_browser.html:64 +#: kallithea/templates/files/files_browser.html:63 msgid "Last Modified" msgstr "Последнее изменение" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 msgid "Last Committer" msgstr "Автор последней ревизии" @@ -5410,8 +5609,8 @@ msgstr "%s Наблюдатели" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "Наблюдатели" @@ -5464,8 +5663,8 @@ msgstr "Форки %s" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "Ответвления" @@ -5473,7 +5672,7 @@ msgid "Forked" msgstr "Форкнуто" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "Форки ещё не созданы" @@ -5486,18 +5685,13 @@ msgstr "Лента журнала RSS" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" +msgid "My Repositories" msgstr "Мои репозитории" -#: kallithea/templates/journal/journal_data.html:61 +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "Записи отсуствуют" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "Публичный журнал" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "Общая лента журнала ATOM" @@ -5539,20 +5733,16 @@ msgid "Destination repository" msgstr "Репозиторий назначения" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "Рецензенты pull-запросов" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "Записи отсуствуют" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "отозвать" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5561,50 +5751,49 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "Последняя оценка: %s" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "Удалить pull-запрос" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "Подтвердите удаление этого pull-request'а" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "Закрыто" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "Удалить pull-запрос" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "Подтвердите удаление этого pull-request'а" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "Подтвердите удаление этого pull-request'а" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" +#, fuzzy, python-format +#| msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "%s Pull-запрос #%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 -#, python-format -msgid "Pull request #%s from %s#%s" +#, fuzzy, python-format +#| msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "Pull-запросы №%s от %s#%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5621,11 +5810,11 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "Еще не рассмотренный" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" @@ -5633,78 +5822,78 @@ msgstr[1] "%d рецензента" msgstr[2] "%d рецензентов" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "Запрос на внесение изменений был рассмотрен всеми рецензентами" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 msgid "There are no reviewers" msgstr "Нет рецензентов" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "ничего" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "Принять изменения" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "Создано" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "[обновлён] пользователь" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "владелец" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "рецензент" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "Рецензенты pull-запросов" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 msgid "Remove reviewer" msgstr "Удалить рецензента" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 msgid "Potential Reviewers" msgstr "Потенциальные рецензенты" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "Сохранить изменения" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "Создать новый pull запрос" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "Отменить изменения" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "Статус pull-request'а был изменен" @@ -5809,8 +5998,8 @@ msgstr "RSS лента репозитория %s" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "Включено" @@ -5818,45 +6007,45 @@ msgid "Stats gathered: " msgstr "Полученная статистика: " -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "файлы" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "Показать еще" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "commit'ы" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "файлы добавлены" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "файлы изменены" +msgid "files added" +msgstr "файлы добавлены" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "файлы изменены" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "файлы удалены" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "commit" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "файл удалён" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "файл изменён" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "файл удалён" @@ -5878,65 +6067,75 @@ msgid "Fork of" msgstr "Форк от" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "Показать по имени" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "Клонировать из" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" +msgstr "Ссылка для клонирования" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "Показать по имени" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "Показать по ID" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "Популярные файлы" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "Скачать" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "Скачиваний ещё нет" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "Скачивание отключено в этом репозитории" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "Скачать в zip" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "Отметьте для скачивания архива с дочерними репозиториями" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "с дочерними репозиториями" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "Размер репозитория" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "Лента новостей" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "Последние изменения" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "Быстрый старт" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "Скачать %s как %s" @@ -5949,3 +6148,312 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "Сравнить теги" + +#~ msgid "No comments." +#~ msgstr "Нет комментариев." + +#~ msgid "public journal" +#~ msgstr "общедоступный журнал" + +#~ msgid "journal" +#~ msgstr "журнал" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "Закрытый репозиторий" + +#~ msgid "Unlocked repository" +#~ msgstr "Открытый репозиторий" + +#~ msgid "Unlocked" +#~ msgstr "Разблокировано" + +#~ msgid "Locked" +#~ msgstr "Заблокировано" + +#~ msgid "Repository has been %s" +#~ msgstr "Репозиторий %s" + +#~ msgid "You can't edit this user" +#~ msgstr "Вы не можете редактировать данного пользователя" + +#~ msgid "No Files" +#~ msgstr "Файлов нет" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "Имя \"%(username)s\" отклонено" + +#~ msgid "invalid user name" +#~ msgstr "неверное имя пользователя" + +#~ msgid "Your account is disabled" +#~ msgstr "Ваш аккаунт выключен" + +#~ msgid "invalid clone URL" +#~ msgstr "неверный URL для клонирования" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" +#~ "Неверный URL клонирования, предоставьте " +#~ "корректный URL для клонирования в " +#~ "формате http(s)/svn+http(s)/ssh" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" +#~ "Ревизии %(revs)s уже включены в pull-" +#~ "request или имеют установленный статус" + +#~ msgid "Defaults" +#~ msgstr "Значения по умолчанию" + +#~ msgid "My Emails" +#~ msgstr "Мои адреса E-mail" + +#~ msgid "Watched" +#~ msgstr "Просмотрено" + +#~ msgid "My Permissions" +#~ msgstr "Мои привилегии" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "удалить" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "Управление привилегиями" + +#~ msgid "Overview" +#~ msgstr "Обзор" + +#~ msgid "Overwrite existing settings" +#~ msgstr "Перезаписать существующие настройки" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "Белый список IP для всех пользователей" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "Обзор прав пользователей по умолчанию" + +#~ msgid "none" +#~ msgstr "ничего" + +#~ msgid "read" +#~ msgstr "читать" + +#~ msgid "write" +#~ msgstr "записывать" + +#~ msgid "admin" +#~ msgstr "администратор" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "Опциональный URL, с которого требуется склонировать репозиторий." + +#~ msgid "Remote URL" +#~ msgstr "Ссылка для клонирования" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "Получить изменения с удалённой стороны" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "Неизменяемый id" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "редактировать" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "Уничтожить все данные" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "Стандартные привилегии" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "Изменение статуса" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" +#~ "Используйте @имя_пользователя в тексте, чтобы" +#~ " отправить оповещение указанному пользователю." + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "Тип файла" + +#~ msgid "My Repos" +#~ msgstr "Мои репозитории" + +#~ msgid "Latest vote: %s" +#~ msgstr "Последняя оценка: %s" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "владелец" + +#~ msgid "reviewer" +#~ msgstr "рецензент" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/sk/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/sk/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/sk/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,9 +5,9 @@ # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2015-04-01 12:59+0200\n" "Last-Translator: Andrew Shadura \n" "Language-Team: Slovak " @@ -20,19 +20,23 @@ "X-Generator: Weblate 2.3-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "Zatiaľ nie sú žiadne zmeny" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "(zatvorené)" @@ -47,50 +51,55 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "Taká revízia neexistuje" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -msgid "No comments." -msgstr "Nie sú žiadne komentáre." - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy, python-format +#| msgid "Unknown revision %s" +msgid "No response" +msgstr "Neznáma revízia %s" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 -msgid "Unauthorized access to resource" -msgstr "" - -#: kallithea/controllers/error.py:101 -msgid "You don't have permission to view this page" -msgstr "Nemáte oprávnenie na zobrazenie tejto stránky" - #: kallithea/controllers/error.py:103 -msgid "The resource could not be found" +msgid "Unauthorized access to resource" msgstr "" #: kallithea/controllers/error.py:105 +msgid "You don't have permission to view this page" +msgstr "Nemáte oprávnenie na zobrazenie tejto stránky" + +#: kallithea/controllers/error.py:107 +msgid "The resource could not be found" +msgstr "" + +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -106,17 +115,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -194,45 +203,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "Sťahovanie vypnuté" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "Neznáma revízia %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "Prázdny repozitár" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "Zmeny" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "Vetvy" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "Tagy" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -248,9 +255,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "Repozitáre" @@ -270,145 +277,163 @@ msgstr "Záložka" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" -msgstr "" - -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" +msgstr "" + +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +#, fuzzy +#| msgid "bad captcha" +msgid "Bad captcha" msgstr "zlá captcha" -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "%s (zatvorené)" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "Záložky" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 msgid "No description" msgstr "" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 msgid "Closing." msgstr "" @@ -424,21 +449,21 @@ msgid "An error occurred during search operation." msgstr "Došlo k chybe počas vyhľadávania." -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -451,38 +476,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "5 minút" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "1 hodina" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "1 deň" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "1 mesiac" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -496,7 +521,7 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" +msgid "Unmodified" msgstr "" #: kallithea/controllers/admin/gists.py:262 @@ -512,117 +537,133 @@ msgid "Error occurred during update of gist %s" msgstr "Došlo k chybe pri aktualizácii gist %s" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "Úspešne aktualizované heslo" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "Došlo k chybe pri aktualizácii hesla užívateľa" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "Došlo k chybe pri ukladaní e-mailovej adresy" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" msgstr "" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" msgstr "" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -630,11 +671,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -642,221 +683,211 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "Nič" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy, python-format +#| msgid "This repository has been locked by %s on %s" +msgid "Repository has been locked" +msgstr "Tento repozitár bol uzamknutý používateľom %s dňa %s" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy, python-format +#| msgid "This repository has been locked by %s on %s" +msgid "Repository has been unlocked" +msgstr "Tento repozitár bol uzamknutý používateľom %s dňa %s" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" msgstr "" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -872,7 +903,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -949,83 +980,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1041,158 +1069,160 @@ msgid "No changes detected" msgstr "" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:699 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, python-format +msgid "Fork name %s" +msgstr "" + +#: kallithea/lib/helpers.py:742 +#, python-format +msgid "Pull request %s" +msgstr "" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1200,7 +1230,7 @@ "repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" @@ -1208,7 +1238,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" @@ -1216,7 +1246,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" @@ -1224,7 +1254,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" @@ -1232,7 +1262,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" @@ -1240,7 +1270,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" @@ -1248,27 +1278,27 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "" @@ -1283,7 +1313,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1298,7 +1328,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1313,7 +1343,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1328,7 +1358,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1367,7 +1397,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1382,7 +1412,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1397,7 +1427,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1412,7 +1442,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1427,7 +1457,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1463,7 +1493,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1478,7 +1508,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1493,7 +1523,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1508,7 +1538,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1520,7 +1550,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1532,7 +1562,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1544,7 +1574,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1556,7 +1586,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1568,7 +1598,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1579,7 +1609,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1590,7 +1620,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1601,7 +1631,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1612,7 +1642,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1623,7 +1653,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1634,7 +1664,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1645,7 +1675,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1656,7 +1686,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1667,7 +1697,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1678,7 +1708,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1689,29 +1719,135 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "Repozitáre" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Location of repositories" +msgid "Non-admins can can fork repositories" +msgstr "Repozitáre" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "" @@ -1730,297 +1866,318 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 msgid "Closing" msgstr "" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" -msgstr "" - -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:249 +msgid "You can't remove this user since it is crucial for the entire application" +msgstr "" + +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "" -#: kallithea/model/validators.py:308 -msgid "invalid password" -msgstr "" - -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:300 +msgid "Invalid username or password" +msgstr "" + +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 -msgid "invalid clone URL" -msgstr "" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#: kallithea/model/validators.py:465 +#, fuzzy +#| msgid "Unlock Repository" +msgid "Invalid repository URL" +msgstr "Odblokovať repozitár" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" -msgstr "" - -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:705 +msgid "This email address is already in use" +msgstr "" + +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2082,13 +2239,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2100,11 +2257,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2125,11 +2282,11 @@ msgid "Name" msgstr "" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2138,18 +2295,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2161,7 +2319,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2173,11 +2331,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2189,10 +2347,10 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2202,7 +2360,7 @@ msgstr "" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "" @@ -2211,39 +2369,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2291,26 +2449,26 @@ msgstr "" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "" @@ -2420,109 +2578,95 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "Repozitáre" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2554,6 +2698,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2564,7 +2714,7 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" +msgid "Never" msgstr "" #: kallithea/templates/admin/gists/edit.html:145 @@ -2572,7 +2722,7 @@ msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2595,12 +2745,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2626,25 +2776,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2674,11 +2826,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "" @@ -2687,9 +2850,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2715,7 +2887,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "" @@ -2724,26 +2896,33 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "" +#, fuzzy +#| msgid "Repositories" +msgid "Owned Repositories" +msgstr "Repozitáre" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "" +#, fuzzy +#| msgid "Repositories" +msgid "Watched Repositories" +msgstr "Repozitáre" #: kallithea/templates/admin/my_account/my_account.html:41 -msgid "My Permissions" +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 +msgid "Show Permissions" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2751,56 +2930,42 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 #, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" +msgid "Confirm to reset this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 #, python-format -msgid "Confirm to remove this api key: %s" +msgid "Confirm to remove this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" +msgid "Remove" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2813,19 +2978,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2846,19 +2998,24 @@ msgid "Change Your Account Password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "" @@ -2879,13 +3036,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2921,7 +3072,7 @@ msgstr "" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2939,20 +3090,14 @@ msgstr "" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 -msgid "Permissions Administration" -msgstr "" - #: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 #: kallithea/templates/base/base.html:64 -msgid "Permissions" +msgid "Default Permissions" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:28 @@ -2961,14 +3106,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "" @@ -2980,23 +3121,27 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Location of repositories" +msgid "Apply to all existing repositories" +msgstr "Repozitáre" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "" @@ -3008,70 +3153,99 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +msgid "Top level repository creation" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm to delete this IP address: %s" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -msgid "Default User Permissions Overview" +msgid "New IP address" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 @@ -3095,12 +3269,12 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3118,19 +3292,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3151,12 +3331,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3168,38 +3348,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3208,7 +3360,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +msgid "Default" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3217,12 +3369,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3232,7 +3379,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3281,42 +3428,41 @@ msgid "Number of Top-level Repositories" msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "Empty repository" +msgid "Clone remote repository" +msgstr "Prázdny repozitár" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3363,8 +3509,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "" @@ -3386,45 +3532,45 @@ msgid "Public Journal Visibility" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 msgid "Add to Public Journal" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 msgid "Change Locking" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 msgid "Confirm to unlock repository." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 msgid "Unlock Repository" msgstr "Odblokovať repozitár" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 msgid "Confirm to lock repository." msgstr "Potvrdenie blokovania repozitára." -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 msgid "Lock Repository" msgstr "Zablokovať repozitár" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3432,17 +3578,17 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 msgid "Delete this Repository" msgstr "Vymazať tento repozitár" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" @@ -3450,15 +3596,15 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3496,8 +3642,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "" @@ -3536,28 +3682,38 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" -msgstr "" +#, fuzzy +#| msgid "Empty repository" +msgid "Private Repository" +msgstr "Prázdny repozitár" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 -msgid "Remote URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#, fuzzy +#| msgid "Empty repository" +msgid "Remote repository URL" +msgstr "Prázdny repozitár" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy, python-format +#| msgid "Changes on %s repository" +msgid "Pull Changes from Remote Repository" +msgstr "Zmeny na repozitáre %s" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to lock repository." +msgid "Confirm to pull changes from remote repository." +msgstr "Potvrdenie blokovania repozitára." + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "Empty repository" +msgid "Permanent Repository ID" +msgstr "Prázdny repozitár" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3571,43 +3727,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 -msgid "Clone URL" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#, fuzzy +#| msgid "Empty repository" +msgid "Remote repository" +msgstr "Prázdny repozitár" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 +#, fuzzy +#| msgid "Repository Defaults" +msgid "Repository URL" +msgstr "Repozitáre" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3664,55 +3812,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3785,13 +3889,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3812,7 +3916,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3839,38 +3943,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4023,11 +4131,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4035,7 +4143,7 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4054,6 +4162,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4073,15 +4182,8 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 -#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 -#: kallithea/templates/admin/user_groups/user_groups.html:48 -msgid "Members" +msgid "Show Members" msgstr "" #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 @@ -4089,8 +4191,14 @@ msgid "User Group: %s" msgstr "" +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 +#: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 +#: kallithea/templates/admin/user_groups/user_groups.html:48 +msgid "Members" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4115,10 +4223,6 @@ msgid "User Groups Administration" msgstr "" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "" @@ -4144,11 +4248,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -msgid "Default Permissions" -msgstr "" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4158,7 +4258,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4168,11 +4268,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4194,18 +4294,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4226,47 +4319,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 -#: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 -msgid "Changelog" -msgstr "" - #: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:141 +#: kallithea/templates/changelog/changelog.html:14 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 +msgid "Changelog" +msgstr "" + +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4276,129 +4377,125 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 -#: kallithea/templates/forks/fork.html:9 -msgid "Fork" +msgid "Follow" msgstr "" #: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 +#: kallithea/templates/forks/fork.html:9 +msgid "Fork" +msgstr "" + +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "Repozitáre" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4426,7 +4523,8 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" msgstr "" #: kallithea/templates/base/perms_summary.html:22 @@ -4453,7 +4551,7 @@ msgstr "" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "" @@ -4523,6 +4621,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "" @@ -4552,6 +4658,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4581,10 +4688,6 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4602,7 +4705,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4615,7 +4718,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4625,7 +4728,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4658,7 +4761,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "" @@ -4674,7 +4777,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4704,21 +4807,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Empty repository" +msgid "Push new repository" +msgstr "Prázdny repozitár" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4728,15 +4833,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4759,7 +4864,7 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +msgid "Merge" msgstr "" #: kallithea/templates/changeset/changeset.html:123 @@ -4770,9 +4875,17 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" @@ -4780,9 +4893,9 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, python-format msgid "%s file changed with %s insertions and %s deletions" msgid_plural "%s files changed with %s insertions and %s deletions" @@ -4790,91 +4903,93 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy, python-format +#| msgid "Unknown revision %s" +msgid "No revisions" +msgstr "Neznáma revízia %s" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Status change from pull request" +msgid "on pull request" +msgstr "Zmena stavu" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +msgid "No title" msgstr "" #: kallithea/templates/changeset/changeset_file_comment.html:24 -#, fuzzy -msgid "Status change from pull request" -msgstr "Zmena stavu" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -msgid "No title" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#, fuzzy, python-format +#| msgid "%s changesets" +msgid "on this changeset" +msgstr "%s zmien" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "Posledné zmeny" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" @@ -4882,7 +4997,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" @@ -4890,7 +5005,7 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" @@ -4898,25 +5013,25 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "Zmeny" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "Žiadne zmeny" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "(zatvorené)" @@ -4936,7 +5051,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4945,11 +5060,11 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 msgid "Deleted" msgstr "" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 msgid "Renamed" msgstr "" @@ -4961,29 +5076,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "%s zmien" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 msgid "behind" msgstr "" @@ -5007,7 +5134,7 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" @@ -5015,49 +5142,36 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5183,10 +5297,6 @@ msgid "Commit Changes" msgstr "Žiadne zmeny" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5212,18 +5322,14 @@ msgstr "" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" +msgid "Last Modified" msgstr "" #: kallithea/templates/files/files_browser.html:64 -msgid "Last Modified" -msgstr "" - -#: kallithea/templates/files/files_browser.html:65 msgid "Last Committer" msgstr "" @@ -5336,8 +5442,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "" @@ -5388,8 +5494,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5397,7 +5503,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "" @@ -5410,18 +5516,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -msgid "My Repos" -msgstr "Moje repozitáre" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5463,20 +5564,14 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +msgid "Vote" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5485,50 +5580,48 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5544,11 +5637,11 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" @@ -5556,78 +5649,78 @@ msgstr[1] "" msgstr[2] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "Zatiaľ nie sú reviewers" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 msgid "on" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 msgid "Update" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 msgid "Cancel Changes" msgstr "Zrušiť zmeny" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 msgid "Pull Request Content" msgstr "" @@ -5728,8 +5821,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5737,45 +5830,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 -msgid "commits" -msgstr "" - #: kallithea/templates/summary/statistics.html:390 -msgid "files added" +msgid "commits" msgstr "" #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" +msgid "files added" msgstr "" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "" -#: kallithea/templates/summary/statistics.html:394 -msgid "commit" -msgstr "" - #: kallithea/templates/summary/statistics.html:395 -msgid "file added" +msgid "commit" msgstr "" #: kallithea/templates/summary/statistics.html:396 -msgid "file changed" +msgid "file added" msgstr "" #: kallithea/templates/summary/statistics.html:397 +msgid "file changed" +msgstr "" + +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "" @@ -5797,65 +5890,73 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "" + +#: kallithea/templates/summary/summary.html:72 +msgid "Clone URL" msgstr "" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 msgid "Latest Changes" msgstr "Posledné zmeny" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 msgid "Quick Start" msgstr "" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "" @@ -5868,3 +5969,419 @@ #: kallithea/templates/tags/tags.html:26 msgid "Compare Tags" msgstr "" + +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "Nie sú žiadne komentáre." + +#~ msgid "public journal" +#~ msgstr "" + +#~ msgid "journal" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Cannot delete %s it still contains attached forks" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "" + +#~ msgid "Locked" +#~ msgstr "" + +#~ msgid "Repository has been %s" +#~ msgstr "" + +#~ msgid "You can't edit this user" +#~ msgstr "" + +#~ msgid "compare view" +#~ msgstr "" + +#~ msgid "fork name %s" +#~ msgstr "" + +#~ msgid "Pull request #%s" +#~ msgstr "" + +#~ msgid "No Files" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "You can't remove this user since it's crucial for entire application" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid password" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "" + +#~ msgid "Your account is disabled" +#~ msgstr "" + +#~ msgid "Repository name %(repo)s is disallowed" +#~ msgstr "" + +#~ msgid "invalid clone URL" +#~ msgstr "" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" + +#~ msgid "This email address is already taken" +#~ msgstr "" + +#~ msgid "email \"%(email)s\" does not exist." +#~ msgstr "" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "" + +#~ msgid "My Permissions" +#~ msgstr "" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "Repository creation" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "" + +#~ msgid "none" +#~ msgstr "" + +#~ msgid "read" +#~ msgstr "" + +#~ msgid "write" +#~ msgstr "" + +#~ msgid "admin" +#~ msgstr "" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "default" +#~ msgstr "" + +#~ msgid "revoke" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "" + +#~ msgid "private repository" +#~ msgstr "" + +#~ msgid "Remote URL" +#~ msgstr "" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "merge" +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Comment from pull request" +#~ msgstr "" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "" + +#~ msgid "My Repos" +#~ msgstr "Moje repozitáre" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -7,9 +7,9 @@ # xpol , 2012 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" "PO-Revision-Date: 2014-12-12 14:19+0200\n" "Last-Translator: Michal Čihař \n" "Language-Team: Simplified Chinese " @@ -21,19 +21,23 @@ "Plural-Forms: nplurals=1; plural=0;\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "还没有修订集" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "无" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" msgstr "" @@ -48,51 +52,55 @@ #: kallithea/controllers/changeset.py:169 #, python-format -msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" msgstr "" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -#, fuzzy -msgid "No comments." -msgstr "%d条评论" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "修订" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "由于错误的语法,服务器无法对请求进行响应。" -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "未授权的资源访问" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "无权访问该页面" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "资源未找到" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -108,17 +116,17 @@ msgid "%s %s feed" msgstr "%s %s订阅" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "修订集太大已被截断......" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -196,45 +204,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "未知版本%s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "空版本库" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "未知包类型" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "修订集" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "分支" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "标签" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "在复刻版本库%s的时候发生错误" @@ -250,9 +256,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "版本库" @@ -272,149 +278,165 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" msgstr "公共日志" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" msgstr "日志" -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "密码重置链接已经发送" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "密码已经成功重置,新密码已经发送到你的邮箱" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "修订集" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "书签" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 #, fuzzy msgid "No description" msgstr "描述" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "成功提交拉取请求" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 #, fuzzy msgid "Error occurred while creating pull request" msgstr "提交拉取请求时发生错误" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 #, fuzzy msgid "Pull request update created" msgstr "拉取请求检视人员" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 #, fuzzy msgid "Pull request updated" msgstr "拉取请求" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "成功删除拉取请求" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 #, fuzzy msgid "Closing." msgstr "使用中" @@ -432,22 +454,22 @@ msgid "An error occurred during search operation." msgstr "在搜索操作中发生异常" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 #, fuzzy msgid "No data ready yet" msgstr "数据未加载" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "该版本库统计功能已经禁用" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -460,38 +482,40 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" -msgstr "" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +#, fuzzy +#| msgid "reviewer" +msgid "Forever" +msgstr "检视者" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -505,8 +529,10 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +#, fuzzy +#| msgid "Last Modified" +msgid "Unmodified" +msgstr "最后修改于" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -521,117 +547,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "由于是系统帐号,无法编辑该用户" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "你的帐号已经更新完成" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "已为用户添加电子邮件 %s" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "保存电子邮件时发生错误" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "成功删除用户电子邮件" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" -msgstr "" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "读" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "读" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "写" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "写" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "管理" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "停用" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -639,11 +681,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -651,221 +693,212 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "启用" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "这个组内有%s个版本库因而无法删除" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "版本库%s成功更新" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" +#: kallithea/controllers/admin/repos.py:321 +#, fuzzy, python-format +#| msgid "Cannot delete %s it still contains attached forks" +msgid "Cannot delete repository %s which still has forks" msgstr "无法删除%s因为它还有其他分复刻本库" -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "在删除%s的时候发生错误" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "成功更新在公共日志中的可见性" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "设置版本库到公共日志时发生错误" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "令牌不匹配" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "无" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" msgstr "成功将版本库%s标记为复刻自%s" -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "在搜索操作中发生错误" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been locked" +msgstr "版本库未锁定" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy +#| msgid "Repository is not locked" +msgid "Repository has been unlocked" +msgstr "版本库未锁定" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "解锁时发生错误" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" -msgstr "" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "清除缓存时发生错误" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" +msgstr "成功拉取自远程路径" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "版本库已被%s" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "清除缓存时发生错误" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "成功拉取自远程路径" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "从远程路径拉取时发生错误" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "删除版本库统计时发生错误" @@ -881,7 +914,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -958,83 +991,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "保存权限时发生错误" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "用户更新成功" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "删除用户时发生错误" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "无法编辑该用户" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "必须是注册用户才能进行此操作" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "必须登录才能访问该页面" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "未找到修订集" @@ -1050,158 +1080,164 @@ msgid "No changes detected" msgstr "未发现差异" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "已经删除分支%s" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "创建标签%s" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "显示合并的修订集%s->%s" -#: kallithea/lib/helpers.py:699 -msgid "compare view" +#: kallithea/lib/helpers.py:677 +#, fuzzy +#| msgid "compare view" +msgid "Compare view" msgstr "比较显示" -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "还有" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "%s个" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "修订" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "fork name %s" +msgid "Fork name %s" msgstr "复刻名称%s" -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "Pull request %s" msgstr "拉取请求#%s" -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "[删除]版本库" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "[创建]版本库" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "[创建]复刻版本库" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "[复刻]版本库" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "[更新]版本库" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "[删除]版本库" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "[创建]用户" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "[更新]用户" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "[评论]了版本库中的修订" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "[评论]拉取请求" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "[关闭] 拉取请求" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "[推送]到" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "[通过Kallithea提交]到版本库" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "[远程拉取]到版本库" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "[拉取]自" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "[开始关注]版本库" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "[停止关注]版本库" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr " 还有%s个" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "没有文件" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "无文件" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1209,63 +1245,63 @@ "repositories" msgstr "版本库%s没有映射到数据库,可能是从文件系统创建或者重命名,请重启Kallithea以重新扫描版本库" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "%d年" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "%d月" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "%d天" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d时" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d分" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d秒" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "%s" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "%s前" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "%s零%s" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "%s零%s前" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "刚才" @@ -1280,7 +1316,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "无版本库访问权限" @@ -1295,7 +1331,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "版本库读取权限" @@ -1310,7 +1346,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "版本库写入权限" @@ -1325,7 +1361,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "版本库管理权限" @@ -1364,7 +1400,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "Kallithea 管理员" @@ -1379,7 +1415,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "禁用创建版本库" @@ -1394,7 +1430,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "允许创建版本库" @@ -1409,7 +1445,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "禁用复刻版本库" @@ -1424,7 +1460,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "允许复刻版本库" @@ -1460,7 +1496,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "未检视" @@ -1475,7 +1511,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "已批准" @@ -1490,7 +1526,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "驳回" @@ -1505,7 +1541,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "检视中" @@ -1517,7 +1553,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1529,7 +1565,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1541,7 +1577,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1553,7 +1589,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1565,7 +1601,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1576,7 +1612,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1587,7 +1623,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1598,7 +1634,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1609,7 +1645,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1620,7 +1656,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1631,7 +1667,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1642,7 +1678,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1653,7 +1689,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1664,7 +1700,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1675,7 +1711,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1686,29 +1722,141 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "在%s行" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "[提及]" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has read access to new repositories" +msgstr "未授权的资源访问" + +#: kallithea/model/db.py:1669 +#, fuzzy +#| msgid "Unauthorized access to resource" +msgid "Default user has write access to new repositories" +msgstr "未授权的资源访问" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +#, fuzzy +#| msgid "You don't have permissions to create repository in this group" +msgid "Only admins can create repository groups" +msgstr "没有在该版本库组中创建版本库的权限" + +#: kallithea/model/db.py:1683 +#, fuzzy +#| msgid "You don't have permissions to create repository in this group" +msgid "Non-admins can create repository groups" +msgstr "没有在该版本库组中创建版本库的权限" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "创建版本库" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Location of repositories" +msgid "Non-admins can can fork repositories" +msgstr "创建版本库" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy +#| msgid "Not Reviewed" +msgid "Not reviewed" +msgstr "未检视" + +#: kallithea/model/db.py:2231 +#, fuzzy +#| msgid "Under Review" +msgid "Under review" +msgstr "检视中" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "请登录" @@ -1727,300 +1875,330 @@ msgid "Enter %(min)i characters or more" msgstr "输入少于%(min)i个字符" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, fuzzy, python-format +#| msgid "Successfully opened new pull request" +msgid "%(user)s opened new pull request %(age)s" +msgstr "成功提交拉取请求" + +#: kallithea/model/notification.py:259 +#, fuzzy, python-format +#| msgid "[commented] on pull request for" +msgid "%(user)s commented on pull request %(age)s" +msgstr "[评论]拉取请求" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, fuzzy, python-format -msgid "New user %(new_username)s registered" -msgstr "用户名称 %(new_username)s 无效" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, fuzzy, python-format +msgid "New user %(new_username)s registered" +msgstr "用户名称 %(new_username)s 无效" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 #, fuzzy msgid "Closing" msgstr "使用中" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "最新tip版本" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "由于是系统帐号,无法编辑该用户" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "由于是系统帐号,无法删除该用户" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "由于用户 \"%s\" 拥有版本库%s因而无法删除,请修改版本库所有者或删除版本库。%s" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "由于用户 \"%s\" 拥有版本库%s因而无法删除,请修改版本库所有者或删除版本库。%s" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, fuzzy, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "由于用户 \"%s\" 拥有版本库%s因而无法删除,请修改版本库所有者或删除版本库。%s" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "值不能为空" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "用户名称%(username)s已经存在" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "不允许用户名 \"%(username)s\"" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, fuzzy, python-format +#| msgid "Username %(username)s is not valid" +msgid "Username \"%(username)s\" cannot be used" +msgstr "用户名称 %(username)s 无效" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "用户名称 %(username)s 无效" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "不能将这个组作为parent" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "组 \"%(group_name)s\" 已经存在" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "已经存在名为 \"%(group_name)s\" 的版本库" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "密码含有无效(非ASCII)字符" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "密码不符" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "无效密码" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "无效用户名" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "该帐号已被禁用" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "令牌不匹配" + +#: kallithea/model/validators.py:345 +#, fuzzy, python-format +#| msgid "Repository name %(repo)s is disallowed" +msgid "Repository name %(repo)s is not allowed" msgstr "版本库名称不能为%(repo)s" -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "已经存在版本库%(repo)s" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "版本库组 \"%(group)s\" 中已经存在版本库 \"%(repo)s\"" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 +#: kallithea/model/validators.py:465 #, fuzzy -msgid "invalid clone URL" -msgstr "无效的克隆地址" - -#: kallithea/model/validators.py:475 -#, fuzzy -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "无效的克隆地址,提供一个有效的克隆 http(s)或svn+http(s)地址" - -#: kallithea/model/validators.py:500 +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "私有版本库" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "复刻版本库必须和父版本库类型相同" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "没有在该版本库组中创建版本库的权限" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "不是一个合法的路径" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "该邮件地址已被使用" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." +#: kallithea/model/validators.py:725 +#, fuzzy, python-format +#| msgid "email \"%(email)s\" does not exist." +msgid "Email address \"%(email)s\" not found" msgstr "邮件地址\"%(email)s\"不存在" -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "LDAP 登陆属性的 CN 必须指定 - 这个名字作为用户名" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "修订%(revs)s已经包含在拉取请求中或者或者已经设置状态" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2082,13 +2260,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2100,11 +2278,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "描述" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2125,11 +2303,11 @@ msgid "Name" msgstr "名称" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "最后修改" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2138,18 +2316,19 @@ msgid "Tip" msgstr "Tip" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "所有者" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2161,7 +2340,7 @@ msgid "Click to sort ascending" msgstr "点击以升序排列" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2173,11 +2352,11 @@ msgid "Click to sort descending" msgstr "点击以降序排列" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2189,10 +2368,10 @@ msgid "Data error." msgstr "数据错误" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2202,7 +2381,7 @@ msgstr "载入中..." #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "登录" @@ -2211,39 +2390,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "帐号" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "密码" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "记住密码" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "忘记了密码?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "还没有帐号?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "登录" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "忘记了密码?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "还没有帐号?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2294,26 +2473,26 @@ msgstr "确认密码" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "名" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "姓" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "电子邮件" @@ -2423,109 +2602,95 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "保存" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "版本库默认设置" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "默认设置" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "类型" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "私有版本库" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "私有版本库只对成员可见。" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "启用统计" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "启用概况页的统计窗口" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "启用下载" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "启用概况页的下载菜单" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "启用锁定" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "启用版本库的拉取锁定" @@ -2557,6 +2722,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2567,15 +2738,17 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" -msgstr "" +#, fuzzy +#| msgid "reviewer" +msgid "Never" +msgstr "检视者" #: kallithea/templates/admin/gists/edit.html:145 msgid "Update Gist" msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2598,12 +2771,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2629,25 +2802,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2677,11 +2852,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "删除" @@ -2690,9 +2876,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2718,7 +2913,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "我的账户" @@ -2727,84 +2922,84 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" -msgstr "" +#: kallithea/templates/admin/my_account/my_account.html:36 +#, fuzzy +#| msgid "New email address" +msgid "Email Addresses" +msgstr "增加邮箱" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "版本库" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "关注的" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "创建版本库" #: kallithea/templates/admin/my_account/my_account.html:41 +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 #, fuzzy -msgid "My Permissions" -msgstr "我的权限" +#| msgid "Copy permissions" +msgid "Show Permissions" +msgstr "拷贝权限" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 #: kallithea/templates/admin/users/user_edit_api_keys.html:6 msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 -#, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this user: %s" +msgid "Confirm to reset this API key: %s" +msgstr "确认删除用户:%s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to delete this user: %s" +msgid "Confirm to remove this API key: %s" +msgstr "确认删除用户:%s" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" -msgstr "" +#, fuzzy +#| msgid "revoke" +msgid "Remove" +msgstr "移除" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2817,19 +3012,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "删除" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2851,19 +3033,24 @@ msgid "Change Your Account Password" msgstr "忘记了密码?" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "新密码" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "修改你的头像" @@ -2884,13 +3071,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2928,7 +3109,7 @@ msgstr "评论" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2948,22 +3129,16 @@ msgstr "显示通知" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "通知" #: kallithea/templates/admin/permissions/permissions.html:5 +#: kallithea/templates/admin/permissions/permissions.html:11 +#: kallithea/templates/base/base.html:64 #, fuzzy -msgid "Permissions Administration" -msgstr "权限管理" - -#: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 -#: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "权限" +msgid "Default Permissions" +msgstr "默认权限" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -2971,14 +3146,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "匿名访问" @@ -2990,23 +3161,27 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Existing repository?" +msgid "Apply to all existing repositories" +msgstr "已有版本库?" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "版本库组" @@ -3018,72 +3193,103 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +#, fuzzy +#| msgid "Existing repository?" +msgid "Apply to all existing repository groups" +msgstr "已有版本库?" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "建立版本库" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 -msgid "Repository creation with group write access" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 +msgid "Repository creation with group write access" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:74 +msgid "" +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "版本库复刻" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "注册" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this user: %s" +msgid "Confirm to delete this IP address: %s" +msgstr "确认删除用户:%s" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "默认权限" +msgid "New IP address" +msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 @@ -3106,12 +3312,12 @@ msgstr "上级组" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3129,19 +3335,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "设置" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "权限" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3162,12 +3374,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "创建于" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3177,38 +3389,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "无" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "读" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "写" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "管理" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3217,7 +3401,9 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" +#, fuzzy +#| msgid "default" +msgid "Default" msgstr "默认" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 @@ -3226,14 +3412,11 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" +#, fuzzy +#| msgid "revoke" +msgid "Revoke" msgstr "移除" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" -msgstr "" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 #: kallithea/templates/admin/repos/repo_edit_permissions.html:94 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:97 @@ -3241,7 +3424,9 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +#, fuzzy +#| msgid "apply to children" +msgid "Apply to children" msgstr "应用到成员" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3292,43 +3477,41 @@ msgid "Number of Top-level Repositories" msgstr "顶层版本库数量" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "克隆自" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 +#: kallithea/templates/admin/repos/repo_add_base.html:17 #, fuzzy -msgid "Optional URL from which repository should be cloned." -msgstr "可选的,指定版本库应该从哪个http[s]地址克隆。" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#| msgid "[created] repository" +msgid "Clone remote repository" +msgstr "[创建]版本库" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "保持简短。用README文件来写更长的描述。" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "可选的,选择一个组将版本库放到其中" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "要创建的版本库类型" -#: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 #: kallithea/templates/forks/fork.html:58 msgid "Landing revision" msgstr "默认修订" -#: kallithea/templates/admin/repos/repo_add_base.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:68 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3375,8 +3558,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "统计" @@ -3401,52 +3584,52 @@ msgid "Public Journal Visibility" msgstr "公共日志" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "从公共日志删除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "公共日志" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 #, fuzzy msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "任何人都可以在公共日志上看到这个版本库上的所有动作" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "启用锁定" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "确认解锁版本库" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "公共版本库" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "确认锁定版本库" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "公共版本库" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "版本库未锁定" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3454,32 +3637,32 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "确认删除版本库:%s" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "[删除]版本库" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3521,8 +3704,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "启用" @@ -3562,31 +3745,38 @@ msgstr "禁用注册" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "私有版本库" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 #, fuzzy -msgid "Remote URL" -msgstr "克隆地址" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 +#| msgid "[created] repository" +msgid "Remote repository URL" +msgstr "[创建]版本库" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 #, fuzzy -msgid "Pull Changes from Remote Location" -msgstr "从远程路径拉取修订集" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 +#| msgid "[pulled from remote] into repository" +msgid "Pull Changes from Remote Repository" +msgstr "[远程拉取]到版本库" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 #, fuzzy -msgid "Confirm to pull changes from remote side." +#| msgid "Confirm to pull changes from remote side." +msgid "Confirm to pull changes from remote repository." msgstr "确认从远程拉取修订集" -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "私有版本库" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3600,44 +3790,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 +#, fuzzy +#| msgid "[created] repository" +msgid "Remote repository" +msgstr "[创建]版本库" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 #, fuzzy -msgid "Clone URL" -msgstr "克隆地址" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "编辑" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#| msgid "Repository" +msgid "Repository URL" +msgstr "版本库" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "文件浏览、下载、whoosh和README的默认修订版本" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "修改这个版本库的所有者" @@ -3698,55 +3879,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "发送" @@ -3821,13 +3958,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3848,7 +3985,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3875,39 +4012,43 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 +msgid "Platform" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:8 #, fuzzy msgid "Git version" msgstr "编辑权限" -#: kallithea/templates/admin/settings/settings_system.html:8 +#: kallithea/templates/admin/settings/settings_system.html:9 msgid "Git path" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Upgrade info endpoint" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:9 +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4061,11 +4202,11 @@ msgstr "图标" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "显示公共版本库图标" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "显示私有版本库图标" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4074,7 +4215,9 @@ msgstr "显示公共版本库图标" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" +#, fuzzy +#| msgid "Meta-Tagging" +msgid "Meta Tagging" msgstr "元标记" #: kallithea/templates/admin/settings/settings_visual.html:97 @@ -4093,6 +4236,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4112,24 +4256,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "默认权限" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "成员" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "成员" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4155,10 +4300,6 @@ msgid "User Groups Administration" msgstr "用户管理员" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "添加用户" @@ -4184,12 +4325,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "默认权限" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4199,7 +4335,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4209,11 +4345,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "确认删除用户:%s" @@ -4235,18 +4371,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "确认新密码" @@ -4268,49 +4397,57 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Mercurial版本库" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Git版本库" + +#: kallithea/templates/base/base.html:126 #, fuzzy msgid "Create Fork" msgstr "创建于" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "概况" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "修订记录" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "浏览" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "选项" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 #, fuzzy msgid "Compare Fork" msgstr "比较复刻" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4320,131 +4457,127 @@ msgid "Compare" msgstr "比较显示" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "搜索" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +msgid "Follow" +msgstr "" + +#: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "复刻" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "日志" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "公共日志" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 #, fuzzy msgid "My Pull Requests" msgstr "拉取请求" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 #, fuzzy msgid "Login to Your Account" msgstr "登录" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "忘记密码?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "退出" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "版本库默认设置" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4472,8 +4605,9 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "显示" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4499,7 +4633,7 @@ msgstr "%d条评论" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "停止关注该版本库" @@ -4575,6 +4709,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 #, fuzzy msgid "Specify changeset" @@ -4605,6 +4747,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4632,10 +4775,6 @@ msgid_plural "showing %d out of %d revisions" msgstr[0] "显示%d/%d个版本" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "显示" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "清除选择" @@ -4653,7 +4792,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4667,7 +4806,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4677,7 +4816,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4710,7 +4849,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "没有任何变更" @@ -4726,7 +4865,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4756,21 +4895,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "通过Kallithea直接添加或者上传文件" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "Push new repo" +msgid "Push new repository" msgstr "推送新版本库" -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "已有版本库?" @@ -4780,15 +4921,15 @@ msgstr "%s修订集" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "修订集状态" @@ -4811,7 +4952,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "合并" #: kallithea/templates/changeset/changeset.html:123 @@ -4823,148 +4966,162 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +#, fuzzy +#| msgid "Created by" +msgid "Replaced by:" +msgstr "创建于" + +#: kallithea/templates/changeset/changeset.html:149 +#, fuzzy +#| msgid "Created by" +msgid "Preceded by:" +msgstr "创建于" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "修改%s个文件" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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行删除" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "修订" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +#, fuzzy +#| msgid "Comment from pull request" +msgid "on pull request" +msgstr "[评论]拉取请求" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 +#, fuzzy +msgid "No title" +msgstr "无文件" #: kallithea/templates/changeset/changeset_file_comment.html:24 #, fuzzy -msgid "Status change from pull request" -msgstr "状态修改为%s" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 -#, fuzzy -msgid "No title" -msgstr "无文件" - -#: kallithea/templates/changeset/changeset_file_comment.html:27 -#, fuzzy -msgid "Comment from pull request" -msgstr "[评论]拉取请求" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#| msgid "No changesets" +msgid "on this changeset" +msgstr "无修订" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "%d条评论" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "文件已更改" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "在{1}行上评论" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "评论使用%s语法并支持%s" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 #, fuzzy msgid "Use @username inside this text to notify another user" msgstr "在文本中使用 @用户名 以发送通知到该Kallithea用户" -#: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 msgid "Comment preview" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:85 +#: kallithea/templates/changeset/changeset_file_comment.html:77 #, fuzzy msgid "Submitting ..." msgstr "提交中……" -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:80 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "评论" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "必须登录才能评论" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "现在登陆" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "隐藏" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d条评论" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "(%d内嵌)" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, fuzzy, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 +#: kallithea/templates/changeset/changeset_file_comment.html:150 #, fuzzy -msgid "Use @username inside this text to send notification to another local user." +#| msgid "Use @username inside this text to notify another user" +msgid "Use @username inside this text to notify another user." msgstr "在文本中使用 @用户名 以发送通知到该Kallithea用户" -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "修订集状态" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "无变更" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 #, fuzzy msgid "Close" msgstr "已关闭" @@ -4984,7 +5141,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4993,12 +5150,12 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "删除" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "读" @@ -5011,29 +5168,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "%s修订集" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "重新索引" @@ -5058,55 +5227,42 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "显示%s个提交" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "无文件" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Mercurial版本库" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Git版本库" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "公共版本库" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "无修订" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "订阅%s的RSS" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "订阅%s的Atom" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5233,10 +5389,6 @@ msgid "Commit Changes" msgstr "提交修改" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5262,19 +5414,15 @@ msgstr "大小" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" -msgstr "MIME类型" +msgid "Last Revision" +msgstr "最后修订号" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "最后修订号" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "最后修改于" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "最后提交者" @@ -5386,8 +5534,8 @@ msgstr "%s个关注者" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "关注者" @@ -5439,8 +5587,8 @@ msgstr "%s个复刻" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "复刻" @@ -5448,7 +5596,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "无复刻" @@ -5461,19 +5609,13 @@ msgstr "订阅日志RSS" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" -msgstr "我的版本库" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "没有条目" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "公共日志" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "订阅公共日志ATOM" @@ -5516,22 +5658,17 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -#, fuzzy -msgid "Pull Request Reviewers" -msgstr "拉取请求检视人员" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 #, fuzzy msgid "No entries" msgstr "没有条目" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "revoke" +msgid "Vote" +msgstr "移除" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5540,52 +5677,51 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, fuzzy, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -#, fuzzy -msgid "Delete Pull Request" -msgstr "新建拉取请求" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "确认删除拉取请求" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "已关闭" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +#, fuzzy +msgid "Delete Pull Request" +msgstr "新建拉取请求" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "确认删除拉取请求" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this pull request" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "确认删除拉取请求" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 -#, python-format -msgid "%s Pull Request #%s" -msgstr "" +#, fuzzy, python-format +#| msgid "Pull request #%s" +msgid "%s Pull Request %s" +msgstr "拉取请求#%s" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, fuzzy, python-format -msgid "Pull request #%s from %s#%s" -msgstr "" +#| msgid "Pull Requests from %s'" +msgid "Pull request %s from %s#%s" +msgstr "拉取请求#%s" #: kallithea/templates/pullrequests/pullrequest_show.html:57 #, fuzzy @@ -5601,93 +5737,94 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "还未检视的检视人员" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "%d个检视者" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "没有任何分支" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "无" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 #, fuzzy msgid "Created by" msgstr "创建于" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "[更新]用户" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "所有者" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "检视者" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +#, fuzzy +msgid "Pull Request Reviewers" +msgstr "拉取请求检视人员" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "检视者" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "%d个检视者" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 #, fuzzy msgid "Save as New Pull Request" msgstr "新建拉取请求" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "无变更" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "拉取请求" @@ -5792,8 +5929,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5801,45 +5938,45 @@ msgid "Stats gathered: " msgstr "已收集的统计:" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "文件" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "提交" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "文件已添加" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "文件已更改" +msgid "files added" +msgstr "文件已添加" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "文件已更改" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "文件已删除" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "提交" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "文件已添加" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "文件已更改" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "文件已删除" @@ -5861,67 +5998,78 @@ msgid "Fork of" msgstr "复刻自" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "以名字显示" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "克隆自" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "克隆地址" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "以名字显示" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "按ID显示" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "文件趋势图" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "下载" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "无下载" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "这个版本库的下载已经禁用" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "zip打包下载" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "勾选以下载包含子版本库的压缩包" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" +#: kallithea/templates/summary/summary.html:125 +#, fuzzy +#| msgid "with subrepos" +msgid "With subrepos" msgstr "包括子版本库" -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "文件已更改" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "快速入门" -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "下载%s为%s包" @@ -5936,3 +6084,361 @@ msgid "Compare Tags" msgstr "比较标签" +#~ msgid "increase diff context to %(num)s lines" +#~ msgstr "" + +#~ msgid "No comments." +#~ msgstr "%d条评论" + +#~ msgid "public journal" +#~ msgstr "公共日志" + +#~ msgid "journal" +#~ msgstr "日志" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "" + +#~ msgid "Locked" +#~ msgstr "" + +#~ msgid "Repository has been %s" +#~ msgstr "版本库已被%s" + +#~ msgid "You can't edit this user" +#~ msgstr "无法编辑该用户" + +#~ msgid "No Files" +#~ msgstr "没有文件" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "不允许用户名 \"%(username)s\"" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "无效用户名" + +#~ msgid "Your account is disabled" +#~ msgstr "该帐号已被禁用" + +#~ msgid "invalid clone URL" +#~ msgstr "无效的克隆地址" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "无效的克隆地址,提供一个有效的克隆 http(s)或svn+http(s)地址" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "修订%(revs)s已经包含在拉取请求中或者或者已经设置状态" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "默认设置" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "关注的" + +#~ msgid "My Permissions" +#~ msgstr "我的权限" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "delete" +#~ msgstr "删除" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "权限管理" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "默认权限" + +#~ msgid "none" +#~ msgstr "无" + +#~ msgid "read" +#~ msgstr "读" + +#~ msgid "write" +#~ msgstr "写" + +#~ msgid "admin" +#~ msgstr "管理" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "可选的,指定版本库应该从哪个http[s]地址克隆。" + +#~ msgid "Remote URL" +#~ msgstr "克隆地址" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "从远程路径拉取修订集" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "编辑" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "默认权限" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "状态修改为%s" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "在文本中使用 @用户名 以发送通知到该Kallithea用户" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "MIME类型" + +#~ msgid "My Repos" +#~ msgstr "我的版本库" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "所有者" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po Sun Sep 06 23:36:05 2015 +0200 @@ -5,91 +5,102 @@ # FIRST AUTHOR , 2011 msgid "" msgstr "" -"Project-Id-Version: Kallithea\n" +"Project-Id-Version: Kallithea 0.3\n" "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n" -"POT-Creation-Date: 2015-04-01 03:17+0200\n" -"PO-Revision-Date: 2014-02-13 14:34+0000\n" -"Last-Translator: marcinkuzminski \n" +"POT-Creation-Date: 2015-08-25 11:37+0200\n" +"PO-Revision-Date: 2015-08-21 15:52+0200\n" +"Last-Translator: EriCSN Chang \n" "Language-Team: Chinese (Taiwan) " "\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 2.4-dev\n" #: kallithea/controllers/changelog.py:86 -#: kallithea/controllers/pullrequests.py:247 kallithea/lib/base.py:449 +#: kallithea/controllers/pullrequests.py:241 kallithea/lib/base.py:512 msgid "There are no changesets yet" msgstr "" -#: kallithea/controllers/changelog.py:157 -#: kallithea/controllers/admin/permissions.py:62 -#: kallithea/controllers/admin/permissions.py:66 -#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/controllers/changelog.py:166 +#: kallithea/controllers/admin/permissions.py:61 +#: kallithea/controllers/admin/permissions.py:65 +#: kallithea/controllers/admin/permissions.py:69 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:104 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 +#: kallithea/templates/base/perms_summary.html:14 msgid "None" msgstr "無" -#: kallithea/controllers/changelog.py:160 kallithea/controllers/files.py:197 +#: kallithea/controllers/changelog.py:169 kallithea/controllers/files.py:197 msgid "(closed)" -msgstr "" +msgstr "(已關閉)" #: kallithea/controllers/changeset.py:89 msgid "Show whitespace" -msgstr "" +msgstr "顯示空格" #: kallithea/controllers/changeset.py:96 kallithea/controllers/changeset.py:103 #: kallithea/templates/files/diff_2way.html:55 msgid "Ignore whitespace" -msgstr "" +msgstr "忽略空格" #: kallithea/controllers/changeset.py:169 -#, python-format -msgid "increase diff context to %(num)s lines" -msgstr "" +#, fuzzy, python-format +#| msgid "increase diff context to %(num)s lines" +msgid "Increase diff context to %(num)s lines" +msgstr "增加 diff 上下文至 %(num) 行" #: kallithea/controllers/changeset.py:212 kallithea/controllers/files.py:97 -#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:746 +#: kallithea/controllers/files.py:117 kallithea/controllers/files.py:743 msgid "Such revision does not exist for this repository" msgstr "" -#: kallithea/controllers/changeset.py:352 -#: kallithea/controllers/pullrequests.py:699 -#, fuzzy -msgid "No comments." -msgstr "" - -#: kallithea/controllers/changeset.py:382 +#: kallithea/controllers/changeset.py:383 msgid "" "Changing status on a changeset associated with a closed pull request is " "not allowed" msgstr "" -#: kallithea/controllers/compare.py:158 kallithea/templates/base/root.html:42 +#: kallithea/controllers/compare.py:161 kallithea/templates/base/root.html:42 msgid "Select changeset" msgstr "" -#: kallithea/controllers/compare.py:255 +#: kallithea/controllers/compare.py:258 msgid "Cannot compare repositories without using common ancestor" msgstr "" -#: kallithea/controllers/error.py:96 +#: kallithea/controllers/error.py:71 +#, fuzzy +#| msgid "revisions" +msgid "No response" +msgstr "修訂" + +#: kallithea/controllers/error.py:72 +msgid "Unknown error" +msgstr "" + +#: kallithea/controllers/error.py:100 msgid "The request could not be understood by the server due to malformed syntax." msgstr "" -#: kallithea/controllers/error.py:99 +#: kallithea/controllers/error.py:103 msgid "Unauthorized access to resource" msgstr "" -#: kallithea/controllers/error.py:101 +#: kallithea/controllers/error.py:105 msgid "You don't have permission to view this page" msgstr "您沒有權限瀏覽這個頁面" -#: kallithea/controllers/error.py:103 +#: kallithea/controllers/error.py:107 msgid "The resource could not be found" msgstr "找不到這個資源" -#: kallithea/controllers/error.py:105 +#: kallithea/controllers/error.py:109 msgid "" "The server encountered an unexpected condition which prevented it from " "fulfilling the request." @@ -105,17 +116,17 @@ msgid "%s %s feed" msgstr "" -#: kallithea/controllers/feed.py:89 -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 +#: kallithea/controllers/feed.py:87 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Changeset was too big and was cut off..." msgstr "" -#: kallithea/controllers/feed.py:93 +#: kallithea/controllers/feed.py:91 #, python-format msgid "%s committed on %s" msgstr "" @@ -193,45 +204,43 @@ msgid "Location must be relative path and must not contain .. in path" msgstr "" -#: kallithea/controllers/files.py:528 +#: kallithea/controllers/files.py:527 msgid "Downloads disabled" msgstr "" -#: kallithea/controllers/files.py:539 +#: kallithea/controllers/files.py:538 #, python-format msgid "Unknown revision %s" msgstr "未知修訂 %s" -#: kallithea/controllers/files.py:541 +#: kallithea/controllers/files.py:540 msgid "Empty repository" msgstr "空的版本庫" -#: kallithea/controllers/files.py:543 +#: kallithea/controllers/files.py:542 msgid "Unknown archive type" msgstr "未知的存檔類型" -#: kallithea/controllers/files.py:775 +#: kallithea/controllers/files.py:772 #: kallithea/templates/changeset/changeset_range.html:9 #: kallithea/templates/email_templates/pull_request.html:15 -#: kallithea/templates/pullrequests/pullrequest.html:116 +#: kallithea/templates/pullrequests/pullrequest.html:97 msgid "Changesets" msgstr "變更" -#: kallithea/controllers/files.py:776 kallithea/controllers/pullrequests.py:182 -#: kallithea/controllers/summary.py:74 kallithea/model/scm.py:816 -#: kallithea/templates/switch_to_list.html:3 +#: kallithea/controllers/files.py:773 kallithea/controllers/pullrequests.py:176 +#: kallithea/model/scm.py:821 kallithea/templates/switch_to_list.html:3 #: kallithea/templates/branches/branches.html:10 msgid "Branches" msgstr "分支" -#: kallithea/controllers/files.py:777 kallithea/controllers/pullrequests.py:183 -#: kallithea/controllers/summary.py:75 kallithea/model/scm.py:827 -#: kallithea/templates/switch_to_list.html:25 +#: kallithea/controllers/files.py:774 kallithea/controllers/pullrequests.py:177 +#: kallithea/model/scm.py:832 kallithea/templates/switch_to_list.html:25 #: kallithea/templates/tags/tags.html:10 msgid "Tags" msgstr "標籤" -#: kallithea/controllers/forks.py:187 +#: kallithea/controllers/forks.py:186 #, python-format msgid "An error occurred during repository forking %s" msgstr "" @@ -247,9 +256,9 @@ #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/users/user_edit_advanced.html:6 #: kallithea/templates/base/base.html:60 kallithea/templates/base/base.html:77 -#: kallithea/templates/base/base.html:127 -#: kallithea/templates/base/base.html:390 -#: kallithea/templates/base/base.html:562 +#: kallithea/templates/base/base.html:131 +#: kallithea/templates/base/base.html:397 +#: kallithea/templates/base/base.html:569 msgid "Repositories" msgstr "版本庫" @@ -269,146 +278,162 @@ msgstr "" #: kallithea/controllers/journal.py:111 kallithea/controllers/journal.py:153 -msgid "public journal" -msgstr "" +#: kallithea/templates/journal/public_journal.html:4 +#: kallithea/templates/journal/public_journal.html:21 +msgid "Public Journal" +msgstr "開放日誌" #: kallithea/controllers/journal.py:115 kallithea/controllers/journal.py:157 -msgid "journal" +#: kallithea/templates/base/base.html:229 +#: kallithea/templates/journal/journal.html:4 +#: kallithea/templates/journal/journal.html:12 +msgid "Journal" msgstr "日誌" -#: kallithea/controllers/login.py:188 kallithea/controllers/login.py:234 -msgid "bad captcha" -msgstr "" - -#: kallithea/controllers/login.py:194 +#: kallithea/controllers/login.py:150 kallithea/controllers/login.py:196 +msgid "Bad captcha" +msgstr "" + +#: kallithea/controllers/login.py:156 msgid "You have successfully registered into Kallithea" msgstr "" -#: kallithea/controllers/login.py:239 +#: kallithea/controllers/login.py:201 msgid "Your password reset link was sent" msgstr "您的密碼重設連結已寄出" -#: kallithea/controllers/login.py:260 +#: kallithea/controllers/login.py:222 msgid "" "Your password reset was successful, new password has been sent to your " "email" msgstr "您的密碼重設動作已完成,新的密碼已寄至您的信箱" -#: kallithea/controllers/pullrequests.py:130 +#: kallithea/controllers/pullrequests.py:124 #, python-format msgid "%s (closed)" msgstr "" -#: kallithea/controllers/pullrequests.py:158 +#: kallithea/controllers/pullrequests.py:152 #: kallithea/templates/changeset/changeset.html:12 #: kallithea/templates/email_templates/changeset_comment.html:17 msgid "Changeset" msgstr "" -#: kallithea/controllers/pullrequests.py:179 +#: kallithea/controllers/pullrequests.py:173 msgid "Special" msgstr "" -#: kallithea/controllers/pullrequests.py:180 +#: kallithea/controllers/pullrequests.py:174 msgid "Peer branches" msgstr "" -#: kallithea/controllers/pullrequests.py:181 kallithea/model/scm.py:822 +#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:827 #: kallithea/templates/switch_to_list.html:38 #: kallithea/templates/bookmarks/bookmarks.html:10 msgid "Bookmarks" msgstr "" -#: kallithea/controllers/pullrequests.py:312 +#: kallithea/controllers/pullrequests.py:306 #, python-format msgid "Error creating pull request: %s" msgstr "" -#: kallithea/controllers/pullrequests.py:356 -#: kallithea/controllers/pullrequests.py:497 +#: kallithea/controllers/pullrequests.py:352 +#: kallithea/controllers/pullrequests.py:499 #, fuzzy msgid "No description" msgstr "描述" -#: kallithea/controllers/pullrequests.py:363 +#: kallithea/controllers/pullrequests.py:359 msgid "Successfully opened new pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:366 -#: kallithea/controllers/pullrequests.py:450 +#: kallithea/controllers/pullrequests.py:362 +#: kallithea/controllers/pullrequests.py:449 +#: kallithea/controllers/pullrequests.py:504 +#, python-format +msgid "Invalid reviewer \"%s\" specified" +msgstr "" + +#: kallithea/controllers/pullrequests.py:365 +#: kallithea/controllers/pullrequests.py:452 msgid "Error occurred while creating pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:398 +#: kallithea/controllers/pullrequests.py:397 msgid "Missing changesets since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:405 +#: kallithea/controllers/pullrequests.py:404 #, python-format msgid "New changesets on %s %s since the previous pull request:" msgstr "" -#: kallithea/controllers/pullrequests.py:412 +#: kallithea/controllers/pullrequests.py:411 msgid "Ancestor didn't change - show diff since previous version:" msgstr "" -#: kallithea/controllers/pullrequests.py:419 +#: kallithea/controllers/pullrequests.py:418 #, python-format msgid "" "This pull request is based on another %s revision and there is no simple " "diff." msgstr "" -#: kallithea/controllers/pullrequests.py:421 +#: kallithea/controllers/pullrequests.py:420 #, python-format msgid "No changes found on %s %s since previous version." msgstr "" -#: kallithea/controllers/pullrequests.py:456 +#: kallithea/controllers/pullrequests.py:458 #, python-format msgid "Closed, replaced by %s ." msgstr "" -#: kallithea/controllers/pullrequests.py:464 +#: kallithea/controllers/pullrequests.py:466 msgid "Pull request update created" msgstr "" -#: kallithea/controllers/pullrequests.py:503 +#: kallithea/controllers/pullrequests.py:508 msgid "Pull request updated" msgstr "" -#: kallithea/controllers/pullrequests.py:518 +#: kallithea/controllers/pullrequests.py:523 msgid "Successfully deleted pull request" msgstr "" -#: kallithea/controllers/pullrequests.py:577 +#: kallithea/controllers/pullrequests.py:582 #, python-format msgid "This pull request has already been merged to %s." msgstr "" -#: kallithea/controllers/pullrequests.py:579 +#: kallithea/controllers/pullrequests.py:584 msgid "This pull request has been closed and can not be updated." msgstr "" -#: kallithea/controllers/pullrequests.py:597 +#: kallithea/controllers/pullrequests.py:602 #, python-format msgid "This pull request can be updated with changes on %s:" msgstr "" -#: kallithea/controllers/pullrequests.py:600 +#: kallithea/controllers/pullrequests.py:605 msgid "No changesets found for updating this pull request." msgstr "" -#: kallithea/controllers/pullrequests.py:608 +#: kallithea/controllers/pullrequests.py:613 #, python-format msgid "Note: Branch %s has another head: %s." msgstr "" -#: kallithea/controllers/pullrequests.py:614 +#: kallithea/controllers/pullrequests.py:619 msgid "Git pull requests don't support updates yet." msgstr "" -#: kallithea/controllers/pullrequests.py:701 +#: kallithea/controllers/pullrequests.py:710 +msgid "No permission to change pull request status" +msgstr "" + +#: kallithea/controllers/pullrequests.py:715 #, fuzzy msgid "Closing." msgstr "使用中" @@ -425,21 +450,21 @@ msgid "An error occurred during search operation." msgstr "" -#: kallithea/controllers/summary.py:199 -#: kallithea/templates/summary/summary.html:387 +#: kallithea/controllers/summary.py:180 +#: kallithea/templates/summary/summary.html:384 msgid "No data ready yet" msgstr "" -#: kallithea/controllers/summary.py:202 -#: kallithea/templates/summary/summary.html:101 +#: kallithea/controllers/summary.py:183 +#: kallithea/templates/summary/summary.html:98 msgid "Statistics are disabled for this repository" msgstr "這個版本庫的統計功能已停用" -#: kallithea/controllers/admin/auth_settings.py:125 +#: kallithea/controllers/admin/auth_settings.py:135 msgid "Auth settings updated successfully" msgstr "" -#: kallithea/controllers/admin/auth_settings.py:136 +#: kallithea/controllers/admin/auth_settings.py:146 msgid "error occurred during update of auth settings" msgstr "" @@ -452,38 +477,38 @@ msgstr "" #: kallithea/controllers/admin/gists.py:59 -#: kallithea/controllers/admin/my_account.py:238 -#: kallithea/controllers/admin/users.py:288 -msgid "forever" +#: kallithea/controllers/admin/my_account.py:243 +#: kallithea/controllers/admin/users.py:283 +msgid "Forever" msgstr "" #: kallithea/controllers/admin/gists.py:60 -#: kallithea/controllers/admin/my_account.py:239 -#: kallithea/controllers/admin/users.py:289 +#: kallithea/controllers/admin/my_account.py:244 +#: kallithea/controllers/admin/users.py:284 msgid "5 minutes" msgstr "" #: kallithea/controllers/admin/gists.py:61 -#: kallithea/controllers/admin/my_account.py:240 -#: kallithea/controllers/admin/users.py:290 +#: kallithea/controllers/admin/my_account.py:245 +#: kallithea/controllers/admin/users.py:285 msgid "1 hour" msgstr "" #: kallithea/controllers/admin/gists.py:62 -#: kallithea/controllers/admin/my_account.py:241 -#: kallithea/controllers/admin/users.py:291 +#: kallithea/controllers/admin/my_account.py:246 +#: kallithea/controllers/admin/users.py:286 msgid "1 day" msgstr "" #: kallithea/controllers/admin/gists.py:63 -#: kallithea/controllers/admin/my_account.py:242 -#: kallithea/controllers/admin/users.py:292 +#: kallithea/controllers/admin/my_account.py:247 +#: kallithea/controllers/admin/users.py:287 msgid "1 month" msgstr "" #: kallithea/controllers/admin/gists.py:67 -#: kallithea/controllers/admin/my_account.py:244 -#: kallithea/controllers/admin/users.py:294 +#: kallithea/controllers/admin/my_account.py:249 +#: kallithea/controllers/admin/users.py:289 msgid "Lifetime" msgstr "" @@ -497,8 +522,10 @@ msgstr "" #: kallithea/controllers/admin/gists.py:233 -msgid "unmodified" -msgstr "" +#, fuzzy +#| msgid "Last Modified" +msgid "Unmodified" +msgstr "最後修改" #: kallithea/controllers/admin/gists.py:262 msgid "Successfully updated gist content" @@ -513,117 +540,133 @@ msgid "Error occurred during update of gist %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:70 +#: kallithea/controllers/admin/my_account.py:70 kallithea/model/user.py:208 +#: kallithea/model/user.py:230 msgid "You can't edit this user since it's crucial for entire application" msgstr "" -#: kallithea/controllers/admin/my_account.py:128 +#: kallithea/controllers/admin/my_account.py:129 msgid "Your account was updated successfully" msgstr "您的帳號已更新完成" -#: kallithea/controllers/admin/my_account.py:143 -#: kallithea/controllers/admin/users.py:206 +#: kallithea/controllers/admin/my_account.py:144 +#: kallithea/controllers/admin/users.py:204 #, python-format msgid "Error occurred during update of user %s" msgstr "" -#: kallithea/controllers/admin/my_account.py:162 +#: kallithea/controllers/admin/my_account.py:167 msgid "Successfully updated password" msgstr "" -#: kallithea/controllers/admin/my_account.py:173 +#: kallithea/controllers/admin/my_account.py:178 msgid "Error occurred during update of user password" msgstr "" -#: kallithea/controllers/admin/my_account.py:215 -#: kallithea/controllers/admin/users.py:431 +#: kallithea/controllers/admin/my_account.py:220 +#: kallithea/controllers/admin/users.py:413 #, python-format msgid "Added email %s to user" msgstr "" -#: kallithea/controllers/admin/my_account.py:221 -#: kallithea/controllers/admin/users.py:437 +#: kallithea/controllers/admin/my_account.py:226 +#: kallithea/controllers/admin/users.py:419 msgid "An error occurred during email saving" msgstr "" -#: kallithea/controllers/admin/my_account.py:230 -#: kallithea/controllers/admin/users.py:448 +#: kallithea/controllers/admin/my_account.py:235 +#: kallithea/controllers/admin/users.py:431 msgid "Removed email from user" msgstr "" -#: kallithea/controllers/admin/my_account.py:254 -#: kallithea/controllers/admin/users.py:314 -msgid "Api key successfully created" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:266 -#: kallithea/controllers/admin/users.py:330 -msgid "Api key successfully reset" -msgstr "" - -#: kallithea/controllers/admin/my_account.py:270 -#: kallithea/controllers/admin/users.py:334 -msgid "Api key successfully deleted" -msgstr "" +#: kallithea/controllers/admin/my_account.py:259 +#: kallithea/controllers/admin/users.py:306 +msgid "API key successfully created" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:271 +#: kallithea/controllers/admin/users.py:319 +msgid "API key successfully reset" +msgstr "" + +#: kallithea/controllers/admin/my_account.py:275 +#: kallithea/controllers/admin/users.py:323 +msgid "API key successfully deleted" +msgstr "" + +#: kallithea/controllers/admin/permissions.py:62 +#: kallithea/controllers/admin/permissions.py:66 +#: kallithea/controllers/admin/permissions.py:70 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 +#: kallithea/templates/base/perms_summary.html:15 +msgid "Read" +msgstr "讀" #: kallithea/controllers/admin/permissions.py:63 #: kallithea/controllers/admin/permissions.py:67 #: kallithea/controllers/admin/permissions.py:71 -msgid "Read" -msgstr "讀" +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 +#: kallithea/templates/base/perms_summary.html:16 +msgid "Write" +msgstr "寫" #: kallithea/controllers/admin/permissions.py:64 #: kallithea/controllers/admin/permissions.py:68 #: kallithea/controllers/admin/permissions.py:72 -msgid "Write" -msgstr "寫" - -#: kallithea/controllers/admin/permissions.py:65 -#: kallithea/controllers/admin/permissions.py:69 -#: kallithea/controllers/admin/permissions.py:73 #: kallithea/templates/admin/auth/auth_settings.html:9 #: kallithea/templates/admin/defaults/defaults.html:9 #: kallithea/templates/admin/permissions/permissions.html:9 #: kallithea/templates/admin/repo_groups/repo_group_add.html:9 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:9 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 +#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 #: kallithea/templates/admin/repo_groups/repo_groups.html:10 #: kallithea/templates/admin/repos/repo_add.html:10 #: kallithea/templates/admin/repos/repo_add.html:14 +#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 #: kallithea/templates/admin/repos/repos.html:9 #: kallithea/templates/admin/settings/settings.html:9 #: kallithea/templates/admin/user_groups/user_group_add.html:8 #: kallithea/templates/admin/user_groups/user_group_edit.html:9 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 +#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 #: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/admin/users/user_add.html:8 #: kallithea/templates/admin/users/user_edit.html:9 -#: kallithea/templates/admin/users/user_edit_profile.html:114 +#: kallithea/templates/admin/users/user_edit_profile.html:105 #: kallithea/templates/admin/users/users.html:10 #: kallithea/templates/admin/users/users.html:55 -#: kallithea/templates/base/base.html:255 -#: kallithea/templates/base/base.html:256 -#: kallithea/templates/base/base.html:262 -#: kallithea/templates/base/base.html:263 +#: kallithea/templates/base/base.html:259 +#: kallithea/templates/base/base.html:260 +#: kallithea/templates/base/base.html:266 +#: kallithea/templates/base/base.html:267 +#: kallithea/templates/base/perms_summary.html:17 msgid "Admin" msgstr "管理" -#: kallithea/controllers/admin/permissions.py:76 -#: kallithea/controllers/admin/permissions.py:87 -#: kallithea/controllers/admin/permissions.py:92 -#: kallithea/controllers/admin/permissions.py:95 -#: kallithea/controllers/admin/permissions.py:98 -#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/controllers/admin/permissions.py:75 +#: kallithea/controllers/admin/permissions.py:86 +#: kallithea/controllers/admin/permissions.py:91 +#: kallithea/controllers/admin/permissions.py:94 +#: kallithea/controllers/admin/permissions.py:97 +#: kallithea/controllers/admin/permissions.py:100 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Disabled" msgstr "停用" -#: kallithea/controllers/admin/permissions.py:78 +#: kallithea/controllers/admin/permissions.py:77 msgid "Allowed with manual account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:80 +#: kallithea/controllers/admin/permissions.py:79 msgid "Allowed with automatic account activation" msgstr "" -#: kallithea/controllers/admin/permissions.py:83 +#: kallithea/controllers/admin/permissions.py:82 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1439 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1485 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1542 @@ -631,11 +674,11 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1564 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1603 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1655 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1684 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1682 kallithea/model/db.py:1701 msgid "Manual activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:84 +#: kallithea/controllers/admin/permissions.py:83 #: kallithea/lib/dbmigrate/schema/db_1_7_0.py:1440 #: kallithea/lib/dbmigrate/schema/db_1_8_0.py:1486 #: kallithea/lib/dbmigrate/schema/db_2_0_0.py:1543 @@ -643,221 +686,213 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1565 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1604 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1656 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1685 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1683 kallithea/model/db.py:1702 msgid "Automatic activation of external account" msgstr "" -#: kallithea/controllers/admin/permissions.py:88 -#: kallithea/controllers/admin/permissions.py:91 -#: kallithea/controllers/admin/permissions.py:96 -#: kallithea/controllers/admin/permissions.py:99 -#: kallithea/controllers/admin/permissions.py:102 +#: kallithea/controllers/admin/permissions.py:87 +#: kallithea/controllers/admin/permissions.py:90 +#: kallithea/controllers/admin/permissions.py:95 +#: kallithea/controllers/admin/permissions.py:98 +#: kallithea/controllers/admin/permissions.py:101 +#: kallithea/templates/admin/auth/auth_settings.html:40 msgid "Enabled" msgstr "啟用" -#: kallithea/controllers/admin/permissions.py:125 +#: kallithea/controllers/admin/permissions.py:124 msgid "Global permissions updated successfully" msgstr "" -#: kallithea/controllers/admin/permissions.py:140 +#: kallithea/controllers/admin/permissions.py:139 msgid "Error occurred during update of permissions" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:184 +#: kallithea/controllers/admin/repo_groups.py:188 +#, python-format +msgid "Error occurred during creation of repository group %s" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:193 #, python-format msgid "Created repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:197 -#, python-format -msgid "Error occurred during creation of repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:255 +#: kallithea/controllers/admin/repo_groups.py:250 #, python-format msgid "Updated repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:271 +#: kallithea/controllers/admin/repo_groups.py:266 #, python-format msgid "Error occurred during update of repository group %s" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:289 +#: kallithea/controllers/admin/repo_groups.py:284 #, python-format msgid "This group contains %s repositories and cannot be deleted" msgstr "" -#: kallithea/controllers/admin/repo_groups.py:296 +#: kallithea/controllers/admin/repo_groups.py:291 #, python-format msgid "This group contains %s subgroups and cannot be deleted" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:297 +#, python-format +msgid "Removed repository group %s" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:302 #, python-format -msgid "Removed repository group %s" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:307 -#, python-format msgid "Error occurred during deletion of repository group %s" msgstr "" +#: kallithea/controllers/admin/repo_groups.py:405 +#: kallithea/controllers/admin/repo_groups.py:440 +#: kallithea/controllers/admin/user_groups.py:340 +msgid "Cannot revoke permission for yourself as admin" +msgstr "" + #: kallithea/controllers/admin/repo_groups.py:420 -#: kallithea/controllers/admin/repo_groups.py:455 -#: kallithea/controllers/admin/user_groups.py:340 -msgid "Cannot revoke permission for yourself as admin" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:435 -msgid "Repository Group permissions updated" -msgstr "" - -#: kallithea/controllers/admin/repo_groups.py:472 -#: kallithea/controllers/admin/repos.py:430 +msgid "Repository group permissions updated" +msgstr "" + +#: kallithea/controllers/admin/repo_groups.py:457 +#: kallithea/controllers/admin/repos.py:398 #: kallithea/controllers/admin/user_groups.py:352 msgid "An error occurred during revoking of permission" msgstr "" -#: kallithea/controllers/admin/repos.py:163 +#: kallithea/controllers/admin/repos.py:152 #, python-format msgid "Error creating repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:238 +#: kallithea/controllers/admin/repos.py:213 #, python-format msgid "Created repository %s from %s" msgstr "" -#: kallithea/controllers/admin/repos.py:247 +#: kallithea/controllers/admin/repos.py:222 #, python-format msgid "Forked repository %s as %s" msgstr "" -#: kallithea/controllers/admin/repos.py:250 +#: kallithea/controllers/admin/repos.py:225 #, python-format msgid "Created repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:290 +#: kallithea/controllers/admin/repos.py:262 #, python-format msgid "Repository %s updated successfully" msgstr "版本庫 %s 更新完成" -#: kallithea/controllers/admin/repos.py:309 +#: kallithea/controllers/admin/repos.py:283 #, python-format msgid "Error occurred during update of repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:336 +#: kallithea/controllers/admin/repos.py:310 #, python-format msgid "Detached %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:339 +#: kallithea/controllers/admin/repos.py:313 #, python-format msgid "Deleted %s forks" msgstr "" -#: kallithea/controllers/admin/repos.py:344 +#: kallithea/controllers/admin/repos.py:318 #, python-format msgid "Deleted repository %s" msgstr "" -#: kallithea/controllers/admin/repos.py:347 -#, python-format -msgid "Cannot delete %s it still contains attached forks" -msgstr "" - -#: kallithea/controllers/admin/repos.py:352 +#: kallithea/controllers/admin/repos.py:321 +#, python-format +msgid "Cannot delete repository %s which still has forks" +msgstr "" + +#: kallithea/controllers/admin/repos.py:326 #, python-format msgid "An error occurred during deletion of %s" msgstr "" -#: kallithea/controllers/admin/repos.py:406 +#: kallithea/controllers/admin/repos.py:374 msgid "Repository permissions updated" msgstr "" -#: kallithea/controllers/admin/repos.py:462 +#: kallithea/controllers/admin/repos.py:430 msgid "An error occurred during creation of field" msgstr "" -#: kallithea/controllers/admin/repos.py:476 +#: kallithea/controllers/admin/repos.py:444 msgid "An error occurred during removal of field" msgstr "" -#: kallithea/controllers/admin/repos.py:492 +#: kallithea/controllers/admin/repos.py:460 msgid "-- Not a fork --" msgstr "" -#: kallithea/controllers/admin/repos.py:526 +#: kallithea/controllers/admin/repos.py:491 msgid "Updated repository visibility in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:530 +#: kallithea/controllers/admin/repos.py:495 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: kallithea/controllers/admin/repos.py:535 kallithea/model/validators.py:340 -msgid "Token mismatch" -msgstr "" - -#: kallithea/controllers/admin/repos.py:550 +#: kallithea/controllers/admin/repos.py:512 msgid "Nothing" msgstr "" -#: kallithea/controllers/admin/repos.py:552 -#, python-format -msgid "Marked repo %s as fork of %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:559 +#: kallithea/controllers/admin/repos.py:514 +#, python-format +msgid "Marked repository %s as fork of %s" +msgstr "" + +#: kallithea/controllers/admin/repos.py:521 msgid "An error occurred during this operation" msgstr "" -#: kallithea/controllers/admin/repos.py:575 -msgid "Locked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:578 -msgid "Unlocked repository" -msgstr "" - -#: kallithea/controllers/admin/repos.py:581 -#: kallithea/controllers/admin/repos.py:608 +#: kallithea/controllers/admin/repos.py:537 +#: kallithea/controllers/admin/repos.py:564 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been locked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:540 +#: kallithea/controllers/admin/repos.py:561 +#, fuzzy, python-format +#| msgid "This repository has %s fork" +#| msgid_plural "This repository has %s forks" +msgid "Repository has been unlocked" +msgstr "" + +#: kallithea/controllers/admin/repos.py:543 +#: kallithea/controllers/admin/repos.py:568 msgid "An error occurred during unlocking" msgstr "" -#: kallithea/controllers/admin/repos.py:599 -msgid "Unlocked" -msgstr "" - -#: kallithea/controllers/admin/repos.py:602 -msgid "Locked" +#: kallithea/controllers/admin/repos.py:582 +msgid "Cache invalidation successful" +msgstr "" + +#: kallithea/controllers/admin/repos.py:586 +msgid "An error occurred during cache invalidation" +msgstr "" + +#: kallithea/controllers/admin/repos.py:601 +msgid "Pulled from remote location" msgstr "" #: kallithea/controllers/admin/repos.py:604 -#, python-format -msgid "Repository has been %s" -msgstr "" - -#: kallithea/controllers/admin/repos.py:622 -msgid "Cache invalidation successful" -msgstr "" - -#: kallithea/controllers/admin/repos.py:626 -msgid "An error occurred during cache invalidation" -msgstr "" - -#: kallithea/controllers/admin/repos.py:641 -msgid "Pulled from remote location" -msgstr "" - -#: kallithea/controllers/admin/repos.py:644 msgid "An error occurred during pull from remote location" msgstr "" -#: kallithea/controllers/admin/repos.py:677 +#: kallithea/controllers/admin/repos.py:637 msgid "An error occurred during deletion of repository stats" msgstr "" @@ -873,7 +908,7 @@ #: kallithea/controllers/admin/settings.py:180 #: kallithea/controllers/admin/settings.py:274 -msgid "Error occurred during updating application settings" +msgid "Error occurred while updating application settings" msgstr "" #: kallithea/controllers/admin/settings.py:213 @@ -950,83 +985,80 @@ msgstr "" #: kallithea/controllers/admin/user_groups.py:320 -msgid "User Group permissions updated" +msgid "User group permissions updated" msgstr "" #: kallithea/controllers/admin/user_groups.py:440 -#: kallithea/controllers/admin/users.py:396 +#: kallithea/controllers/admin/users.py:382 msgid "Updated permissions" msgstr "" #: kallithea/controllers/admin/user_groups.py:444 -#: kallithea/controllers/admin/users.py:400 +#: kallithea/controllers/admin/users.py:386 msgid "An error occurred during permissions saving" msgstr "" -#: kallithea/controllers/admin/users.py:132 +#: kallithea/controllers/admin/users.py:133 #, python-format msgid "Created user %s" msgstr "" -#: kallithea/controllers/admin/users.py:147 +#: kallithea/controllers/admin/users.py:148 #, python-format msgid "Error occurred during creation of user %s" msgstr "" -#: kallithea/controllers/admin/users.py:186 +#: kallithea/controllers/admin/users.py:184 msgid "User updated successfully" msgstr "使用者更新完成" -#: kallithea/controllers/admin/users.py:222 +#: kallithea/controllers/admin/users.py:220 msgid "Successfully deleted user" msgstr "" -#: kallithea/controllers/admin/users.py:227 +#: kallithea/controllers/admin/users.py:225 msgid "An error occurred during deletion of user" msgstr "" -#: kallithea/controllers/admin/users.py:241 -#: kallithea/controllers/admin/users.py:259 -#: kallithea/controllers/admin/users.py:282 -#: kallithea/controllers/admin/users.py:307 -#: kallithea/controllers/admin/users.py:320 -#: kallithea/controllers/admin/users.py:344 -#: kallithea/controllers/admin/users.py:407 -#: kallithea/controllers/admin/users.py:454 -msgid "You can't edit this user" -msgstr "您無法編輯這位使用者" - -#: kallithea/controllers/admin/users.py:482 -#, python-format -msgid "Added ip %s to user whitelist" -msgstr "" - -#: kallithea/controllers/admin/users.py:488 -msgid "An error occurred during ip saving" -msgstr "" - -#: kallithea/controllers/admin/users.py:502 -msgid "Removed ip address from user whitelist" -msgstr "" - -#: kallithea/lib/auth.py:745 +#: kallithea/controllers/admin/users.py:238 +msgid "The default user cannot be edited" +msgstr "" + +#: kallithea/controllers/admin/users.py:461 +#, python-format +msgid "Added IP address %s to user whitelist" +msgstr "" + +#: kallithea/controllers/admin/users.py:467 +msgid "An error occurred while adding IP address" +msgstr "" + +#: kallithea/controllers/admin/users.py:481 +msgid "Removed IP address from user whitelist" +msgstr "" + +#: kallithea/lib/auth.py:744 #, python-format msgid "IP %s not allowed" msgstr "" -#: kallithea/lib/auth.py:806 +#: kallithea/lib/auth.py:757 +msgid "Invalid API key" +msgstr "" + +#: kallithea/lib/auth.py:795 msgid "You need to be a registered user to perform this action" msgstr "您必須是註冊使用者才能執行這個動作" -#: kallithea/lib/auth.py:843 +#: kallithea/lib/auth.py:827 msgid "You need to be signed in to view this page" msgstr "您必須登入後才能瀏覽這個頁面" -#: kallithea/lib/base.py:427 +#: kallithea/lib/base.py:490 msgid "Repository not found in the filesystem" msgstr "" -#: kallithea/lib/base.py:453 kallithea/lib/helpers.py:643 +#: kallithea/lib/base.py:516 kallithea/lib/helpers.py:622 msgid "Changeset not found" msgstr "" @@ -1042,158 +1074,162 @@ msgid "No changes detected" msgstr "尚未有任何變更" -#: kallithea/lib/helpers.py:627 +#: kallithea/lib/helpers.py:609 #, python-format msgid "Deleted branch: %s" msgstr "" -#: kallithea/lib/helpers.py:630 +#: kallithea/lib/helpers.py:611 #, python-format msgid "Created tag: %s" msgstr "" -#: kallithea/lib/helpers.py:693 +#: kallithea/lib/helpers.py:671 #, python-format msgid "Show all combined changesets %s->%s" msgstr "" -#: kallithea/lib/helpers.py:699 -msgid "compare view" -msgstr "" - -#: kallithea/lib/helpers.py:718 +#: kallithea/lib/helpers.py:677 +msgid "Compare view" +msgstr "" + +#: kallithea/lib/helpers.py:696 msgid "and" msgstr "和" -#: kallithea/lib/helpers.py:719 +#: kallithea/lib/helpers.py:697 #, python-format msgid "%s more" msgstr "" -#: kallithea/lib/helpers.py:720 kallithea/templates/changelog/changelog.html:44 +#: kallithea/lib/helpers.py:698 kallithea/templates/changelog/changelog.html:44 msgid "revisions" msgstr "修訂" -#: kallithea/lib/helpers.py:744 -#, python-format -msgid "fork name %s" -msgstr "" - -#: kallithea/lib/helpers.py:761 -#, python-format -msgid "Pull request #%s" -msgstr "" - -#: kallithea/lib/helpers.py:771 +#: kallithea/lib/helpers.py:722 +#, fuzzy, python-format +#| msgid "Fork name" +msgid "Fork name %s" +msgstr "分支名稱" + +#: kallithea/lib/helpers.py:742 +#, fuzzy, python-format +#| msgid "Pull Request Content" +msgid "Pull request %s" +msgstr "文件內容" + +#: kallithea/lib/helpers.py:752 msgid "[deleted] repository" msgstr "" -#: kallithea/lib/helpers.py:773 kallithea/lib/helpers.py:785 +#: kallithea/lib/helpers.py:754 kallithea/lib/helpers.py:766 msgid "[created] repository" msgstr "" -#: kallithea/lib/helpers.py:775 +#: kallithea/lib/helpers.py:756 msgid "[created] repository as fork" msgstr "" -#: kallithea/lib/helpers.py:777 kallithea/lib/helpers.py:787 +#: kallithea/lib/helpers.py:758 kallithea/lib/helpers.py:768 msgid "[forked] repository" msgstr "" -#: kallithea/lib/helpers.py:779 kallithea/lib/helpers.py:789 +#: kallithea/lib/helpers.py:760 kallithea/lib/helpers.py:770 msgid "[updated] repository" msgstr "" -#: kallithea/lib/helpers.py:781 +#: kallithea/lib/helpers.py:762 msgid "[downloaded] archive from repository" msgstr "" -#: kallithea/lib/helpers.py:783 +#: kallithea/lib/helpers.py:764 msgid "[delete] repository" msgstr "" -#: kallithea/lib/helpers.py:791 +#: kallithea/lib/helpers.py:772 msgid "[created] user" msgstr "" -#: kallithea/lib/helpers.py:793 +#: kallithea/lib/helpers.py:774 msgid "[updated] user" msgstr "" -#: kallithea/lib/helpers.py:795 +#: kallithea/lib/helpers.py:776 msgid "[created] user group" msgstr "" -#: kallithea/lib/helpers.py:797 +#: kallithea/lib/helpers.py:778 msgid "[updated] user group" msgstr "" -#: kallithea/lib/helpers.py:799 +#: kallithea/lib/helpers.py:780 msgid "[commented] on revision in repository" msgstr "" -#: kallithea/lib/helpers.py:801 +#: kallithea/lib/helpers.py:782 msgid "[commented] on pull request for" msgstr "" -#: kallithea/lib/helpers.py:803 +#: kallithea/lib/helpers.py:784 msgid "[closed] pull request for" msgstr "" -#: kallithea/lib/helpers.py:805 +#: kallithea/lib/helpers.py:786 msgid "[pushed] into" msgstr "" -#: kallithea/lib/helpers.py:807 +#: kallithea/lib/helpers.py:788 msgid "[committed via Kallithea] into repository" msgstr "" -#: kallithea/lib/helpers.py:809 +#: kallithea/lib/helpers.py:790 msgid "[pulled from remote] into repository" msgstr "" -#: kallithea/lib/helpers.py:811 +#: kallithea/lib/helpers.py:792 msgid "[pulled] from" msgstr "" -#: kallithea/lib/helpers.py:813 +#: kallithea/lib/helpers.py:794 msgid "[started following] repository" msgstr "" -#: kallithea/lib/helpers.py:815 +#: kallithea/lib/helpers.py:796 msgid "[stopped following] repository" msgstr "" -#: kallithea/lib/helpers.py:1144 +#: kallithea/lib/helpers.py:1124 #, python-format msgid " and %s more" msgstr "" -#: kallithea/lib/helpers.py:1148 -msgid "No Files" -msgstr "沒有檔案" - -#: kallithea/lib/helpers.py:1214 +#: kallithea/lib/helpers.py:1128 +#: kallithea/templates/compare/compare_diff.html:65 +#: kallithea/templates/pullrequests/pullrequest_show.html:322 +msgid "No files" +msgstr "" + +#: kallithea/lib/helpers.py:1194 msgid "new file" msgstr "" -#: kallithea/lib/helpers.py:1217 +#: kallithea/lib/helpers.py:1197 msgid "mod" msgstr "" -#: kallithea/lib/helpers.py:1220 +#: kallithea/lib/helpers.py:1200 msgid "del" msgstr "" -#: kallithea/lib/helpers.py:1223 +#: kallithea/lib/helpers.py:1203 msgid "rename" msgstr "" -#: kallithea/lib/helpers.py:1228 +#: kallithea/lib/helpers.py:1208 msgid "chmod" msgstr "" -#: kallithea/lib/helpers.py:1460 +#: kallithea/lib/helpers.py:1444 #, python-format msgid "" "%s repository is not mapped to db perhaps it was created or renamed from " @@ -1201,63 +1237,63 @@ "repositories" msgstr "" -#: kallithea/lib/utils2.py:425 +#: kallithea/lib/utils2.py:415 #, python-format msgid "%d year" msgid_plural "%d years" msgstr[0] "" -#: kallithea/lib/utils2.py:426 +#: kallithea/lib/utils2.py:416 #, python-format msgid "%d month" msgid_plural "%d months" msgstr[0] "" -#: kallithea/lib/utils2.py:427 +#: kallithea/lib/utils2.py:417 #, python-format msgid "%d day" msgid_plural "%d days" msgstr[0] "" -#: kallithea/lib/utils2.py:428 +#: kallithea/lib/utils2.py:418 #, python-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" -#: kallithea/lib/utils2.py:429 +#: kallithea/lib/utils2.py:419 #, python-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" -#: kallithea/lib/utils2.py:430 +#: kallithea/lib/utils2.py:420 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" -#: kallithea/lib/utils2.py:446 +#: kallithea/lib/utils2.py:436 #, python-format msgid "in %s" msgstr "" -#: kallithea/lib/utils2.py:448 +#: kallithea/lib/utils2.py:438 #, python-format msgid "%s ago" msgstr "" -#: kallithea/lib/utils2.py:450 +#: kallithea/lib/utils2.py:440 #, python-format msgid "in %s and %s" msgstr "" -#: kallithea/lib/utils2.py:453 +#: kallithea/lib/utils2.py:443 #, python-format msgid "%s and %s ago" msgstr "" -#: kallithea/lib/utils2.py:456 +#: kallithea/lib/utils2.py:446 msgid "just now" msgstr "現在" @@ -1272,7 +1308,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1533 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1572 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1622 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 kallithea/model/db.py:1651 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1649 msgid "Repository no access" msgstr "" @@ -1287,7 +1323,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1534 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1573 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1623 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 kallithea/model/db.py:1652 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1650 msgid "Repository read access" msgstr "" @@ -1302,7 +1338,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1535 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1574 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1624 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 kallithea/model/db.py:1653 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1651 msgid "Repository write access" msgstr "" @@ -1317,7 +1353,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1536 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1575 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1625 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 kallithea/model/db.py:1654 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1652 msgid "Repository admin access" msgstr "" @@ -1356,7 +1392,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1531 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1570 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1620 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1649 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1647 kallithea/model/db.py:1665 msgid "Kallithea Administrator" msgstr "" @@ -1371,7 +1407,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1554 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1593 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1643 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 kallithea/model/db.py:1672 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1670 msgid "Repository creation disabled" msgstr "" @@ -1386,7 +1422,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1555 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1594 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1644 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 kallithea/model/db.py:1673 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1671 msgid "Repository creation enabled" msgstr "" @@ -1401,7 +1437,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1557 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1596 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1648 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 kallithea/model/db.py:1677 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1675 msgid "Repository forking disabled" msgstr "" @@ -1416,7 +1452,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1558 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1597 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1649 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 kallithea/model/db.py:1678 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1676 msgid "Repository forking enabled" msgstr "" @@ -1452,7 +1488,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2062 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2101 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2154 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 kallithea/model/db.py:2202 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2200 msgid "Not Reviewed" msgstr "" @@ -1467,7 +1503,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2063 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2102 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2155 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2203 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2201 kallithea/model/db.py:2229 msgid "Approved" msgstr "" @@ -1482,7 +1518,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2064 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2103 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2156 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2204 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2202 kallithea/model/db.py:2230 msgid "Rejected" msgstr "" @@ -1497,7 +1533,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:2065 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:2104 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:2157 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 kallithea/model/db.py:2205 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:2203 msgid "Under Review" msgstr "" @@ -1509,7 +1545,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1379 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1418 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1471 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1500 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1498 kallithea/model/db.py:1514 msgid "top level" msgstr "" @@ -1521,7 +1557,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1538 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1577 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1627 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 kallithea/model/db.py:1656 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1654 msgid "Repository group no access" msgstr "" @@ -1533,7 +1569,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1539 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1578 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1628 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 kallithea/model/db.py:1657 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1655 msgid "Repository group read access" msgstr "" @@ -1545,7 +1581,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1540 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1579 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1629 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 kallithea/model/db.py:1658 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1656 msgid "Repository group write access" msgstr "" @@ -1557,7 +1593,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1541 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1580 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1630 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 kallithea/model/db.py:1659 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1657 msgid "Repository group admin access" msgstr "" @@ -1568,7 +1604,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1543 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1582 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1632 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 kallithea/model/db.py:1661 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1659 msgid "User group no access" msgstr "" @@ -1579,7 +1615,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1544 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1583 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1633 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 kallithea/model/db.py:1662 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1660 msgid "User group read access" msgstr "" @@ -1590,7 +1626,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1545 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1584 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1634 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 kallithea/model/db.py:1663 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1661 msgid "User group write access" msgstr "" @@ -1601,7 +1637,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1546 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1585 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1635 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 kallithea/model/db.py:1664 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1662 msgid "User group admin access" msgstr "" @@ -1612,7 +1648,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1548 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1587 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1637 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 kallithea/model/db.py:1666 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1664 msgid "Repository Group creation disabled" msgstr "" @@ -1623,7 +1659,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1549 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1588 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1638 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 kallithea/model/db.py:1667 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1665 msgid "Repository Group creation enabled" msgstr "" @@ -1634,7 +1670,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1551 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1590 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1640 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 kallithea/model/db.py:1669 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1667 msgid "User Group creation disabled" msgstr "" @@ -1645,7 +1681,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1552 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1591 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1641 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 kallithea/model/db.py:1670 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1668 msgid "User Group creation enabled" msgstr "" @@ -1656,7 +1692,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1560 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1599 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1651 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1680 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1678 kallithea/model/db.py:1697 msgid "Registration disabled" msgstr "" @@ -1667,7 +1703,7 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1561 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1600 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1652 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 kallithea/model/db.py:1681 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1679 msgid "User Registration with manual account activation" msgstr "" @@ -1678,29 +1714,135 @@ #: kallithea/lib/dbmigrate/schema/db_2_0_2.py:1562 #: kallithea/lib/dbmigrate/schema/db_2_1_0.py:1601 #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1653 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 kallithea/model/db.py:1682 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1680 msgid "User Registration with automatic account activation" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1645 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1674 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1672 kallithea/model/db.py:1691 msgid "Repository creation enabled with write permission to a repository group" msgstr "" #: kallithea/lib/dbmigrate/schema/db_2_2_0.py:1646 -#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1675 +#: kallithea/lib/dbmigrate/schema/db_2_2_3.py:1673 kallithea/model/db.py:1692 msgid "Repository creation disabled with write permission to a repository group" msgstr "" -#: kallithea/model/comment.py:76 +#: kallithea/model/comment.py:72 #, python-format msgid "on line %s" msgstr "" -#: kallithea/model/comment.py:231 kallithea/model/pull_request.py:164 +#: kallithea/model/comment.py:217 kallithea/model/pull_request.py:169 msgid "[Mention]" msgstr "" +#: kallithea/model/db.py:1667 +msgid "Default user has no access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1668 +msgid "Default user has read access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1669 +msgid "Default user has write access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1670 +msgid "Default user has admin access to new repositories" +msgstr "" + +#: kallithea/model/db.py:1672 +msgid "Default user has no access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1673 +msgid "Default user has read access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1674 +msgid "Default user has write access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1675 +msgid "Default user has admin access to new repository groups" +msgstr "" + +#: kallithea/model/db.py:1677 +msgid "Default user has no access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1678 +msgid "Default user has read access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1679 +msgid "Default user has write access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1680 +msgid "Default user has admin access to new user groups" +msgstr "" + +#: kallithea/model/db.py:1682 +msgid "Only admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1683 +msgid "Non-admins can create repository groups" +msgstr "" + +#: kallithea/model/db.py:1685 +msgid "Only admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1686 +msgid "Non-admins can create user groups" +msgstr "" + +#: kallithea/model/db.py:1688 +msgid "Only admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1689 +msgid "Non-admins can create top level repositories" +msgstr "" + +#: kallithea/model/db.py:1694 +#, fuzzy +#| msgid "Location of repositories" +msgid "Only admins can fork repositories" +msgstr "建立版本庫" + +#: kallithea/model/db.py:1695 +#, fuzzy +#| msgid "Location of repositories" +msgid "Non-admins can can fork repositories" +msgstr "建立版本庫" + +#: kallithea/model/db.py:1698 +msgid "User registration with manual account activation" +msgstr "" + +#: kallithea/model/db.py:1699 +msgid "User registration with automatic account activation" +msgstr "" + +#: kallithea/model/db.py:2228 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Not reviewed" +msgstr "" + +#: kallithea/model/db.py:2231 +#, fuzzy, python-format +#| msgid "%d reviewer" +#| msgid_plural "%d reviewers" +msgid "Under review" +msgstr "" + #: kallithea/model/forms.py:57 msgid "Please enter a login" msgstr "請登入" @@ -1719,299 +1861,325 @@ msgid "Enter %(min)i characters or more" msgstr "" -#: kallithea/model/forms.py:156 +#: kallithea/model/forms.py:160 msgid "Name must not contain only digits" msgstr "" -#: kallithea/model/notification.py:252 -#, python-format -msgid "%(user)s commented on changeset at %(when)s" -msgstr "" - -#: kallithea/model/notification.py:253 -#, python-format -msgid "%(user)s sent message at %(when)s" -msgstr "" - #: kallithea/model/notification.py:254 #, python-format -msgid "%(user)s mentioned you at %(when)s" +msgid "%(user)s commented on changeset %(age)s" msgstr "" #: kallithea/model/notification.py:255 #, python-format -msgid "%(user)s registered in Kallithea at %(when)s" +msgid "%(user)s sent message %(age)s" msgstr "" #: kallithea/model/notification.py:256 #, python-format -msgid "%(user)s opened new pull request at %(when)s" +msgid "%(user)s mentioned you %(age)s" msgstr "" #: kallithea/model/notification.py:257 #, python-format +msgid "%(user)s registered in Kallithea %(age)s" +msgstr "" + +#: kallithea/model/notification.py:258 +#, python-format +msgid "%(user)s opened new pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:259 +#, python-format +msgid "%(user)s commented on pull request %(age)s" +msgstr "" + +#: kallithea/model/notification.py:266 +#, python-format +msgid "%(user)s commented on changeset at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:267 +#, python-format +msgid "%(user)s sent message at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:268 +#, python-format +msgid "%(user)s mentioned you at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:269 +#, python-format +msgid "%(user)s registered in Kallithea at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:270 +#, python-format +msgid "%(user)s opened new pull request at %(when)s" +msgstr "" + +#: kallithea/model/notification.py:271 +#, python-format msgid "%(user)s commented on pull request at %(when)s" msgstr "" -#: kallithea/model/notification.py:296 -#, python-format -msgid "" -"Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:299 -#, python-format -msgid "New user %(new_username)s registered" -msgstr "" - -#: kallithea/model/notification.py:301 -#, python-format -msgid "" -"Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(pr_username)s" -msgstr "" - #: kallithea/model/notification.py:302 #, python-format msgid "" -"Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by " -"%(comment_username)s" -msgstr "" - -#: kallithea/model/notification.py:315 +"[Comment from %(comment_username)s] %(repo_name)s changeset %(short_id)s " +"on %(branch)s" +msgstr "" + +#: kallithea/model/notification.py:305 +#, python-format +msgid "New user %(new_username)s registered" +msgstr "" + +#: kallithea/model/notification.py:307 +#, python-format +msgid "" +"[Added by %(pr_username)s] %(repo_name)s pull request %(pr_nice_id)s from" +" %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:308 +#, python-format +msgid "" +"[Comment from %(comment_username)s] %(repo_name)s pull request " +"%(pr_nice_id)s from %(ref)s" +msgstr "" + +#: kallithea/model/notification.py:321 #, fuzzy msgid "Closing" msgstr "使用中" -#: kallithea/model/pull_request.py:132 -#, python-format -msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" -msgstr "" - -#: kallithea/model/scm.py:808 +#: kallithea/model/pull_request.py:137 +#, python-format +msgid "%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s" +msgstr "" + +#: kallithea/model/scm.py:813 msgid "latest tip" msgstr "" -#: kallithea/model/user.py:194 +#: kallithea/model/user.py:185 msgid "New user registration" msgstr "" -#: kallithea/model/user.py:214 kallithea/model/user.py:236 -msgid "You can't Edit this user since it's crucial for entire application" -msgstr "您無法編輯這個使用者,因為他是系統帳號" - -#: kallithea/model/user.py:255 -msgid "You can't remove this user since it's crucial for entire application" +#: kallithea/model/user.py:249 +#, fuzzy +#| msgid "You can't remove this user since it's crucial for entire application" +msgid "You can't remove this user since it is crucial for the entire application" msgstr "您無法移除這個使用者,因為他是系統帳號" -#: kallithea/model/user.py:261 +#: kallithea/model/user.py:254 #, python-format msgid "" "User \"%s\" still owns %s repositories and cannot be removed. Switch " "owners or remove those repositories: %s" msgstr "" -#: kallithea/model/user.py:268 +#: kallithea/model/user.py:259 #, python-format msgid "" "User \"%s\" still owns %s repository groups and cannot be removed. Switch" " owners or remove those repository groups: %s" msgstr "" -#: kallithea/model/user.py:275 +#: kallithea/model/user.py:266 #, python-format msgid "" "User \"%s\" still owns %s user groups and cannot be removed. Switch " "owners or remove those user groups: %s" msgstr "" -#: kallithea/model/user.py:305 +#: kallithea/model/user.py:296 msgid "Password reset link" msgstr "" -#: kallithea/model/user.py:328 +#: kallithea/model/user.py:319 msgid "Your new password" msgstr "" -#: kallithea/model/user.py:329 +#: kallithea/model/user.py:320 #, python-format msgid "Your new Kallithea password:%s" msgstr "" -#: kallithea/model/validators.py:83 kallithea/model/validators.py:84 +#: kallithea/model/validators.py:77 kallithea/model/validators.py:78 msgid "Value cannot be an empty list" msgstr "" -#: kallithea/model/validators.py:101 +#: kallithea/model/validators.py:95 #, python-format msgid "Username \"%(username)s\" already exists" msgstr "" -#: kallithea/model/validators.py:103 -#, python-format -msgid "Username \"%(username)s\" is forbidden" -msgstr "" - -#: kallithea/model/validators.py:105 +#: kallithea/model/validators.py:97 +#, python-format +msgid "Username \"%(username)s\" cannot be used" +msgstr "" + +#: kallithea/model/validators.py:99 msgid "" "Username may only contain alphanumeric characters underscores, periods or" -" dashes and must begin with alphanumeric character or underscore" -msgstr "" - -#: kallithea/model/validators.py:132 +" dashes and must begin with an alphanumeric character or underscore" +msgstr "" + +#: kallithea/model/validators.py:126 msgid "The input is not valid" msgstr "" -#: kallithea/model/validators.py:139 +#: kallithea/model/validators.py:133 #, python-format msgid "Username %(username)s is not valid" msgstr "" -#: kallithea/model/validators.py:158 +#: kallithea/model/validators.py:152 msgid "Invalid user group name" msgstr "" -#: kallithea/model/validators.py:159 +#: kallithea/model/validators.py:153 #, python-format msgid "User group \"%(usergroup)s\" already exists" msgstr "" -#: kallithea/model/validators.py:161 +#: kallithea/model/validators.py:155 msgid "" "user group name may only contain alphanumeric characters underscores, " "periods or dashes and must begin with alphanumeric character" msgstr "" -#: kallithea/model/validators.py:199 +#: kallithea/model/validators.py:193 msgid "Cannot assign this group as parent" msgstr "" -#: kallithea/model/validators.py:200 +#: kallithea/model/validators.py:194 #, python-format msgid "Group \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:202 +#: kallithea/model/validators.py:196 #, python-format msgid "Repository with name \"%(group_name)s\" already exists" msgstr "" -#: kallithea/model/validators.py:260 +#: kallithea/model/validators.py:254 msgid "Invalid characters (non-ascii) in password" msgstr "" -#: kallithea/model/validators.py:275 +#: kallithea/model/validators.py:269 msgid "Invalid old password" msgstr "" -#: kallithea/model/validators.py:291 +#: kallithea/model/validators.py:285 msgid "Passwords do not match" msgstr "密碼不相符" -#: kallithea/model/validators.py:308 -msgid "invalid password" +#: kallithea/model/validators.py:300 +#, fuzzy +#| msgid "invalid password" +msgid "Invalid username or password" msgstr "無效的密碼" -#: kallithea/model/validators.py:309 -msgid "invalid user name" -msgstr "無效的使用者名稱" - -#: kallithea/model/validators.py:310 -msgid "Your account is disabled" -msgstr "您的帳號已被停用" - -#: kallithea/model/validators.py:354 -#, python-format -msgid "Repository name %(repo)s is disallowed" -msgstr "" - -#: kallithea/model/validators.py:356 +#: kallithea/model/validators.py:331 +msgid "Token mismatch" +msgstr "" + +#: kallithea/model/validators.py:345 +#, python-format +msgid "Repository name %(repo)s is not allowed" +msgstr "" + +#: kallithea/model/validators.py:347 #, python-format msgid "Repository named %(repo)s already exists" msgstr "" -#: kallithea/model/validators.py:357 +#: kallithea/model/validators.py:348 #, python-format msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\"" msgstr "" -#: kallithea/model/validators.py:359 +#: kallithea/model/validators.py:350 #, python-format msgid "Repository group with name \"%(repo)s\" already exists" msgstr "" -#: kallithea/model/validators.py:474 +#: kallithea/model/validators.py:465 #, fuzzy -msgid "invalid clone URL" -msgstr "無效的複製URL" - -#: kallithea/model/validators.py:475 -msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" -msgstr "" - -#: kallithea/model/validators.py:500 +#| msgid "private repository" +msgid "Invalid repository URL" +msgstr "私有版本庫" + +#: kallithea/model/validators.py:466 +msgid "" +"Invalid repository URL. It must be a valid http, https, ssh, svn+http or " +"svn+https URL" +msgstr "" + +#: kallithea/model/validators.py:489 msgid "Fork has to be the same type as parent" msgstr "" -#: kallithea/model/validators.py:515 +#: kallithea/model/validators.py:504 msgid "You don't have permissions to create repository in this group" msgstr "" -#: kallithea/model/validators.py:517 +#: kallithea/model/validators.py:506 msgid "no permission to create repository in root location" msgstr "" -#: kallithea/model/validators.py:566 +#: kallithea/model/validators.py:556 msgid "You don't have permissions to create a group in this location" msgstr "" -#: kallithea/model/validators.py:607 +#: kallithea/model/validators.py:597 msgid "This username or user group name is not valid" msgstr "" -#: kallithea/model/validators.py:700 +#: kallithea/model/validators.py:690 msgid "This is not a valid path" msgstr "不是一個有效的路徑" -#: kallithea/model/validators.py:715 -msgid "This e-mail address is already taken" +#: kallithea/model/validators.py:705 +#, fuzzy +#| msgid "This email address is already taken" +msgid "This email address is already in use" msgstr "這個郵件位址已經使用了" -#: kallithea/model/validators.py:735 -#, python-format -msgid "e-mail \"%(email)s\" does not exist." -msgstr "" - -#: kallithea/model/validators.py:772 +#: kallithea/model/validators.py:725 +#, python-format +msgid "Email address \"%(email)s\" not found" +msgstr "" + +#: kallithea/model/validators.py:762 msgid "" "The LDAP Login attribute of the CN must be specified - this is the name " "of the attribute that is equivalent to \"username\"" msgstr "" -#: kallithea/model/validators.py:785 -#, python-format -msgid "Revisions %(revs)s are already part of pull request or have set status" -msgstr "" - -#: kallithea/model/validators.py:817 -msgid "Please enter a valid IPv4 or IpV6 address" -msgstr "" - -#: kallithea/model/validators.py:818 +#: kallithea/model/validators.py:774 +msgid "Please enter a valid IPv4 or IPv6 address" +msgstr "" + +#: kallithea/model/validators.py:775 #, python-format msgid "The network size (bits) must be within the range of 0-32 (not %(bits)r)" msgstr "" -#: kallithea/model/validators.py:851 +#: kallithea/model/validators.py:808 msgid "Key name can only consist of letters, underscore, dash or numbers" msgstr "" -#: kallithea/model/validators.py:865 +#: kallithea/model/validators.py:822 msgid "Filename cannot be inside a directory" msgstr "" -#: kallithea/model/validators.py:881 +#: kallithea/model/validators.py:838 #, python-format msgid "Plugins %(loaded)s and %(next_to_load)s both export the same name" msgstr "" @@ -2073,13 +2241,13 @@ msgstr "" #: kallithea/templates/index_base.html:46 -#: kallithea/templates/index_base.html:131 +#: kallithea/templates/index_base.html:127 #: kallithea/templates/admin/my_account/my_account_api_keys.html:64 #: kallithea/templates/admin/repo_groups/repo_group_add.html:42 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:17 #: kallithea/templates/admin/repo_groups/repo_groups.html:47 -#: kallithea/templates/admin/repos/repo_add_base.html:32 -#: kallithea/templates/admin/repos/repo_edit_settings.html:72 +#: kallithea/templates/admin/repos/repo_add_base.html:28 +#: kallithea/templates/admin/repos/repo_edit_settings.html:65 #: kallithea/templates/admin/repos/repos.html:48 #: kallithea/templates/admin/user_groups/user_group_add.html:40 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:15 @@ -2091,11 +2259,11 @@ #: kallithea/templates/pullrequests/pullrequest.html:40 #: kallithea/templates/pullrequests/pullrequest_show.html:38 #: kallithea/templates/pullrequests/pullrequest_show.html:63 -#: kallithea/templates/summary/summary.html:84 +#: kallithea/templates/summary/summary.html:85 msgid "Description" msgstr "描述" -#: kallithea/templates/index_base.html:129 +#: kallithea/templates/index_base.html:125 #: kallithea/templates/admin/my_account/my_account_repos.html:46 #: kallithea/templates/admin/my_account/my_account_watched.html:46 #: kallithea/templates/admin/repo_groups/repo_groups.html:46 @@ -2116,11 +2284,11 @@ msgid "Name" msgstr "名稱" -#: kallithea/templates/index_base.html:132 +#: kallithea/templates/index_base.html:128 msgid "Last Change" msgstr "" -#: kallithea/templates/index_base.html:134 +#: kallithea/templates/index_base.html:130 #: kallithea/templates/admin/my_account/my_account_repos.html:48 #: kallithea/templates/admin/my_account/my_account_watched.html:48 #: kallithea/templates/admin/repos/repos.html:49 @@ -2129,18 +2297,19 @@ msgid "Tip" msgstr "" -#: kallithea/templates/index_base.html:136 +#: kallithea/templates/index_base.html:132 #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:10 #: kallithea/templates/admin/repo_groups/repo_groups.html:49 -#: kallithea/templates/admin/repos/repo_edit_settings.html:60 +#: kallithea/templates/admin/repos/repo_edit_settings.html:53 #: kallithea/templates/admin/repos/repos.html:50 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:8 #: kallithea/templates/admin/user_groups/user_groups.html:50 -#: kallithea/templates/summary/summary.html:137 +#: kallithea/templates/pullrequests/pullrequest_show.html:229 +#: kallithea/templates/summary/summary.html:134 msgid "Owner" msgstr "擁有者" -#: kallithea/templates/index_base.html:144 +#: kallithea/templates/index_base.html:140 #: kallithea/templates/admin/my_account/my_account_repos.html:57 #: kallithea/templates/admin/my_account/my_account_watched.html:57 #: kallithea/templates/base/root.html:44 @@ -2152,7 +2321,7 @@ msgid "Click to sort ascending" msgstr "" -#: kallithea/templates/index_base.html:145 +#: kallithea/templates/index_base.html:141 #: kallithea/templates/admin/my_account/my_account_repos.html:58 #: kallithea/templates/admin/my_account/my_account_watched.html:58 #: kallithea/templates/base/root.html:45 @@ -2164,11 +2333,11 @@ msgid "Click to sort descending" msgstr "" -#: kallithea/templates/index_base.html:146 +#: kallithea/templates/index_base.html:142 msgid "No repositories found." msgstr "" -#: kallithea/templates/index_base.html:147 +#: kallithea/templates/index_base.html:143 #: kallithea/templates/admin/my_account/my_account_repos.html:60 #: kallithea/templates/admin/my_account/my_account_watched.html:60 #: kallithea/templates/base/root.html:47 @@ -2180,10 +2349,10 @@ msgid "Data error." msgstr "" -#: kallithea/templates/index_base.html:148 +#: kallithea/templates/index_base.html:144 #: kallithea/templates/admin/my_account/my_account_repos.html:61 #: kallithea/templates/admin/my_account/my_account_watched.html:61 -#: kallithea/templates/base/base.html:143 kallithea/templates/base/root.html:48 +#: kallithea/templates/base/base.html:147 kallithea/templates/base/root.html:48 #: kallithea/templates/bookmarks/bookmarks.html:83 #: kallithea/templates/branches/branches.html:83 #: kallithea/templates/journal/journal.html:202 @@ -2193,7 +2362,7 @@ msgstr "" #: kallithea/templates/login.html:5 kallithea/templates/login.html:15 -#: kallithea/templates/base/base.html:329 +#: kallithea/templates/base/base.html:333 msgid "Log In" msgstr "" @@ -2202,39 +2371,39 @@ msgid "Log In to %s" msgstr "" -#: kallithea/templates/login.html:27 kallithea/templates/register.html:24 +#: kallithea/templates/login.html:26 kallithea/templates/register.html:24 #: kallithea/templates/admin/admin_log.html:5 -#: kallithea/templates/admin/my_account/my_account_profile.html:32 +#: kallithea/templates/admin/my_account/my_account_profile.html:25 #: kallithea/templates/admin/users/user_add.html:32 -#: kallithea/templates/admin/users/user_edit_profile.html:33 +#: kallithea/templates/admin/users/user_edit_profile.html:24 #: kallithea/templates/admin/users/users.html:50 -#: kallithea/templates/base/base.html:305 +#: kallithea/templates/base/base.html:309 msgid "Username" msgstr "帳號" -#: kallithea/templates/login.html:36 kallithea/templates/register.html:33 -#: kallithea/templates/admin/my_account/my_account.html:36 +#: kallithea/templates/login.html:33 kallithea/templates/register.html:33 +#: kallithea/templates/admin/my_account/my_account.html:37 #: kallithea/templates/admin/users/user_add.html:41 -#: kallithea/templates/base/base.html:314 +#: kallithea/templates/base/base.html:318 msgid "Password" msgstr "密碼" -#: kallithea/templates/login.html:46 +#: kallithea/templates/login.html:44 msgid "Remember me" msgstr "" -#: kallithea/templates/login.html:50 +#: kallithea/templates/login.html:53 +msgid "Forgot your password ?" +msgstr "忘記您的密碼?" + +#: kallithea/templates/login.html:56 kallithea/templates/base/base.html:329 +msgid "Don't have an account ?" +msgstr "沒有帳號?" + +#: kallithea/templates/login.html:59 msgid "Sign In" msgstr "登入" -#: kallithea/templates/login.html:56 -msgid "Forgot your password ?" -msgstr "忘記您的密碼?" - -#: kallithea/templates/login.html:59 kallithea/templates/base/base.html:325 -msgid "Don't have an account ?" -msgstr "沒有帳號?" - #: kallithea/templates/password_reset.html:5 msgid "Password Reset" msgstr "" @@ -2284,26 +2453,26 @@ msgstr "確認密碼" #: kallithea/templates/register.html:51 -#: kallithea/templates/admin/my_account/my_account_profile.html:43 +#: kallithea/templates/admin/my_account/my_account_profile.html:34 #: kallithea/templates/admin/users/user_add.html:59 -#: kallithea/templates/admin/users/user_edit_profile.html:87 +#: kallithea/templates/admin/users/user_edit_profile.html:78 #: kallithea/templates/admin/users/users.html:51 msgid "First Name" msgstr "名" #: kallithea/templates/register.html:60 -#: kallithea/templates/admin/my_account/my_account_profile.html:52 +#: kallithea/templates/admin/my_account/my_account_profile.html:43 #: kallithea/templates/admin/users/user_add.html:68 -#: kallithea/templates/admin/users/user_edit_profile.html:96 +#: kallithea/templates/admin/users/user_edit_profile.html:87 #: kallithea/templates/admin/users/users.html:52 msgid "Last Name" msgstr "姓" #: kallithea/templates/register.html:69 -#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/my_account/my_account_profile.html:52 #: kallithea/templates/admin/settings/settings.html:31 #: kallithea/templates/admin/users/user_add.html:77 -#: kallithea/templates/admin/users/user_edit_profile.html:42 +#: kallithea/templates/admin/users/user_edit_profile.html:33 msgid "Email" msgstr "電子郵件" @@ -2413,109 +2582,95 @@ #: kallithea/templates/admin/auth/auth_settings.html:33 msgid "" -"Comma separated list of plugins. Order of plugins is also order in which " -"Kallithea will try to authenticate user" +"Comma-separated list of plugins; Kallithea will try user authentication " +"in plugin order" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:34 msgid "Available built-in plugins" msgstr "" -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:40 -msgid "enabled" -msgstr "" - -#: kallithea/templates/admin/auth/auth_settings.html:40 -#: kallithea/templates/base/root.html:41 -msgid "disabled" -msgstr "" - #: kallithea/templates/admin/auth/auth_settings.html:51 msgid "Plugin" msgstr "" #: kallithea/templates/admin/auth/auth_settings.html:101 -#: kallithea/templates/admin/defaults/defaults.html:84 -#: kallithea/templates/admin/my_account/my_account_password.html:33 -#: kallithea/templates/admin/my_account/my_account_profile.html:70 -#: kallithea/templates/admin/permissions/permissions_globals.html:108 +#: kallithea/templates/admin/defaults/defaults.html:82 +#: kallithea/templates/admin/my_account/my_account_password.html:36 +#: kallithea/templates/admin/my_account/my_account_profile.html:60 +#: kallithea/templates/admin/permissions/permissions_globals.html:112 #: kallithea/templates/admin/repo_groups/repo_group_add.html:69 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:114 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:42 #: kallithea/templates/admin/repos/repo_edit_permissions.html:101 -#: kallithea/templates/admin/repos/repo_edit_settings.html:134 +#: kallithea/templates/admin/repos/repo_edit_settings.html:127 #: kallithea/templates/admin/settings/settings_hooks.html:53 #: kallithea/templates/admin/user_groups/user_group_add.html:57 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:104 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:60 #: kallithea/templates/admin/users/user_add.html:96 -#: kallithea/templates/admin/users/user_edit_profile.html:122 +#: kallithea/templates/admin/users/user_edit_profile.html:113 #: kallithea/templates/base/default_perms_box.html:64 msgid "Save" msgstr "儲存" #: kallithea/templates/admin/defaults/defaults.html:5 -#: kallithea/templates/admin/defaults/defaults.html:25 +#: kallithea/templates/admin/defaults/defaults.html:11 +#: kallithea/templates/base/base.html:66 #, fuzzy msgid "Repository Defaults" msgstr "個版本庫" -#: kallithea/templates/admin/defaults/defaults.html:11 -#: kallithea/templates/base/base.html:66 -msgid "Defaults" -msgstr "" - -#: kallithea/templates/admin/defaults/defaults.html:35 -#: kallithea/templates/admin/repos/repo_add_base.html:59 +#: kallithea/templates/admin/defaults/defaults.html:33 +#: kallithea/templates/admin/repos/repo_add_base.html:55 #: kallithea/templates/admin/repos/repo_edit_fields.html:7 msgid "Type" msgstr "類型" -#: kallithea/templates/admin/defaults/defaults.html:44 -#: kallithea/templates/admin/repos/repo_add_base.html:77 -#: kallithea/templates/admin/repos/repo_edit_settings.html:82 -#: kallithea/templates/data_table/_dt_elements.html:74 +#: kallithea/templates/admin/defaults/defaults.html:42 +#: kallithea/templates/admin/repos/repo_add_base.html:73 +#: kallithea/templates/admin/repos/repo_edit_settings.html:75 +#: kallithea/templates/data_table/_dt_elements.html:72 msgid "Private repository" msgstr "私有的版本庫" -#: kallithea/templates/admin/defaults/defaults.html:48 -#: kallithea/templates/admin/repos/repo_add_base.html:81 -#: kallithea/templates/admin/repos/repo_edit_settings.html:86 +#: kallithea/templates/admin/defaults/defaults.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:79 #: kallithea/templates/forks/fork.html:72 msgid "" "Private repositories are only visible to people explicitly added as " "collaborators." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:55 -#: kallithea/templates/admin/repos/repo_edit_settings.html:91 +#: kallithea/templates/admin/defaults/defaults.html:53 +#: kallithea/templates/admin/repos/repo_edit_settings.html:84 msgid "Enable statistics" msgstr "啟用統計" -#: kallithea/templates/admin/defaults/defaults.html:59 -#: kallithea/templates/admin/repos/repo_edit_settings.html:95 +#: kallithea/templates/admin/defaults/defaults.html:57 +#: kallithea/templates/admin/repos/repo_edit_settings.html:88 msgid "Enable statistics window on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:65 -#: kallithea/templates/admin/repos/repo_edit_settings.html:100 +#: kallithea/templates/admin/defaults/defaults.html:63 +#: kallithea/templates/admin/repos/repo_edit_settings.html:93 msgid "Enable downloads" msgstr "啟用下載" -#: kallithea/templates/admin/defaults/defaults.html:69 -#: kallithea/templates/admin/repos/repo_edit_settings.html:104 +#: kallithea/templates/admin/defaults/defaults.html:67 +#: kallithea/templates/admin/repos/repo_edit_settings.html:97 msgid "Enable download menu on summary page." msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:75 +#: kallithea/templates/admin/defaults/defaults.html:73 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:34 -#: kallithea/templates/admin/repos/repo_edit_settings.html:109 +#: kallithea/templates/admin/repos/repo_edit_settings.html:102 msgid "Enable locking" msgstr "" -#: kallithea/templates/admin/defaults/defaults.html:79 -#: kallithea/templates/admin/repos/repo_edit_settings.html:113 +#: kallithea/templates/admin/defaults/defaults.html:77 +#: kallithea/templates/admin/repos/repo_edit_settings.html:106 msgid "Enable lock-by-pulling on repository." msgstr "" @@ -2547,6 +2702,12 @@ #: kallithea/templates/admin/gists/index.html:59 #: kallithea/templates/admin/gists/show.html:47 #: kallithea/templates/admin/gists/show.html:49 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 +#: kallithea/templates/admin/users/user_edit_api_keys.html:8 +#: kallithea/templates/admin/users/user_edit_api_keys.html:27 +#: kallithea/templates/admin/users/user_edit_api_keys.html:32 msgid "Expires" msgstr "" @@ -2557,15 +2718,17 @@ #: kallithea/templates/admin/my_account/my_account_api_keys.html:27 #: kallithea/templates/admin/users/user_edit_api_keys.html:8 #: kallithea/templates/admin/users/user_edit_api_keys.html:27 -msgid "never" -msgstr "" +#, fuzzy +#| msgid "Owner" +msgid "Never" +msgstr "擁有者" #: kallithea/templates/admin/gists/edit.html:145 msgid "Update Gist" msgstr "" #: kallithea/templates/admin/gists/edit.html:146 -#: kallithea/templates/changeset/changeset_file_comment.html:89 +#: kallithea/templates/changeset/changeset_file_comment.html:81 msgid "Cancel" msgstr "" @@ -2588,12 +2751,12 @@ #: kallithea/templates/admin/gists/index.html:37 #: kallithea/templates/admin/gists/show.html:25 -#: kallithea/templates/base/base.html:240 +#: kallithea/templates/base/base.html:244 msgid "Create New Gist" msgstr "" #: kallithea/templates/admin/gists/index.html:54 -#: kallithea/templates/data_table/_dt_elements.html:143 +#: kallithea/templates/data_table/_dt_elements.html:141 msgid "Created" msgstr "" @@ -2619,25 +2782,27 @@ msgstr "" #: kallithea/templates/admin/gists/new.html:58 +#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 #: kallithea/templates/admin/my_account/my_account_api_keys.html:70 #: kallithea/templates/admin/my_account/my_account_emails.html:46 -#: kallithea/templates/admin/my_account/my_account_password.html:34 -#: kallithea/templates/admin/my_account/my_account_profile.html:71 -#: kallithea/templates/admin/permissions/permissions_globals.html:109 -#: kallithea/templates/admin/permissions/permissions_ips.html:41 +#: kallithea/templates/admin/my_account/my_account_password.html:37 +#: kallithea/templates/admin/my_account/my_account_profile.html:61 +#: kallithea/templates/admin/permissions/permissions_globals.html:113 +#: kallithea/templates/admin/permissions/permissions_ips.html:39 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:115 #: kallithea/templates/admin/repo_groups/repo_group_edit_settings.html:43 #: kallithea/templates/admin/repos/repo_edit_fields.html:59 #: kallithea/templates/admin/repos/repo_edit_permissions.html:102 -#: kallithea/templates/admin/repos/repo_edit_settings.html:135 +#: kallithea/templates/admin/repos/repo_edit_settings.html:128 #: kallithea/templates/admin/settings/settings_global.html:57 #: kallithea/templates/admin/settings/settings_vcs.html:81 #: kallithea/templates/admin/settings/settings_visual.html:117 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:105 +#: kallithea/templates/admin/users/user_edit_api_keys.html:15 #: kallithea/templates/admin/users/user_edit_api_keys.html:70 #: kallithea/templates/admin/users/user_edit_emails.html:46 #: kallithea/templates/admin/users/user_edit_ips.html:50 -#: kallithea/templates/admin/users/user_edit_profile.html:123 +#: kallithea/templates/admin/users/user_edit_profile.html:114 #: kallithea/templates/base/default_perms_box.html:65 #: kallithea/templates/files/files_add.html:65 #: kallithea/templates/files/files_delete.html:44 @@ -2667,11 +2832,22 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:56 -#: kallithea/templates/admin/repos/repo_edit_advanced.html:76 -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/admin/my_account/my_account_emails.html:19 +#: kallithea/templates/admin/permissions/permissions_ips.html:12 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:75 +#: kallithea/templates/admin/repos/repo_edit_fields.html:18 +#: kallithea/templates/admin/settings/settings_hooks.html:36 +#: kallithea/templates/admin/users/user_edit_emails.html:19 +#: kallithea/templates/admin/users/user_edit_ips.html:22 +#: kallithea/templates/changeset/changeset_file_comment.html:30 +#: kallithea/templates/data_table/_dt_elements.html:129 +#: kallithea/templates/data_table/_dt_elements.html:157 +#: kallithea/templates/data_table/_dt_elements.html:173 +#: kallithea/templates/data_table/_dt_elements.html:189 #: kallithea/templates/files/files_source.html:39 #: kallithea/templates/files/files_source.html:42 #: kallithea/templates/files/files_source.html:45 +#: kallithea/templates/pullrequests/pullrequest_data.html:20 msgid "Delete" msgstr "移除" @@ -2680,9 +2856,18 @@ msgstr "" #: kallithea/templates/admin/gists/show.html:63 -#: kallithea/templates/changeset/changeset_file_comment.html:91 -#: kallithea/templates/changeset/changeset_file_comment.html:207 +#: kallithea/templates/base/perms_summary.html:43 +#: kallithea/templates/base/perms_summary.html:79 +#: kallithea/templates/base/perms_summary.html:81 +#: kallithea/templates/changeset/changeset_file_comment.html:83 +#: kallithea/templates/changeset/changeset_file_comment.html:192 +#: kallithea/templates/data_table/_dt_elements.html:122 +#: kallithea/templates/data_table/_dt_elements.html:123 +#: kallithea/templates/data_table/_dt_elements.html:150 +#: kallithea/templates/data_table/_dt_elements.html:151 +#: kallithea/templates/data_table/_dt_elements.html:165 #: kallithea/templates/data_table/_dt_elements.html:167 +#: kallithea/templates/data_table/_dt_elements.html:181 #: kallithea/templates/data_table/_dt_elements.html:183 #: kallithea/templates/files/diff_2way.html:56 #: kallithea/templates/files/files_source.html:41 @@ -2708,7 +2893,7 @@ #: kallithea/templates/admin/my_account/my_account.html:5 #: kallithea/templates/admin/my_account/my_account.html:9 -#: kallithea/templates/base/base.html:346 +#: kallithea/templates/base/base.html:350 msgid "My Account" msgstr "我的帳號" @@ -2717,27 +2902,35 @@ msgid "Profile" msgstr "" -#: kallithea/templates/admin/my_account/my_account.html:37 -#: kallithea/templates/admin/users/user_edit.html:30 -msgid "API Keys" +#: kallithea/templates/admin/my_account/my_account.html:36 +msgid "Email Addresses" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:38 -msgid "My Emails" +#: kallithea/templates/admin/users/user_edit.html:31 +msgid "API Keys" msgstr "" #: kallithea/templates/admin/my_account/my_account.html:39 -msgid "My Repositories" -msgstr "" +#, fuzzy +#| msgid "repositories" +msgid "Owned Repositories" +msgstr "個版本庫" #: kallithea/templates/admin/my_account/my_account.html:40 #: kallithea/templates/journal/journal.html:53 -msgid "Watched" -msgstr "" +#, fuzzy +#| msgid "Create repositories" +msgid "Watched Repositories" +msgstr "建立版本庫" #: kallithea/templates/admin/my_account/my_account.html:41 +#: kallithea/templates/admin/permissions/permissions.html:30 +#: kallithea/templates/admin/user_groups/user_group_edit.html:32 +#: kallithea/templates/admin/users/user_edit.html:34 #, fuzzy -msgid "My Permissions" +#| msgid "Permissions" +msgid "Show Permissions" msgstr "權限" #: kallithea/templates/admin/my_account/my_account_api_keys.html:6 @@ -2745,56 +2938,45 @@ msgid "Built-in" msgstr "" -#: kallithea/templates/admin/my_account/my_account_api_keys.html:8 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:27 -#: kallithea/templates/admin/my_account/my_account_api_keys.html:32 -#: kallithea/templates/admin/users/user_edit_api_keys.html:8 -#: kallithea/templates/admin/users/user_edit_api_keys.html:27 -#: kallithea/templates/admin/users/user_edit_api_keys.html:32 -msgid "expires" -msgstr "" - #: kallithea/templates/admin/my_account/my_account_api_keys.html:14 #: kallithea/templates/admin/users/user_edit_api_keys.html:14 #, python-format -msgid "Confirm to reset this api key: %s" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_api_keys.html:15 -#: kallithea/templates/admin/users/user_edit_api_keys.html:15 -msgid "reset" +msgid "Confirm to reset this API key: %s" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:30 #: kallithea/templates/admin/users/user_edit_api_keys.html:30 -msgid "expired" +msgid "Expired" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:40 #: kallithea/templates/admin/users/user_edit_api_keys.html:40 -#, python-format -msgid "Confirm to remove this api key: %s" -msgstr "" +#, fuzzy, python-format +#| msgid "Confirm to remove current statistics." +msgid "Confirm to remove this API key: %s" +msgstr "確認移除目前的統計" #: kallithea/templates/admin/my_account/my_account_api_keys.html:42 #: kallithea/templates/admin/users/user_edit_api_keys.html:42 -msgid "remove" -msgstr "" +#, fuzzy +#| msgid "file removed" +msgid "Remove" +msgstr "移除檔案" #: kallithea/templates/admin/my_account/my_account_api_keys.html:49 #: kallithea/templates/admin/users/user_edit_api_keys.html:49 -msgid "No additional api keys specified" +msgid "No additional API keys specified" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:61 #: kallithea/templates/admin/users/user_edit_api_keys.html:61 -msgid "New api key" +msgid "New API key" msgstr "" #: kallithea/templates/admin/my_account/my_account_api_keys.html:69 #: kallithea/templates/admin/my_account/my_account_emails.html:45 -#: kallithea/templates/admin/permissions/permissions_ips.html:40 -#: kallithea/templates/admin/repos/repo_add_base.html:85 +#: kallithea/templates/admin/permissions/permissions_ips.html:38 +#: kallithea/templates/admin/repos/repo_add_base.html:81 #: kallithea/templates/admin/repos/repo_edit_fields.html:58 #: kallithea/templates/admin/users/user_edit_api_keys.html:69 #: kallithea/templates/admin/users/user_edit_emails.html:45 @@ -2807,19 +2989,6 @@ msgid "Primary" msgstr "" -#: kallithea/templates/admin/my_account/my_account_emails.html:19 -#: kallithea/templates/admin/permissions/permissions_ips.html:14 -#: kallithea/templates/admin/repos/repo_edit_fields.html:18 -#: kallithea/templates/admin/settings/settings_hooks.html:36 -#: kallithea/templates/admin/users/user_edit_emails.html:19 -#: kallithea/templates/admin/users/user_edit_ips.html:22 -#: kallithea/templates/data_table/_dt_elements.html:131 -#: kallithea/templates/data_table/_dt_elements.html:159 -#: kallithea/templates/data_table/_dt_elements.html:175 -#: kallithea/templates/data_table/_dt_elements.html:191 -msgid "delete" -msgstr "刪除" - #: kallithea/templates/admin/my_account/my_account_emails.html:20 #: kallithea/templates/admin/users/user_edit_emails.html:20 #, python-format @@ -2841,19 +3010,24 @@ msgid "Change Your Account Password" msgstr "忘記您的密碼?" -#: kallithea/templates/admin/my_account/my_account_password.html:7 +#: kallithea/templates/admin/my_account/my_account_password.html:10 msgid "Current password" msgstr "" -#: kallithea/templates/admin/my_account/my_account_password.html:16 -#: kallithea/templates/admin/users/user_edit_profile.html:69 +#: kallithea/templates/admin/my_account/my_account_password.html:19 +#: kallithea/templates/admin/users/user_edit_profile.html:60 msgid "New password" msgstr "新密碼" -#: kallithea/templates/admin/my_account/my_account_password.html:25 +#: kallithea/templates/admin/my_account/my_account_password.html:28 msgid "Confirm new password" msgstr "" +#: kallithea/templates/admin/my_account/my_account_password.html:45 +#, python-format +msgid "This account is managed with %s and the password cannot be changed here" +msgstr "" + #: kallithea/templates/admin/my_account/my_account_profile.html:11 msgid "Change your avatar at" msgstr "修改您的頭像於" @@ -2874,13 +3048,7 @@ #: kallithea/templates/admin/my_account/my_account_profile.html:16 #: kallithea/templates/admin/users/user_edit_profile.html:15 -msgid "current IP" -msgstr "" - -#: kallithea/templates/admin/my_account/my_account_profile.html:28 -msgid "" -"Your user is in an external Source of Record; some details cannot be " -"managed here" +msgid "Current IP" msgstr "" #: kallithea/templates/admin/my_account/my_account_repos.html:1 @@ -2918,7 +3086,7 @@ msgstr "" #: kallithea/templates/admin/notifications/notifications.html:26 -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 msgid "Pull Requests" msgstr "" @@ -2936,22 +3104,16 @@ msgstr "" #: kallithea/templates/admin/notifications/show_notification.html:9 -#: kallithea/templates/base/base.html:345 +#: kallithea/templates/base/base.html:349 msgid "Notifications" msgstr "" #: kallithea/templates/admin/permissions/permissions.html:5 +#: kallithea/templates/admin/permissions/permissions.html:11 +#: kallithea/templates/base/base.html:64 #, fuzzy -msgid "Permissions Administration" -msgstr "權限管理員" - -#: kallithea/templates/admin/permissions/permissions.html:11 -#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 -#: kallithea/templates/admin/repos/repo_edit.html:43 -#: kallithea/templates/admin/user_groups/user_group_edit.html:32 -#: kallithea/templates/base/base.html:64 -msgid "Permissions" -msgstr "權限" +msgid "Default Permissions" +msgstr "預設權限" #: kallithea/templates/admin/permissions/permissions.html:28 #: kallithea/templates/admin/settings/settings.html:29 @@ -2959,14 +3121,10 @@ msgstr "" #: kallithea/templates/admin/permissions/permissions.html:29 -#: kallithea/templates/admin/users/user_edit.html:34 +#: kallithea/templates/admin/users/user_edit.html:32 msgid "IP Whitelist" msgstr "" -#: kallithea/templates/admin/permissions/permissions.html:30 -msgid "Overview" -msgstr "" - #: kallithea/templates/admin/permissions/permissions_globals.html:7 msgid "Anonymous access" msgstr "訪客權限" @@ -2978,23 +3136,27 @@ "%s user permissions." msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#: kallithea/templates/admin/permissions/permissions_globals.html:25 msgid "" "All default permissions on each repository will be reset to chosen " "permission, note that all custom default permission on repositories will " "be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:26 +#, fuzzy +#| msgid "Location of repositories" +msgid "Apply to all existing repositories" +msgstr "建立版本庫" + #: kallithea/templates/admin/permissions/permissions_globals.html:27 -#: kallithea/templates/admin/permissions/permissions_globals.html:40 -#: kallithea/templates/admin/permissions/permissions_globals.html:54 -msgid "Overwrite existing settings" +msgid "Permissions for the Default user on new repositories." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:32 -#: kallithea/templates/admin/repos/repo_add_base.html:41 -#: kallithea/templates/admin/repos/repo_edit_settings.html:42 -#: kallithea/templates/data_table/_dt_elements.html:204 +#: kallithea/templates/admin/repos/repo_add_base.html:37 +#: kallithea/templates/admin/repos/repo_edit_settings.html:35 +#: kallithea/templates/data_table/_dt_elements.html:202 #: kallithea/templates/forks/fork.html:48 msgid "Repository group" msgstr "版本庫群組" @@ -3006,72 +3168,102 @@ "will be lost" msgstr "" +#: kallithea/templates/admin/permissions/permissions_globals.html:40 +msgid "Apply to all existing repository groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:41 +msgid "Permissions for the Default user on new repository groups." +msgstr "" + #: kallithea/templates/admin/permissions/permissions_globals.html:46 -#: kallithea/templates/data_table/_dt_elements.html:211 +#: kallithea/templates/data_table/_dt_elements.html:209 msgid "User group" msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:53 msgid "" "All default permissions on each user group will be reset to chosen " -"permission, note that all custom default permission on repository groups " -"will be lost" +"permission, note that all custom default permission on user groups will " +"be lost" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:54 +msgid "Apply to all existing user groups" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:55 +msgid "Permissions for the Default user on new user groups." msgstr "" #: kallithea/templates/admin/permissions/permissions_globals.html:60 -msgid "Repository creation" +#, fuzzy +#| msgid "Repository creation" +msgid "Top level repository creation" msgstr "版本庫建立" -#: kallithea/templates/admin/permissions/permissions_globals.html:68 +#: kallithea/templates/admin/permissions/permissions_globals.html:64 +msgid "Enable this to allow non-admins to create repositories at the top level." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:65 +msgid "" +"Note: This will also give all users API access to create repositories " +"everywhere. That might change in future versions." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:70 msgid "Repository creation with group write access" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:72 +#: kallithea/templates/admin/permissions/permissions_globals.html:74 msgid "" -"Write permission to a repository group allows creating repositories " -"inside that group." -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_globals.html:77 +"With this, write permission to a repository group allows creating " +"repositories inside that group. Without this, group write permissions " +"mean nothing." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:79 msgid "User group creation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:85 +#: kallithea/templates/admin/permissions/permissions_globals.html:83 +msgid "Enable this to allow non-admins to create user groups." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:88 msgid "Repository forking" msgstr "" -#: kallithea/templates/admin/permissions/permissions_globals.html:93 +#: kallithea/templates/admin/permissions/permissions_globals.html:92 +msgid "Enable this to allow non-admins to fork repositories." +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_globals.html:97 msgid "Registration" msgstr "註冊" -#: kallithea/templates/admin/permissions/permissions_globals.html:101 +#: kallithea/templates/admin/permissions/permissions_globals.html:105 msgid "External auth account activation" msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:1 -msgid "Default IP Whitelist for All Users" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:15 +#: kallithea/templates/admin/permissions/permissions_ips.html:13 #: kallithea/templates/admin/users/user_edit_ips.html:23 -#, python-format -msgid "Confirm to delete this ip: %s" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_ips.html:21 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm to delete this IP address: %s" +msgstr "" + +#: kallithea/templates/admin/permissions/permissions_ips.html:19 #: kallithea/templates/admin/users/user_edit_ips.html:30 msgid "All IP addresses are allowed." msgstr "" -#: kallithea/templates/admin/permissions/permissions_ips.html:32 +#: kallithea/templates/admin/permissions/permissions_ips.html:30 #: kallithea/templates/admin/users/user_edit_ips.html:42 -msgid "New ip address" -msgstr "" - -#: kallithea/templates/admin/permissions/permissions_perms.html:1 -#, fuzzy -msgid "Default User Permissions Overview" -msgstr "預設權限" +msgid "New IP address" +msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:11 #: kallithea/templates/admin/repo_groups/repo_group_edit.html:11 @@ -3094,12 +3286,12 @@ msgstr "父群組" #: kallithea/templates/admin/repo_groups/repo_group_add.html:60 -#: kallithea/templates/admin/repos/repo_add_base.html:50 +#: kallithea/templates/admin/repos/repo_add_base.html:46 msgid "Copy parent group permissions" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_add.html:64 -#: kallithea/templates/admin/repos/repo_add_base.html:54 +#: kallithea/templates/admin/repos/repo_add_base.html:50 msgid "Copy permission set from parent repository group." msgstr "" @@ -3117,19 +3309,25 @@ #: kallithea/templates/admin/repos/repo_edit.html:40 #: kallithea/templates/admin/settings/settings.html:11 #: kallithea/templates/admin/user_groups/user_group_edit.html:29 -#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:154 -#: kallithea/templates/data_table/_dt_elements.html:43 -#: kallithea/templates/data_table/_dt_elements.html:47 +#: kallithea/templates/base/base.html:67 kallithea/templates/base/base.html:158 +#: kallithea/templates/data_table/_dt_elements.html:45 +#: kallithea/templates/data_table/_dt_elements.html:49 msgid "Settings" msgstr "設定" #: kallithea/templates/admin/repo_groups/repo_group_edit.html:41 #: kallithea/templates/admin/repos/repo_edit.html:46 #: kallithea/templates/admin/user_groups/user_group_edit.html:30 -#: kallithea/templates/admin/users/user_edit.html:31 +#: kallithea/templates/admin/users/user_edit.html:33 msgid "Advanced" msgstr "" +#: kallithea/templates/admin/repo_groups/repo_group_edit.html:42 +#: kallithea/templates/admin/repos/repo_edit.html:43 +#: kallithea/templates/admin/user_groups/user_group_edit.html:31 +msgid "Permissions" +msgstr "權限" + #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:1 #, python-format msgid "Repository Group: %s" @@ -3150,12 +3348,12 @@ #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:9 #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:7 #: kallithea/templates/admin/users/user_edit_advanced.html:8 -#: kallithea/templates/pullrequests/pullrequest_show.html:147 +#: kallithea/templates/pullrequests/pullrequest_show.html:146 msgid "Created on" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:192 +#: kallithea/templates/data_table/_dt_elements.html:190 #, python-format msgid "Confirm to delete this group: %s with %s repository" msgid_plural "Confirm to delete this group: %s with %s repositories" @@ -3165,38 +3363,10 @@ msgid "Delete this repository group" msgstr "" -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:7 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:8 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:7 -#: kallithea/templates/base/perms_summary.html:14 -msgid "none" -msgstr "無" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:8 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:9 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:8 -#: kallithea/templates/base/perms_summary.html:15 -msgid "read" -msgstr "讀" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:9 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:10 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:9 -#: kallithea/templates/base/perms_summary.html:16 -msgid "write" -msgstr "寫" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:10 -#: kallithea/templates/admin/repos/repo_edit_permissions.html:11 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:10 -#: kallithea/templates/base/perms_summary.html:17 -msgid "admin" -msgstr "管理員" - #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:11 #: kallithea/templates/admin/repos/repo_edit_permissions.html:12 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:11 -msgid "user/user group" +msgid "User/User Group" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:28 @@ -3205,8 +3375,10 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:37 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:28 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:45 -msgid "default" -msgstr "" +#, fuzzy +#| msgid "delete" +msgid "Default" +msgstr "刪除" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:34 #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:71 @@ -3214,12 +3386,7 @@ #: kallithea/templates/admin/repos/repo_edit_permissions.html:68 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:34 #: kallithea/templates/admin/user_groups/user_group_edit_perms.html:71 -msgid "revoke" -msgstr "" - -#: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:47 -#: kallithea/templates/admin/user_groups/user_group_edit_perms.html:47 -msgid "delegated admin" +msgid "Revoke" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:97 @@ -3229,7 +3396,7 @@ msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:103 -msgid "apply to children" +msgid "Apply to children" msgstr "" #: kallithea/templates/admin/repo_groups/repo_group_edit_perms.html:107 @@ -3280,42 +3447,41 @@ msgid "Number of Top-level Repositories" msgstr "建立版本庫" -#: kallithea/templates/admin/repos/repo_add_base.html:14 -msgid "Import existing repository ?" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:23 -#: kallithea/templates/summary/summary.html:29 -msgid "Clone from" -msgstr "複製由" - -#: kallithea/templates/admin/repos/repo_add_base.html:27 -msgid "Optional URL from which repository should be cloned." -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:36 -#: kallithea/templates/admin/repos/repo_edit_settings.html:76 +#: kallithea/templates/admin/repos/repo_add_base.html:17 +#, fuzzy +#| msgid "private repository" +msgid "Clone remote repository" +msgstr "私有版本庫" + +#: kallithea/templates/admin/repos/repo_add_base.html:22 +msgid "" +"Optional: URL of a remote repository. If set, the repository will be " +"created as a clone from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_add_base.html:32 +#: kallithea/templates/admin/repos/repo_edit_settings.html:69 #: kallithea/templates/forks/fork.html:42 msgid "Keep it short and to the point. Use a README file for longer descriptions." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:45 -#: kallithea/templates/admin/repos/repo_edit_settings.html:46 +#: kallithea/templates/admin/repos/repo_add_base.html:41 +#: kallithea/templates/admin/repos/repo_edit_settings.html:39 #: kallithea/templates/forks/fork.html:52 msgid "Optionally select a group to put this repository into." msgstr "" -#: kallithea/templates/admin/repos/repo_add_base.html:63 +#: kallithea/templates/admin/repos/repo_add_base.html:59 msgid "Type of repository to create." msgstr "" +#: kallithea/templates/admin/repos/repo_add_base.html:64 +#: kallithea/templates/admin/repos/repo_edit_settings.html:44 +#: kallithea/templates/forks/fork.html:58 +msgid "Landing revision" +msgstr "" + #: kallithea/templates/admin/repos/repo_add_base.html:68 -#: kallithea/templates/admin/repos/repo_edit_settings.html:51 -#: kallithea/templates/forks/fork.html:58 -msgid "Landing revision" -msgstr "" - -#: kallithea/templates/admin/repos/repo_add_base.html:72 msgid "" "Default revision for files page, downloads, full text search index and " "readme generation" @@ -3362,8 +3528,8 @@ #: kallithea/templates/admin/repos/repo_edit.html:58 #: kallithea/templates/summary/statistics.html:8 -#: kallithea/templates/summary/summary.html:174 -#: kallithea/templates/summary/summary.html:175 +#: kallithea/templates/summary/summary.html:171 +#: kallithea/templates/summary/summary.html:172 msgid "Statistics" msgstr "統計" @@ -3387,51 +3553,51 @@ msgid "Public Journal Visibility" msgstr "公開日誌" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:30 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:29 msgid "Remove from public journal" msgstr "從公開日誌移除" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:35 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:34 #, fuzzy msgid "Add to Public Journal" msgstr "公開日誌" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:41 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:40 msgid "" "All actions done in this repository will be visible to everyone in the " "public journal." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:47 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:46 #, fuzzy msgid "Change Locking" msgstr "修改紀錄" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:53 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:52 #, fuzzy msgid "Confirm to unlock repository." msgstr "確認廢止版本庫快取" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:55 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:54 #, fuzzy msgid "Unlock Repository" msgstr "公開的版本庫" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:61 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:60 #, fuzzy msgid "Confirm to lock repository." msgstr "確認廢止版本庫快取" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:63 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:62 #, fuzzy msgid "Lock Repository" msgstr "公開的版本庫" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:65 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:64 msgid "Repository is not locked" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:69 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:68 msgid "" "Force locking on the repository. Works only when anonymous access is " "disabled. Triggering a pull locks the repository. The user who is " @@ -3439,32 +3605,32 @@ "unlock it by doing a push." msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:80 -#: kallithea/templates/data_table/_dt_elements.html:132 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:79 +#: kallithea/templates/data_table/_dt_elements.html:130 #, python-format msgid "Confirm to delete this repository: %s" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:82 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:81 #, fuzzy msgid "Delete this Repository" msgstr "公開的版本庫" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:84 #, fuzzy, python-format msgid "This repository has %s fork" msgid_plural "This repository has %s forks" msgstr[0] "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:85 msgid "Detach forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:87 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:86 msgid "Delete forks" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_advanced.html:91 +#: kallithea/templates/admin/repos/repo_edit_advanced.html:90 msgid "" "The deleted repository will be moved away and hidden until the " "administrator expires it. The administrator can both permanently delete " @@ -3504,8 +3670,8 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:49 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:24 #: kallithea/templates/admin/user_groups/user_groups.html:49 -#: kallithea/templates/admin/users/user_add.html:88 -#: kallithea/templates/admin/users/user_edit_profile.html:105 +#: kallithea/templates/admin/users/user_add.html:86 +#: kallithea/templates/admin/users/user_edit_profile.html:96 #: kallithea/templates/admin/users/users.html:54 msgid "Active" msgstr "啟用" @@ -3544,29 +3710,38 @@ msgstr "" #: kallithea/templates/admin/repos/repo_edit_permissions.html:21 -msgid "private repository" +#, fuzzy +#| msgid "private repository" +msgid "Private Repository" msgstr "私有版本庫" #: kallithea/templates/admin/repos/repo_edit_remote.html:3 #, fuzzy -msgid "Remote URL" -msgstr "複製連結" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Pull Changes from Remote Location" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:8 -msgid "Confirm to pull changes from remote side." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_remote.html:14 -msgid "This repository does not have a remote URL set." +#| msgid "private repository" +msgid "Remote repository URL" +msgstr "私有版本庫" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:9 +#, fuzzy, python-format +#| msgid "Changes on %s repository" +msgid "Pull Changes from Remote Repository" +msgstr "修改於版本庫 %s" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:11 +#, fuzzy +#| msgid "Confirm to unlock repository." +msgid "Confirm to pull changes from remote repository." +msgstr "確認廢止版本庫快取" + +#: kallithea/templates/admin/repos/repo_edit_remote.html:17 +msgid "This repository does not have a remote repository URL." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 -msgid "Non-changeable id" -msgstr "" +#, fuzzy +#| msgid "private repository" +msgid "Permanent Repository ID" +msgstr "私有版本庫" #: kallithea/templates/admin/repos/repo_edit_settings.html:11 msgid "What is that?" @@ -3580,44 +3755,35 @@ msgid "" "In case this repository is renamed or moved into another group the " "repository URL changes.\n" -" Using the above URL guarantees that this " -"repository will always be accessible under such URL.\n" -" Useful for CI systems, or any other cases " -"that you need to hardcode the URL into 3rd party service." +" Using the above permanent URL guarantees " +"that this repository always will be accessible on that URL.\n" +" This is useful for CI systems, or any " +"other cases that you need to hardcode the URL into a 3rd party service." msgstr "" #: kallithea/templates/admin/repos/repo_edit_settings.html:21 -#: kallithea/templates/summary/summary.html:72 +#, fuzzy +#| msgid "private repository" +msgid "Remote repository" +msgstr "私有版本庫" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:25 #, fuzzy -msgid "Clone URL" -msgstr "複製連結" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:27 -#: kallithea/templates/base/perms_summary.html:43 -#: kallithea/templates/base/perms_summary.html:79 -#: kallithea/templates/base/perms_summary.html:81 -#: kallithea/templates/data_table/_dt_elements.html:124 -#: kallithea/templates/data_table/_dt_elements.html:125 -#: kallithea/templates/data_table/_dt_elements.html:152 -#: kallithea/templates/data_table/_dt_elements.html:153 -#: kallithea/templates/data_table/_dt_elements.html:169 -#: kallithea/templates/data_table/_dt_elements.html:185 -msgid "edit" -msgstr "編輯" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:30 -msgid "new value" -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:37 -msgid "URL used for doing remote pulls." -msgstr "" - -#: kallithea/templates/admin/repos/repo_edit_settings.html:55 +#| msgid "Repository" +msgid "Repository URL" +msgstr "版本庫" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:29 +msgid "" +"Optional: URL of a remote repository. If set, the repository can be " +"pulled from this URL." +msgstr "" + +#: kallithea/templates/admin/repos/repo_edit_settings.html:48 msgid "Default revision for files page, downloads, whoosh and readme" msgstr "" -#: kallithea/templates/admin/repos/repo_edit_settings.html:65 +#: kallithea/templates/admin/repos/repo_edit_settings.html:58 msgid "Change owner of this repository." msgstr "" @@ -3678,55 +3844,11 @@ msgid "System Info" msgstr "" -#: kallithea/templates/admin/settings/settings_email.html:4 -msgid "Email prefix" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:5 -msgid "Kallithea email from" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:6 -msgid "Error email from" -msgstr "" - #: kallithea/templates/admin/settings/settings_email.html:7 -msgid "Error email recipients" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:9 -msgid "SMTP server" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:10 -msgid "SMTP username" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:11 -msgid "SMTP password" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:12 -msgid "SMTP port" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:14 -msgid "SMTP use TLS" +msgid "Send test email to" msgstr "" #: kallithea/templates/admin/settings/settings_email.html:15 -msgid "SMTP use SSL" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:16 -msgid "SMTP auth" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:31 -msgid "Send test email to" -msgstr "" - -#: kallithea/templates/admin/settings/settings_email.html:39 msgid "Send" msgstr "" @@ -3801,13 +3923,13 @@ msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:11 -msgid "Destroy old data" +msgid "Delete records of missing repositories" msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:13 msgid "" -"Check this option to remove references to repositories that no longer " -"exist in on the filesystem." +"Check this option to remove all comments, pull requests and other records" +" related to repositories that no longer exist in the filesystem." msgstr "" #: kallithea/templates/admin/settings/settings_mapping.html:17 @@ -3828,7 +3950,7 @@ "Current hooks will be updated to the latest version." msgstr "" -#: kallithea/templates/admin/settings/settings_mapping.html:32 +#: kallithea/templates/admin/settings/settings_mapping.html:30 msgid "Rescan Repositories" msgstr "" @@ -3855,38 +3977,42 @@ msgstr "" #: kallithea/templates/admin/settings/settings_system.html:4 -msgid "check for updates" +msgid "Check for updates" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:5 -msgid "Python version" +msgid "Kallithea configuration file" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:6 -msgid "Platform" +msgid "Python version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:7 -msgid "Git version" +msgid "Platform" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:8 -msgid "Git path" -msgstr "" - -#: kallithea/templates/admin/settings/settings_system.html:9 -msgid "Upgrade info endpoint" +msgid "Git version" msgstr "" #: kallithea/templates/admin/settings/settings_system.html:9 +msgid "Git path" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 +msgid "Upgrade info endpoint" +msgstr "" + +#: kallithea/templates/admin/settings/settings_system.html:10 msgid "Note: please make sure this server can access this URL" msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:14 +#: kallithea/templates/admin/settings/settings_system.html:15 msgid "Checking for updates..." msgstr "" -#: kallithea/templates/admin/settings/settings_system.html:22 +#: kallithea/templates/admin/settings/settings_system.html:23 msgid "Python Packages" msgstr "" @@ -4040,11 +4166,11 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:80 -msgid "Show public repo icon on repositories" +msgid "Show public repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:84 -msgid "Show private repo icon on repositories" +msgid "Show private repository icon on repositories" msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:86 @@ -4052,8 +4178,10 @@ msgstr "" #: kallithea/templates/admin/settings/settings_visual.html:92 -msgid "Meta-Tagging" -msgstr "" +#, fuzzy +#| msgid "Settings" +msgid "Meta Tagging" +msgstr "設定" #: kallithea/templates/admin/settings/settings_visual.html:97 msgid "Stylify recognised meta tags:" @@ -4071,6 +4199,7 @@ #: kallithea/templates/admin/user_groups/user_group_add.html:10 #: kallithea/templates/admin/user_groups/user_group_edit.html:11 +#: kallithea/templates/admin/user_groups/user_groups.html:10 #: kallithea/templates/base/base.html:63 kallithea/templates/base/base.html:83 msgid "User Groups" msgstr "" @@ -4090,24 +4219,25 @@ msgid "%s user group settings" msgstr "" -#: kallithea/templates/admin/user_groups/user_group_edit.html:31 -msgid "Default permissions" -msgstr "預設權限" - #: kallithea/templates/admin/user_groups/user_group_edit.html:33 +#, fuzzy +#| msgid "members" +msgid "Show Members" +msgstr "成員" + +#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 +#, python-format +msgid "User Group: %s" +msgstr "" + #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:6 #: kallithea/templates/admin/user_groups/user_group_edit_settings.html:32 #: kallithea/templates/admin/user_groups/user_groups.html:48 msgid "Members" msgstr "成員" -#: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:1 -#, python-format -msgid "User Group: %s" -msgstr "" - #: kallithea/templates/admin/user_groups/user_group_edit_advanced.html:19 -#: kallithea/templates/data_table/_dt_elements.html:176 +#: kallithea/templates/data_table/_dt_elements.html:174 #, python-format msgid "Confirm to delete this user group: %s" msgstr "" @@ -4133,10 +4263,6 @@ msgid "User Groups Administration" msgstr "使用者管理員" -#: kallithea/templates/admin/user_groups/user_groups.html:10 -msgid "user groups" -msgstr "" - #: kallithea/templates/admin/users/user_add.html:5 msgid "Add user" msgstr "新增使用者" @@ -4162,12 +4288,7 @@ msgid "%s user settings" msgstr "" -#: kallithea/templates/admin/users/user_edit.html:32 -#, fuzzy -msgid "Default Permissions" -msgstr "預設權限" - -#: kallithea/templates/admin/users/user_edit.html:33 +#: kallithea/templates/admin/users/user_edit.html:30 msgid "Emails" msgstr "" @@ -4177,7 +4298,7 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:7 -#: kallithea/templates/admin/users/user_edit_profile.html:51 +#: kallithea/templates/admin/users/user_edit_profile.html:42 msgid "Source of Record" msgstr "" @@ -4187,11 +4308,11 @@ msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:10 -msgid "Member of User groups" +msgid "Member of User Groups" msgstr "" #: kallithea/templates/admin/users/user_edit_advanced.html:21 -#: kallithea/templates/data_table/_dt_elements.html:160 +#: kallithea/templates/data_table/_dt_elements.html:158 #, python-format msgid "Confirm to delete this user: %s" msgstr "" @@ -4213,18 +4334,11 @@ msgid "Missing email, please update this user email address." msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:27 -#, python-format -msgid "" -"This user is in an external Source of Record (%s); some details cannot be" -" managed here." -msgstr "" - -#: kallithea/templates/admin/users/user_edit_profile.html:60 +#: kallithea/templates/admin/users/user_edit_profile.html:51 msgid "Name in Source of Record" msgstr "" -#: kallithea/templates/admin/users/user_edit_profile.html:78 +#: kallithea/templates/admin/users/user_edit_profile.html:69 msgid "New password confirmation" msgstr "" @@ -4246,47 +4360,55 @@ msgid "Support" msgstr "" -#: kallithea/templates/base/base.html:122 +#: kallithea/templates/base/base.html:90 +msgid "Mercurial repository" +msgstr "Mercurial 版本庫" + +#: kallithea/templates/base/base.html:93 +msgid "Git repository" +msgstr "Git 版本庫" + +#: kallithea/templates/base/base.html:126 msgid "Create Fork" msgstr "" -#: kallithea/templates/base/base.html:133 -#: kallithea/templates/data_table/_dt_elements.html:11 -#: kallithea/templates/data_table/_dt_elements.html:15 +#: kallithea/templates/base/base.html:137 +#: kallithea/templates/data_table/_dt_elements.html:13 +#: kallithea/templates/data_table/_dt_elements.html:17 #: kallithea/templates/summary/summary.html:8 msgid "Summary" msgstr "概況" -#: kallithea/templates/base/base.html:135 -#: kallithea/templates/base/base.html:137 +#: kallithea/templates/base/base.html:139 +#: kallithea/templates/base/base.html:141 #: kallithea/templates/changelog/changelog.html:14 -#: kallithea/templates/data_table/_dt_elements.html:19 -#: kallithea/templates/data_table/_dt_elements.html:23 +#: kallithea/templates/data_table/_dt_elements.html:21 +#: kallithea/templates/data_table/_dt_elements.html:25 msgid "Changelog" msgstr "修改紀錄" -#: kallithea/templates/base/base.html:139 -#: kallithea/templates/data_table/_dt_elements.html:27 -#: kallithea/templates/data_table/_dt_elements.html:31 +#: kallithea/templates/base/base.html:143 +#: kallithea/templates/data_table/_dt_elements.html:29 +#: kallithea/templates/data_table/_dt_elements.html:33 #: kallithea/templates/files/files.html:11 msgid "Files" msgstr "檔案" -#: kallithea/templates/base/base.html:141 +#: kallithea/templates/base/base.html:145 msgid "Switch To" msgstr "" -#: kallithea/templates/base/base.html:148 -#: kallithea/templates/base/base.html:150 +#: kallithea/templates/base/base.html:152 +#: kallithea/templates/base/base.html:154 msgid "Options" msgstr "選項" -#: kallithea/templates/base/base.html:158 +#: kallithea/templates/base/base.html:162 #: kallithea/templates/forks/forks_data.html:21 msgid "Compare Fork" msgstr "" -#: kallithea/templates/base/base.html:160 +#: kallithea/templates/base/base.html:164 #: kallithea/templates/bookmarks/bookmarks.html:56 #: kallithea/templates/bookmarks/bookmarks_data.html:13 #: kallithea/templates/branches/branches.html:56 @@ -4296,129 +4418,125 @@ msgid "Compare" msgstr "" -#: kallithea/templates/base/base.html:162 -#: kallithea/templates/base/base.html:250 +#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:254 #: kallithea/templates/search/search.html:14 #: kallithea/templates/search/search.html:54 msgid "Search" msgstr "搜尋" -#: kallithea/templates/base/base.html:166 +#: kallithea/templates/base/base.html:170 msgid "Unlock" msgstr "" -#: kallithea/templates/base/base.html:168 +#: kallithea/templates/base/base.html:172 msgid "Lock" msgstr "" -#: kallithea/templates/base/base.html:176 -msgid "Follow" -msgstr "" - -#: kallithea/templates/base/base.html:177 -msgid "Unfollow" -msgstr "" - #: kallithea/templates/base/base.html:180 -#: kallithea/templates/data_table/_dt_elements.html:35 -#: kallithea/templates/data_table/_dt_elements.html:39 +msgid "Follow" +msgstr "" + +#: kallithea/templates/base/base.html:181 +msgid "Unfollow" +msgstr "" + +#: kallithea/templates/base/base.html:184 +#: kallithea/templates/data_table/_dt_elements.html:37 +#: kallithea/templates/data_table/_dt_elements.html:41 #: kallithea/templates/forks/fork.html:9 msgid "Fork" msgstr "分支" -#: kallithea/templates/base/base.html:181 +#: kallithea/templates/base/base.html:185 #: kallithea/templates/pullrequests/pullrequest.html:88 msgid "Create Pull Request" msgstr "" -#: kallithea/templates/base/base.html:186 +#: kallithea/templates/base/base.html:190 #, python-format msgid "Show Pull Requests for %s" msgstr "" -#: kallithea/templates/base/base.html:224 +#: kallithea/templates/base/base.html:228 msgid "Show recent activity" msgstr "" -#: kallithea/templates/base/base.html:225 -#: kallithea/templates/journal/journal.html:4 -#: kallithea/templates/journal/journal.html:12 -msgid "Journal" -msgstr "日誌" - -#: kallithea/templates/base/base.html:230 -#: kallithea/templates/base/base.html:231 +#: kallithea/templates/base/base.html:234 +#: kallithea/templates/base/base.html:235 msgid "Public journal" msgstr "公開日誌" -#: kallithea/templates/base/base.html:236 +#: kallithea/templates/base/base.html:240 msgid "Show public gists" msgstr "" -#: kallithea/templates/base/base.html:237 -msgid "Gists" -msgstr "" - #: kallithea/templates/base/base.html:241 +msgid "Gists" +msgstr "" + +#: kallithea/templates/base/base.html:245 msgid "All Public Gists" msgstr "" -#: kallithea/templates/base/base.html:243 +#: kallithea/templates/base/base.html:247 msgid "My Public Gists" msgstr "" -#: kallithea/templates/base/base.html:244 +#: kallithea/templates/base/base.html:248 msgid "My Private Gists" msgstr "" -#: kallithea/templates/base/base.html:249 +#: kallithea/templates/base/base.html:253 msgid "Search in repositories" msgstr "" -#: kallithea/templates/base/base.html:272 -#: kallithea/templates/base/base.html:273 +#: kallithea/templates/base/base.html:276 +#: kallithea/templates/base/base.html:277 #: kallithea/templates/pullrequests/pullrequest_show_my.html:4 #: kallithea/templates/pullrequests/pullrequest_show_my.html:8 msgid "My Pull Requests" msgstr "" -#: kallithea/templates/base/base.html:292 +#: kallithea/templates/base/base.html:296 msgid "Not Logged In" msgstr "" -#: kallithea/templates/base/base.html:299 +#: kallithea/templates/base/base.html:303 msgid "Login to Your Account" msgstr "" -#: kallithea/templates/base/base.html:322 +#: kallithea/templates/base/base.html:326 msgid "Forgot password ?" msgstr "忘記密碼?" -#: kallithea/templates/base/base.html:347 +#: kallithea/templates/base/base.html:353 msgid "Log Out" msgstr "登出" -#: kallithea/templates/base/base.html:395 +#: kallithea/templates/base/base.html:402 msgid "No matches found" msgstr "" -#: kallithea/templates/base/base.html:524 +#: kallithea/templates/base/base.html:531 msgid "Keyboard shortcuts" msgstr "" -#: kallithea/templates/base/base.html:533 +#: kallithea/templates/base/base.html:540 msgid "Site-wide shortcuts" msgstr "" #: kallithea/templates/base/default_perms_box.html:14 -msgid "Inherit from defaults" -msgstr "" +#, fuzzy +#| msgid "Repository Defaults" +msgid "Inherit defaults" +msgstr "個版本庫" #: kallithea/templates/base/default_perms_box.html:19 #, python-format msgid "" -"Select to inherit permissions from %s permissions settings, and default " -"IP address whitelist." +"Select to inherit global settings, IP whitelist and permissions from the " +"%s." msgstr "" #: kallithea/templates/base/default_perms_box.html:28 @@ -4446,8 +4564,9 @@ msgstr "" #: kallithea/templates/base/perms_summary.html:13 -msgid "show" -msgstr "" +#: kallithea/templates/changelog/changelog.html:42 +msgid "Show" +msgstr "顯示" #: kallithea/templates/base/perms_summary.html:22 msgid "No permissions defined yet" @@ -4473,7 +4592,7 @@ msgstr "" #: kallithea/templates/base/root.html:23 -#: kallithea/templates/data_table/_dt_elements.html:216 +#: kallithea/templates/data_table/_dt_elements.html:214 msgid "Stop following this repository" msgstr "停止追蹤這個版本庫" @@ -4545,6 +4664,14 @@ msgid "Confirm to revoke permission for {0}: {1} ?" msgstr "" +#: kallithea/templates/base/root.html:40 +msgid "enabled" +msgstr "" + +#: kallithea/templates/base/root.html:41 +msgid "disabled" +msgstr "" + #: kallithea/templates/base/root.html:43 msgid "Specify changeset" msgstr "" @@ -4574,6 +4701,7 @@ #: kallithea/templates/branches/branches.html:54 #: kallithea/templates/branches/branches_data.html:12 #: kallithea/templates/changelog/changelog_summary_data.html:7 +#: kallithea/templates/files/files_browser.html:32 #: kallithea/templates/pullrequests/pullrequest.html:62 #: kallithea/templates/pullrequests/pullrequest.html:78 #: kallithea/templates/tags/tags.html:54 @@ -4601,10 +4729,6 @@ msgid_plural "showing %d out of %d revisions" msgstr[0] "" -#: kallithea/templates/changelog/changelog.html:42 -msgid "Show" -msgstr "顯示" - #: kallithea/templates/changelog/changelog.html:52 msgid "Clear selection" msgstr "" @@ -4622,7 +4746,7 @@ #: kallithea/templates/changelog/changelog.html:62 #, python-format -msgid "Compare fork with parent repo (%s)" +msgid "Compare fork with parent repository (%s)" msgstr "" #: kallithea/templates/changelog/changelog.html:66 @@ -4635,7 +4759,7 @@ #, python-format msgid "" "Changeset status: %s\n" -"Click to open associated pull request #%s" +"Click to open associated pull request %s" msgstr "" #: kallithea/templates/changelog/changelog.html:96 @@ -4645,7 +4769,7 @@ msgstr "" #: kallithea/templates/changelog/changelog.html:115 -#: kallithea/templates/compare/compare_cs.html:48 +#: kallithea/templates/compare/compare_cs.html:63 msgid "Expand commit message" msgstr "" @@ -4678,7 +4802,7 @@ msgid "Branch %s" msgstr "" -#: kallithea/templates/changelog/changelog.html:290 +#: kallithea/templates/changelog/changelog.html:291 msgid "There are no changes yet" msgstr "尚未有任何變更" @@ -4694,7 +4818,7 @@ #: kallithea/templates/changelog/changelog_details.html:6 #: kallithea/templates/changeset/changeset.html:79 -#: kallithea/templates/changeset/diff_block.html:80 +#: kallithea/templates/changeset/diff_block.html:79 msgid "Added" msgstr "" @@ -4724,21 +4848,23 @@ msgid "Refs" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:91 +#: kallithea/templates/changelog/changelog_summary_data.html:81 msgid "Add or upload files directly via Kallithea" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:94 +#: kallithea/templates/changelog/changelog_summary_data.html:84 #: kallithea/templates/files/files_add.html:21 #: kallithea/templates/files/files_ypjax.html:9 msgid "Add New File" msgstr "" -#: kallithea/templates/changelog/changelog_summary_data.html:100 -msgid "Push new repo" -msgstr "" - -#: kallithea/templates/changelog/changelog_summary_data.html:108 +#: kallithea/templates/changelog/changelog_summary_data.html:90 +#, fuzzy +#| msgid "private repository" +msgid "Push new repository" +msgstr "私有版本庫" + +#: kallithea/templates/changelog/changelog_summary_data.html:98 msgid "Existing repository?" msgstr "" @@ -4748,15 +4874,15 @@ msgstr "" #: kallithea/templates/changeset/changeset.html:36 -msgid "parent rev." +msgid "Parent rev." msgstr "" #: kallithea/templates/changeset/changeset.html:42 -msgid "child rev." +msgid "Child rev." msgstr "" #: kallithea/templates/changeset/changeset.html:50 -#: kallithea/templates/changeset/changeset_file_comment.html:43 +#: kallithea/templates/changeset/changeset_file_comment.html:37 #: kallithea/templates/changeset/changeset_range.html:48 msgid "Changeset status" msgstr "" @@ -4779,7 +4905,9 @@ #: kallithea/templates/changeset/changeset.html:89 #: kallithea/templates/changeset/changeset_range.html:88 -msgid "merge" +#, fuzzy +#| msgid "merge" +msgid "Merge" msgstr "合併" #: kallithea/templates/changeset/changeset.html:123 @@ -4790,143 +4918,152 @@ msgid "Transplanted from:" msgstr "" -#: kallithea/templates/changeset/changeset.html:137 +#: kallithea/templates/changeset/changeset.html:135 +msgid "Replaced by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:149 +msgid "Preceded by:" +msgstr "" + +#: kallithea/templates/changeset/changeset.html:166 #: kallithea/templates/compare/compare_diff.html:54 -#: kallithea/templates/pullrequests/pullrequest_show.html:307 +#: kallithea/templates/pullrequests/pullrequest_show.html:314 #, python-format msgid "%s file changed" msgid_plural "%s files changed" msgstr[0] "" -#: kallithea/templates/changeset/changeset.html:139 +#: kallithea/templates/changeset/changeset.html:168 #: kallithea/templates/compare/compare_diff.html:56 -#: kallithea/templates/pullrequests/pullrequest_show.html:309 +#: kallithea/templates/pullrequests/pullrequest_show.html:316 #, 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] "" -#: kallithea/templates/changeset/changeset.html:153 -#: kallithea/templates/changeset/changeset.html:166 -#: kallithea/templates/pullrequests/pullrequest_show.html:328 -#: kallithea/templates/pullrequests/pullrequest_show.html:351 +#: kallithea/templates/changeset/changeset.html:182 +#: kallithea/templates/changeset/changeset.html:195 +#: kallithea/templates/pullrequests/pullrequest_show.html:335 +#: kallithea/templates/pullrequests/pullrequest_show.html:359 msgid "Show full diff anyway" msgstr "" -#: kallithea/templates/changeset/changeset.html:224 -#: kallithea/templates/changeset/changeset.html:261 -msgid "no revisions" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:24 -msgid "Status change from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:25 -#: kallithea/templates/changeset/changeset_file_comment.html:28 +#: kallithea/templates/changeset/changeset.html:247 +#: kallithea/templates/changeset/changeset.html:284 +#, fuzzy +#| msgid "revisions" +msgid "No revisions" +msgstr "修訂" + +#: kallithea/templates/changeset/changeset_file_comment.html:21 +msgid "on pull request" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:22 #, fuzzy msgid "No title" msgstr "沒有檔案" -#: kallithea/templates/changeset/changeset_file_comment.html:27 -msgid "Comment from pull request" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:32 -msgid "Status change on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:34 -msgid "Comment on changeset" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:50 +#: kallithea/templates/changeset/changeset_file_comment.html:24 +#, fuzzy +#| msgid "No changes" +msgid "on this changeset" +msgstr "沒有修改" + +#: kallithea/templates/changeset/changeset_file_comment.html:30 #, fuzzy msgid "Delete comment?" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:67 +#: kallithea/templates/changeset/changeset_file_comment.html:37 +#, fuzzy +#| msgid "Latest Changes" +msgid "Status change" +msgstr "多個檔案修改" + +#: kallithea/templates/changeset/changeset_file_comment.html:59 msgid "Commenting on line {1}." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:68 -#: kallithea/templates/changeset/changeset_file_comment.html:163 +#: kallithea/templates/changeset/changeset_file_comment.html:60 +#: kallithea/templates/changeset/changeset_file_comment.html:148 #, python-format msgid "Comments parsed using %s syntax with %s support." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:70 +#: kallithea/templates/changeset/changeset_file_comment.html:62 msgid "Use @username inside this text to notify another user" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:72 +#: kallithea/templates/changeset/changeset_file_comment.html:184 +msgid "Comment preview" +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:77 +msgid "Submitting ..." +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:80 -#: kallithea/templates/changeset/changeset_file_comment.html:199 -msgid "Comment preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:85 -msgid "Submitting ..." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:88 -#: kallithea/templates/changeset/changeset_file_comment.html:205 +#: kallithea/templates/changeset/changeset_file_comment.html:190 msgid "Comment" msgstr "" +#: kallithea/templates/changeset/changeset_file_comment.html:82 +#: kallithea/templates/changeset/changeset_file_comment.html:191 +msgid "Preview" +msgstr "" + #: kallithea/templates/changeset/changeset_file_comment.html:90 -#: kallithea/templates/changeset/changeset_file_comment.html:206 -msgid "Preview" -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:98 msgid "You need to be logged in to comment." msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:98 +#: kallithea/templates/changeset/changeset_file_comment.html:90 msgid "Login now" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:102 +#: kallithea/templates/changeset/changeset_file_comment.html:94 msgid "Hide" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:114 +#: kallithea/templates/changeset/changeset_file_comment.html:106 #, python-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" -#: kallithea/templates/changeset/changeset_file_comment.html:115 +#: kallithea/templates/changeset/changeset_file_comment.html:107 #, fuzzy, python-format msgid "%d inline" msgid_plural "%d inline" msgstr[0] "" -#: kallithea/templates/changeset/changeset_file_comment.html:116 +#: kallithea/templates/changeset/changeset_file_comment.html:108 #, python-format msgid "%d general" msgid_plural "%d general" msgstr[0] "" -#: kallithea/templates/changeset/changeset_file_comment.html:165 -msgid "Use @username inside this text to send notification to another local user." -msgstr "" - -#: kallithea/templates/changeset/changeset_file_comment.html:172 +#: kallithea/templates/changeset/changeset_file_comment.html:150 +msgid "Use @username inside this text to notify another user." +msgstr "" + +#: kallithea/templates/changeset/changeset_file_comment.html:157 msgid "Vote for pull request status" msgstr "" -#: kallithea/templates/changeset/changeset_file_comment.html:174 +#: kallithea/templates/changeset/changeset_file_comment.html:159 #, fuzzy msgid "Set changeset status" msgstr "尚未有任何變更" -#: kallithea/templates/changeset/changeset_file_comment.html:178 +#: kallithea/templates/changeset/changeset_file_comment.html:163 #, fuzzy msgid "No change" msgstr "沒有修改" -#: kallithea/templates/changeset/changeset_file_comment.html:191 +#: kallithea/templates/changeset/changeset_file_comment.html:176 msgid "Close" msgstr "" @@ -4945,7 +5082,7 @@ msgstr "" #: kallithea/templates/changeset/diff_block.html:24 -#: kallithea/templates/changeset/diff_block.html:99 +#: kallithea/templates/changeset/diff_block.html:98 #: kallithea/templates/files/diff_2way.html:46 msgid "Show full side-by-side diff for this file" msgstr "" @@ -4954,12 +5091,12 @@ msgid "Show inline comments" msgstr "" -#: kallithea/templates/changeset/diff_block.html:87 +#: kallithea/templates/changeset/diff_block.html:86 #, fuzzy msgid "Deleted" msgstr "刪除" -#: kallithea/templates/changeset/diff_block.html:90 +#: kallithea/templates/changeset/diff_block.html:89 #, fuzzy msgid "Renamed" msgstr "讀" @@ -4972,29 +5109,41 @@ msgid "Ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:61 +#: kallithea/templates/compare/compare_cs.html:44 +msgid "First (oldest) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:46 +msgid "Last (most recent) changeset in this list" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:48 +msgid "Position in this list of changesets" +msgstr "" + +#: kallithea/templates/compare/compare_cs.html:76 msgid "Show merge diff" msgstr "" -#: kallithea/templates/compare/compare_cs.html:71 -#: kallithea/templates/pullrequests/pullrequest_show.html:299 +#: kallithea/templates/compare/compare_cs.html:86 +#: kallithea/templates/pullrequests/pullrequest_show.html:306 msgid "Common ancestor" msgstr "" -#: kallithea/templates/compare/compare_cs.html:75 +#: kallithea/templates/compare/compare_cs.html:90 msgid "No common ancestor found - repositories are unrelated" msgstr "" -#: kallithea/templates/compare/compare_cs.html:83 +#: kallithea/templates/compare/compare_cs.html:98 msgid "is" msgstr "" -#: kallithea/templates/compare/compare_cs.html:84 +#: kallithea/templates/compare/compare_cs.html:99 #, fuzzy, python-format msgid "%s changesets" msgstr "" -#: kallithea/templates/compare/compare_cs.html:85 +#: kallithea/templates/compare/compare_cs.html:100 #, fuzzy msgid "behind" msgstr "重新索引" @@ -5019,55 +5168,42 @@ msgstr "" #: kallithea/templates/compare/compare_diff.html:47 -#: kallithea/templates/pullrequests/pullrequest_show.html:294 +#: kallithea/templates/pullrequests/pullrequest_show.html:301 #, python-format msgid "Showing %s commit" msgid_plural "Showing %s commits" msgstr[0] "" -#: kallithea/templates/compare/compare_diff.html:65 -#: kallithea/templates/pullrequests/pullrequest_show.html:315 -msgid "No files" -msgstr "" - #: kallithea/templates/compare/compare_diff.html:78 #: kallithea/templates/compare/compare_diff.html:89 msgid "Show full diff" msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:67 -msgid "Mercurial repository" -msgstr "Mercurial 版本庫" - -#: kallithea/templates/data_table/_dt_elements.html:69 -msgid "Git repository" -msgstr "Git 版本庫" - -#: kallithea/templates/data_table/_dt_elements.html:76 +#: kallithea/templates/data_table/_dt_elements.html:74 msgid "Public repository" msgstr "公開的版本庫" -#: kallithea/templates/data_table/_dt_elements.html:86 +#: kallithea/templates/data_table/_dt_elements.html:84 msgid "Repository creation in progress..." msgstr "" -#: kallithea/templates/data_table/_dt_elements.html:100 +#: kallithea/templates/data_table/_dt_elements.html:98 msgid "No changesets yet" msgstr "尚未有任何變更" +#: kallithea/templates/data_table/_dt_elements.html:105 #: kallithea/templates/data_table/_dt_elements.html:107 -#: kallithea/templates/data_table/_dt_elements.html:109 #, python-format msgid "Subscribe to %s rss feed" msgstr "訂閱 %s rss" +#: kallithea/templates/data_table/_dt_elements.html:113 #: kallithea/templates/data_table/_dt_elements.html:115 -#: kallithea/templates/data_table/_dt_elements.html:117 #, python-format msgid "Subscribe to %s atom feed" msgstr "訂閱 %s atom" -#: kallithea/templates/data_table/_dt_elements.html:141 +#: kallithea/templates/data_table/_dt_elements.html:139 msgid "Creating" msgstr "" @@ -5193,10 +5329,6 @@ msgid "Commit Changes" msgstr "遞交修改" -#: kallithea/templates/files/files_browser.html:32 -msgid "revision" -msgstr "" - #: kallithea/templates/files/files_browser.html:33 msgid "Previous revision" msgstr "" @@ -5222,19 +5354,15 @@ msgstr "大小" #: kallithea/templates/files/files_browser.html:62 -msgid "Mimetype" +msgid "Last Revision" msgstr "" #: kallithea/templates/files/files_browser.html:63 -msgid "Last Revision" -msgstr "" - -#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Modified" msgstr "最後修改" -#: kallithea/templates/files/files_browser.html:65 +#: kallithea/templates/files/files_browser.html:64 #, fuzzy msgid "Last Committer" msgstr "最後的遞交者" @@ -5346,8 +5474,8 @@ msgstr "" #: kallithea/templates/followers/followers.html:9 -#: kallithea/templates/summary/summary.html:145 -#: kallithea/templates/summary/summary.html:146 +#: kallithea/templates/summary/summary.html:142 +#: kallithea/templates/summary/summary.html:143 msgid "Followers" msgstr "追蹤者" @@ -5398,8 +5526,8 @@ msgstr "" #: kallithea/templates/forks/forks.html:9 -#: kallithea/templates/summary/summary.html:151 -#: kallithea/templates/summary/summary.html:152 +#: kallithea/templates/summary/summary.html:148 +#: kallithea/templates/summary/summary.html:149 msgid "Forks" msgstr "" @@ -5407,7 +5535,7 @@ msgid "Forked" msgstr "" -#: kallithea/templates/forks/forks_data.html:43 +#: kallithea/templates/forks/forks_data.html:30 msgid "There are no forks yet" msgstr "尚未有任何 fork" @@ -5420,19 +5548,13 @@ msgstr "" #: kallithea/templates/journal/journal.html:56 -#, fuzzy -msgid "My Repos" -msgstr "空的版本庫" - -#: kallithea/templates/journal/journal_data.html:61 +msgid "My Repositories" +msgstr "" + +#: kallithea/templates/journal/journal_data.html:43 msgid "No entries yet" msgstr "" -#: kallithea/templates/journal/public_journal.html:4 -#: kallithea/templates/journal/public_journal.html:21 -msgid "Public Journal" -msgstr "開放日誌" - #: kallithea/templates/journal/public_journal.html:13 msgid "ATOM public journal feed" msgstr "" @@ -5474,20 +5596,16 @@ msgid "Destination repository" msgstr "" -#: kallithea/templates/pullrequests/pullrequest.html:97 -#: kallithea/templates/pullrequests/pullrequest_show.html:210 -msgid "Pull Request Reviewers" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest.html:107 -#: kallithea/templates/pullrequests/pullrequest_show.html:239 -msgid "Type name of reviewer to add" -msgstr "" - #: kallithea/templates/pullrequests/pullrequest_data.html:6 msgid "No entries" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:14 +#, fuzzy +#| msgid "Remote" +msgid "Vote" +msgstr "遠端" + #: kallithea/templates/pullrequests/pullrequest_data.html:18 msgid "From" msgstr "" @@ -5496,50 +5614,48 @@ msgid "To" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:27 -#, python-format -msgid "Latest vote: %s" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:29 -msgid "Nobody voted" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:34 +#: kallithea/templates/pullrequests/pullrequest_data.html:28 #, python-format msgid "You voted: %s" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:36 +#: kallithea/templates/pullrequests/pullrequest_data.html:30 msgid "You didn't vote" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:45 -msgid "Delete Pull Request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:46 -msgid "Confirm to delete this pull request" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_data.html:54 +#: kallithea/templates/pullrequests/pullrequest_data.html:35 msgid "(no title)" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_data.html:56 +#: kallithea/templates/pullrequests/pullrequest_data.html:37 #: kallithea/templates/pullrequests/pullrequest_show.html:31 #: kallithea/templates/pullrequests/pullrequest_show.html:83 msgid "Closed" msgstr "" +#: kallithea/templates/pullrequests/pullrequest_data.html:67 +msgid "Delete Pull Request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:68 +msgid "Confirm to delete this pull request" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_data.html:70 +#, fuzzy, python-format +#| msgid "Confirm to delete this group: %s with %s repository" +#| msgid_plural "Confirm to delete this group: %s with %s repositories" +msgid "Confirm again to delete this pull request with %s comments" +msgstr "" + #: kallithea/templates/pullrequests/pullrequest_show.html:6 #, python-format -msgid "%s Pull Request #%s" +msgid "%s Pull Request %s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:10 #, python-format -msgid "Pull request #%s from %s#%s" +msgid "Pull request %s from %s#%s" msgstr "" #: kallithea/templates/pullrequests/pullrequest_show.html:57 @@ -5556,91 +5672,91 @@ msgid "Pull request status calculated from votes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:94 +#: kallithea/templates/pullrequests/pullrequest_show.html:93 msgid "Still not reviewed by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:98 +#: kallithea/templates/pullrequests/pullrequest_show.html:97 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "" -#: kallithea/templates/pullrequests/pullrequest_show.html:100 +#: kallithea/templates/pullrequests/pullrequest_show.html:99 msgid "Pull request was reviewed by all reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:102 +#: kallithea/templates/pullrequests/pullrequest_show.html:101 #, fuzzy msgid "There are no reviewers" msgstr "沒有任何分支" -#: kallithea/templates/pullrequests/pullrequest_show.html:108 +#: kallithea/templates/pullrequests/pullrequest_show.html:107 msgid "Origin" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:114 +#: kallithea/templates/pullrequests/pullrequest_show.html:113 #, fuzzy msgid "on" msgstr "無" -#: kallithea/templates/pullrequests/pullrequest_show.html:121 +#: kallithea/templates/pullrequests/pullrequest_show.html:120 msgid "Target" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:132 +#: kallithea/templates/pullrequests/pullrequest_show.html:131 msgid "Pull changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:155 +#: kallithea/templates/pullrequests/pullrequest_show.html:154 msgid "Created by" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:170 +#: kallithea/templates/pullrequests/pullrequest_show.html:169 #, fuzzy msgid "Update" msgstr "時間" -#: kallithea/templates/pullrequests/pullrequest_show.html:188 +#: kallithea/templates/pullrequests/pullrequest_show.html:187 msgid "Current revision - no change" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "owner" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:224 -msgid "reviewer" -msgstr "" - -#: kallithea/templates/pullrequests/pullrequest_show.html:227 +#: kallithea/templates/pullrequests/pullrequest_show.html:209 +msgid "Pull Request Reviewers" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:234 #, fuzzy msgid "Remove reviewer" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:247 +#: kallithea/templates/pullrequests/pullrequest_show.html:246 +msgid "Type name of reviewer to add" +msgstr "" + +#: kallithea/templates/pullrequests/pullrequest_show.html:254 #, fuzzy msgid "Potential Reviewers" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:250 +#: kallithea/templates/pullrequests/pullrequest_show.html:257 msgid "Click to add the repository owner as reviewer:" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:273 +#: kallithea/templates/pullrequests/pullrequest_show.html:280 msgid "Save Changes" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:274 +#: kallithea/templates/pullrequests/pullrequest_show.html:281 msgid "Save as New Pull Request" msgstr "" -#: kallithea/templates/pullrequests/pullrequest_show.html:275 +#: kallithea/templates/pullrequests/pullrequest_show.html:282 #, fuzzy msgid "Cancel Changes" msgstr "沒有修改" -#: kallithea/templates/pullrequests/pullrequest_show.html:285 +#: kallithea/templates/pullrequests/pullrequest_show.html:292 #, fuzzy msgid "Pull Request Content" msgstr "文件內容" @@ -5743,8 +5859,8 @@ msgstr "" #: kallithea/templates/summary/statistics.html:36 -#: kallithea/templates/summary/summary.html:103 -#: kallithea/templates/summary/summary.html:119 +#: kallithea/templates/summary/summary.html:100 +#: kallithea/templates/summary/summary.html:116 msgid "Enable" msgstr "" @@ -5752,45 +5868,45 @@ msgid "Stats gathered: " msgstr "" -#: kallithea/templates/summary/statistics.html:88 -#: kallithea/templates/summary/summary.html:352 +#: kallithea/templates/summary/statistics.html:89 +#: kallithea/templates/summary/summary.html:349 msgid "files" msgstr "檔案" -#: kallithea/templates/summary/statistics.html:112 -#: kallithea/templates/summary/summary.html:376 +#: kallithea/templates/summary/statistics.html:113 +#: kallithea/templates/summary/summary.html:373 msgid "Show more" msgstr "" -#: kallithea/templates/summary/statistics.html:389 +#: kallithea/templates/summary/statistics.html:390 msgid "commits" msgstr "遞交" -#: kallithea/templates/summary/statistics.html:390 -msgid "files added" -msgstr "多個檔案新增" - #: kallithea/templates/summary/statistics.html:391 -msgid "files changed" -msgstr "多個檔案修改" +msgid "files added" +msgstr "多個檔案新增" #: kallithea/templates/summary/statistics.html:392 +msgid "files changed" +msgstr "多個檔案修改" + +#: kallithea/templates/summary/statistics.html:393 msgid "files removed" msgstr "移除多個檔案" -#: kallithea/templates/summary/statistics.html:394 +#: kallithea/templates/summary/statistics.html:395 msgid "commit" msgstr "遞交" -#: kallithea/templates/summary/statistics.html:395 +#: kallithea/templates/summary/statistics.html:396 msgid "file added" msgstr "檔案新增" -#: kallithea/templates/summary/statistics.html:396 +#: kallithea/templates/summary/statistics.html:397 msgid "file changed" msgstr "檔案修改" -#: kallithea/templates/summary/statistics.html:397 +#: kallithea/templates/summary/statistics.html:398 msgid "file removed" msgstr "移除檔案" @@ -5812,67 +5928,76 @@ msgid "Fork of" msgstr "" -#: kallithea/templates/summary/summary.html:77 -msgid "Show by Name" -msgstr "" +#: kallithea/templates/summary/summary.html:29 +msgid "Clone from" +msgstr "複製由" + +#: kallithea/templates/summary/summary.html:72 +#, fuzzy +msgid "Clone URL" +msgstr "複製連結" #: kallithea/templates/summary/summary.html:78 +msgid "Show by Name" +msgstr "" + +#: kallithea/templates/summary/summary.html:79 msgid "Show by ID" msgstr "" -#: kallithea/templates/summary/summary.html:95 +#: kallithea/templates/summary/summary.html:92 msgid "Trending files" msgstr "" -#: kallithea/templates/summary/summary.html:111 +#: kallithea/templates/summary/summary.html:108 msgid "Download" msgstr "下載" -#: kallithea/templates/summary/summary.html:115 +#: kallithea/templates/summary/summary.html:112 msgid "There are no downloads yet" msgstr "沒有任何下載" -#: kallithea/templates/summary/summary.html:117 +#: kallithea/templates/summary/summary.html:114 msgid "Downloads are disabled for this repository" msgstr "這個版本庫的下載已停用" -#: kallithea/templates/summary/summary.html:123 +#: kallithea/templates/summary/summary.html:120 msgid "Download as zip" msgstr "" -#: kallithea/templates/summary/summary.html:128 +#: kallithea/templates/summary/summary.html:125 msgid "Check this to download archive with subrepos" msgstr "" -#: kallithea/templates/summary/summary.html:128 -msgid "with subrepos" -msgstr "" - -#: kallithea/templates/summary/summary.html:159 +#: kallithea/templates/summary/summary.html:125 +msgid "With subrepos" +msgstr "" + +#: kallithea/templates/summary/summary.html:156 msgid "Repository Size" msgstr "" -#: kallithea/templates/summary/summary.html:166 -#: kallithea/templates/summary/summary.html:168 +#: kallithea/templates/summary/summary.html:163 +#: kallithea/templates/summary/summary.html:165 msgid "Feed" msgstr "" -#: kallithea/templates/summary/summary.html:189 +#: kallithea/templates/summary/summary.html:186 #, fuzzy msgid "Latest Changes" msgstr "多個檔案修改" -#: kallithea/templates/summary/summary.html:191 +#: kallithea/templates/summary/summary.html:188 #, fuzzy msgid "Quick Start" msgstr "快速過濾..." -#: kallithea/templates/summary/summary.html:205 +#: kallithea/templates/summary/summary.html:202 #, python-format msgid "Readme file from revision %s:%s" msgstr "" -#: kallithea/templates/summary/summary.html:296 +#: kallithea/templates/summary/summary.html:293 #, python-format msgid "Download %s as %s" msgstr "下載 %s 為 %s" @@ -5886,3 +6011,400 @@ msgid "Compare Tags" msgstr "" +#~ msgid "No comments." +#~ msgstr "" + +#~ msgid "public journal" +#~ msgstr "" + +#~ msgid "journal" +#~ msgstr "日誌" + +#~ msgid "bad captcha" +#~ msgstr "" + +#~ msgid "forever" +#~ msgstr "" + +#~ msgid "unmodified" +#~ msgstr "" + +#~ msgid "Cannot delete %s it still contains attached forks" +#~ msgstr "" + +#~ msgid "Locked repository" +#~ msgstr "" + +#~ msgid "Unlocked repository" +#~ msgstr "" + +#~ msgid "Unlocked" +#~ msgstr "" + +#~ msgid "Locked" +#~ msgstr "" + +#~ msgid "Repository has been %s" +#~ msgstr "" + +#~ msgid "You can't edit this user" +#~ msgstr "您無法編輯這位使用者" + +#~ msgid "compare view" +#~ msgstr "" + +#~ msgid "fork name %s" +#~ msgstr "" + +#~ msgid "Pull request #%s" +#~ msgstr "" + +#~ msgid "No Files" +#~ msgstr "沒有檔案" + +#~ msgid "" +#~ "Comment on %(repo_name)s changeset " +#~ "%(short_id)s on %(branch)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Review request on %(repo_name)s pull " +#~ "request #%(pr_id)s from %(ref)s by " +#~ "%(pr_username)s" +#~ msgstr "" + +#~ msgid "" +#~ "Comment on %(repo_name)s pull request " +#~ "#%(pr_id)s from %(ref)s by " +#~ "%(comment_username)s" +#~ msgstr "" + +#~ msgid "%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s" +#~ msgstr "" + +#~ msgid "Username \"%(username)s\" is forbidden" +#~ msgstr "" + +#~ msgid "" +#~ "Username may only contain alphanumeric " +#~ "characters underscores, periods or dashes " +#~ "and must begin with alphanumeric " +#~ "character or underscore" +#~ msgstr "" + +#~ msgid "invalid user name" +#~ msgstr "無效的使用者名稱" + +#~ msgid "Your account is disabled" +#~ msgstr "您的帳號已被停用" + +#~ msgid "Repository name %(repo)s is disallowed" +#~ msgstr "" + +#~ msgid "invalid clone URL" +#~ msgstr "無效的複製URL" + +#~ msgid "Invalid clone URL, provide a valid clone http(s)/svn+http(s)/ssh URL" +#~ msgstr "" + +#~ msgid "email \"%(email)s\" does not exist." +#~ msgstr "" + +#~ msgid "Revisions %(revs)s are already part of pull request or have set status" +#~ msgstr "" + +#~ msgid "" +#~ "Comma separated list of plugins. Order" +#~ " of plugins is also order in " +#~ "which Kallithea will try to authenticate" +#~ " user" +#~ msgstr "" + +#~ msgid "Defaults" +#~ msgstr "" + +#~ msgid "never" +#~ msgstr "" + +#~ msgid "My Emails" +#~ msgstr "" + +#~ msgid "Watched" +#~ msgstr "" + +#~ msgid "My Permissions" +#~ msgstr "權限" + +#~ msgid "expires" +#~ msgstr "" + +#~ msgid "Confirm to reset this api key: %s" +#~ msgstr "" + +#~ msgid "reset" +#~ msgstr "" + +#~ msgid "expired" +#~ msgstr "" + +#~ msgid "Confirm to remove this api key: %s" +#~ msgstr "" + +#~ msgid "remove" +#~ msgstr "" + +#~ msgid "No additional api keys specified" +#~ msgstr "" + +#~ msgid "New api key" +#~ msgstr "" + +#~ msgid "current IP" +#~ msgstr "" + +#~ msgid "" +#~ "Your user is in an external source" +#~ " of record; some details cannot be" +#~ " managed here" +#~ msgstr "" + +#~ msgid "Permissions Administration" +#~ msgstr "權限管理員" + +#~ msgid "Overview" +#~ msgstr "" + +#~ msgid "Overwrite existing settings" +#~ msgstr "" + +#~ msgid "" +#~ "All default permissions on each user " +#~ "group will be reset to chosen " +#~ "permission, note that all custom default" +#~ " permission on repository groups will " +#~ "be lost" +#~ msgstr "" + +#~ msgid "" +#~ "Write permission to a repository group" +#~ " allows creating repositories inside that" +#~ " group." +#~ msgstr "" + +#~ msgid "Default IP Whitelist for All Users" +#~ msgstr "" + +#~ msgid "Confirm to delete this ip: %s" +#~ msgstr "" + +#~ msgid "Default User Permissions Overview" +#~ msgstr "預設權限" + +#~ msgid "none" +#~ msgstr "無" + +#~ msgid "read" +#~ msgstr "讀" + +#~ msgid "write" +#~ msgstr "寫" + +#~ msgid "admin" +#~ msgstr "管理員" + +#~ msgid "user/user group" +#~ msgstr "" + +#~ msgid "default" +#~ msgstr "" + +#~ msgid "revoke" +#~ msgstr "" + +#~ msgid "delegated admin" +#~ msgstr "" + +#~ msgid "apply to children" +#~ msgstr "" + +#~ msgid "Import existing repository ?" +#~ msgstr "" + +#~ msgid "Optional URL from which repository should be cloned." +#~ msgstr "" + +#~ msgid "Remote URL" +#~ msgstr "複製連結" + +#~ msgid "Pull Changes from Remote Location" +#~ msgstr "" + +#~ msgid "Confirm to pull changes from remote side." +#~ msgstr "" + +#~ msgid "This repository does not have a remote URL set." +#~ msgstr "" + +#~ msgid "Non-changeable id" +#~ msgstr "" + +#~ msgid "" +#~ "In case this repository is renamed " +#~ "or moved into another group the " +#~ "repository URL changes.\n" +#~ " Using the above " +#~ "URL guarantees that this repository will" +#~ " always be accessible under such URL." +#~ "\n" +#~ " Useful for CI " +#~ "systems, or any other cases that " +#~ "you need to hardcode the URL into" +#~ " 3rd party service." +#~ msgstr "" + +#~ msgid "edit" +#~ msgstr "編輯" + +#~ msgid "new value" +#~ msgstr "" + +#~ msgid "URL used for doing remote pulls." +#~ msgstr "" + +#~ msgid "Email prefix" +#~ msgstr "" + +#~ msgid "Kallithea email from" +#~ msgstr "" + +#~ msgid "Error email from" +#~ msgstr "" + +#~ msgid "Error email recipients" +#~ msgstr "" + +#~ msgid "SMTP server" +#~ msgstr "" + +#~ msgid "SMTP username" +#~ msgstr "" + +#~ msgid "SMTP password" +#~ msgstr "" + +#~ msgid "SMTP port" +#~ msgstr "" + +#~ msgid "SMTP use TLS" +#~ msgstr "" + +#~ msgid "SMTP use SSL" +#~ msgstr "" + +#~ msgid "SMTP auth" +#~ msgstr "" + +#~ msgid "Destroy old data" +#~ msgstr "" + +#~ msgid "" +#~ "Check this option to remove references" +#~ " to repositories that no longer exist" +#~ " in on the filesystem." +#~ msgstr "" + +#~ msgid "check for updates" +#~ msgstr "" + +#~ msgid "Meta-Tagging" +#~ msgstr "" + +#~ msgid "Default permissions" +#~ msgstr "預設權限" + +#~ msgid "user groups" +#~ msgstr "" + +#~ msgid "" +#~ "This user is in an external source" +#~ " of record (%s); some details cannot" +#~ " be managed here." +#~ msgstr "" + +#~ msgid "Inherit from defaults" +#~ msgstr "" + +#~ msgid "" +#~ "Select to inherit permissions from %s" +#~ " permissions settings, and default IP " +#~ "address whitelist." +#~ msgstr "" + +#~ msgid "show" +#~ msgstr "" + +#~ msgid "" +#~ "Changeset status: %s\n" +#~ "Click to open associated pull request #%s" +#~ msgstr "" + +#~ msgid "Push new repo" +#~ msgstr "" + +#~ msgid "parent rev." +#~ msgstr "" + +#~ msgid "child rev." +#~ msgstr "" + +#~ msgid "no revisions" +#~ msgstr "" + +#~ msgid "Status change from pull request" +#~ msgstr "" + +#~ msgid "Comment from pull request" +#~ msgstr "" + +#~ msgid "Status change on changeset" +#~ msgstr "" + +#~ msgid "Comment on changeset" +#~ msgstr "" + +#~ msgid "" +#~ "Use @username inside this text to " +#~ "send notification to another local user." +#~ msgstr "" + +#~ msgid "revision" +#~ msgstr "" + +#~ msgid "Mimetype" +#~ msgstr "" + +#~ msgid "My Repos" +#~ msgstr "空的版本庫" + +#~ msgid "Latest vote: %s" +#~ msgstr "" + +#~ msgid "Nobody voted" +#~ msgstr "" + +#~ msgid "%s Pull Request #%s" +#~ msgstr "" + +#~ msgid "Pull request #%s from %s#%s" +#~ msgstr "" + +#~ msgid "owner" +#~ msgstr "" + +#~ msgid "reviewer" +#~ msgstr "" + +#~ msgid "with subrepos" +#~ msgstr "" + diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/__init__.py --- a/kallithea/lib/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -45,7 +45,7 @@ wk_dir = repo.workdir cur_rev = wk_dir.get_changeset() return (cur_rev.revision, cur_rev.short_id) - except Exception, err: + except Exception as err: if not quiet: print ("WARNING: Cannot retrieve kallithea's revision. " "disregard this if you don't know what that means. " diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth.py --- a/kallithea/lib/auth.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth.py Sun Sep 06 23:36:05 2015 +0200 @@ -24,7 +24,6 @@ :copyright: (c) 2013 RhodeCode GmbH, and others. :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import time import os import logging @@ -33,7 +32,6 @@ import itertools import collections -from tempfile import _RandomNameSequence from decorator import decorator from pylons import url, request @@ -101,13 +99,12 @@ def hash_string(cls, str_): """ Cryptographic function used for password hashing based on pybcrypt - or pycrypto in windows + or Python's own OpenSSL wrapper on windows :param password: password to hash """ if is_windows: - from hashlib import sha256 - return sha256(str_).hexdigest() + return hashlib.sha256(str_).hexdigest() elif is_unix: import bcrypt return bcrypt.hashpw(str_, bcrypt.gensalt(10)) @@ -126,8 +123,7 @@ """ if is_windows: - from hashlib import sha256 - return sha256(password).hexdigest() == hashed + return hashlib.sha256(password).hexdigest() == hashed elif is_unix: import bcrypt return bcrypt.hashpw(password, hashed) == hashed @@ -144,21 +140,6 @@ return KallitheaCrypto.hash_check(password, hashed) -class CookieStoreWrapper(object): - - def __init__(self, cookie_store): - self.cookie_store = cookie_store - - def __repr__(self): - return 'CookieStore<%s>' % (self.cookie_store) - - def get(self, key, other=None): - if isinstance(self.cookie_store, dict): - return self.cookie_store.get(key, other) - elif isinstance(self.cookie_store, AuthUser): - return self.cookie_store.__dict__.get(key, other) - - def _cached_perms_data(user_id, user_is_admin, user_inherit_default_permissions, explicit, algo): @@ -193,8 +174,8 @@ if user_is_admin: #================================================================== - # admin user have all default rights for repositories - # and groups set to admin + # admin users have all rights; + # based on default permissions, just set everything to admin #================================================================== permissions[GLOBAL].add('hg.admin') permissions[GLOBAL].add('hg.create.write_on_repogroup.true') @@ -221,7 +202,6 @@ #================================================================== # SET DEFAULTS GLOBAL, REPOS, REPOSITORY GROUPS #================================================================== - uid = user_id # default global permissions taken from the default user default_global_perms = UserToPerm.query()\ @@ -234,10 +214,10 @@ # defaults for repositories, taken from default user for perm in default_repo_perms: r_k = perm.UserRepoToPerm.repository.repo_name - if perm.Repository.private and not (perm.Repository.user_id == uid): + if perm.Repository.private and not (perm.Repository.user_id == user_id): # disable defaults for private repos, p = 'repository.none' - elif perm.Repository.user_id == uid: + elif perm.Repository.user_id == user_id: # set admin if owner p = 'repository.admin' else: @@ -275,7 +255,7 @@ .options(joinedload(UserGroupToPerm.permission))\ .join((UserGroupMember, UserGroupToPerm.users_group_id == UserGroupMember.users_group_id))\ - .filter(UserGroupMember.user_id == uid)\ + .filter(UserGroupMember.user_id == user_id)\ .join((UserGroup, UserGroupMember.users_group_id == UserGroup.users_group_id))\ .filter(UserGroup.users_group_active == True)\ @@ -301,7 +281,7 @@ # user specific global permissions user_perms = Session().query(UserToPerm)\ .options(joinedload(UserToPerm.permission))\ - .filter(UserToPerm.user_id == uid).all() + .filter(UserToPerm.user_id == user_id).all() if not user_inherit_default_permissions: # NEED TO IGNORE all configurable permissions and @@ -334,7 +314,7 @@ .filter(UserGroup.users_group_active == True)\ .join((UserGroupMember, UserGroupRepoToPerm.users_group_id == UserGroupMember.users_group_id))\ - .filter(UserGroupMember.user_id == uid)\ + .filter(UserGroupMember.user_id == user_id)\ .all() multiple_counter = collections.defaultdict(int) @@ -344,7 +324,7 @@ p = perm.Permission.permission_name cur_perm = permissions[RK][r_k] - if perm.Repository.user_id == uid: + if perm.Repository.user_id == user_id: # set admin if owner p = 'repository.admin' else: @@ -354,12 +334,12 @@ # user explicit permissions for repositories, overrides any specified # by the group permission - user_repo_perms = Permission.get_default_perms(uid) + user_repo_perms = Permission.get_default_perms(user_id) for perm in user_repo_perms: r_k = perm.UserRepoToPerm.repository.repo_name cur_perm = permissions[RK][r_k] # set admin if owner - if perm.Repository.user_id == uid: + if perm.Repository.user_id == user_id: p = 'repository.admin' else: p = perm.Permission.permission_name @@ -386,7 +366,7 @@ .filter(UserGroup.users_group_active == True)\ .join((UserGroupMember, UserGroupRepoGroupToPerm.users_group_id == UserGroupMember.users_group_id))\ - .filter(UserGroupMember.user_id == uid)\ + .filter(UserGroupMember.user_id == user_id)\ .all() multiple_counter = collections.defaultdict(int) @@ -400,7 +380,7 @@ permissions[GK][g_k] = p # user explicit permissions for repository groups - user_repo_groups_perms = Permission.get_default_group_perms(uid) + user_repo_groups_perms = Permission.get_default_group_perms(user_id) for perm in user_repo_groups_perms: rg_k = perm.UserRepoGroupToPerm.group.group_name p = perm.Permission.permission_name @@ -421,7 +401,7 @@ == Permission.permission_id))\ .join((UserGroupMember, UserGroupUserGroupToPerm.user_group_id == UserGroupMember.users_group_id))\ - .filter(UserGroupMember.user_id == uid)\ + .filter(UserGroupMember.user_id == user_id)\ .join((UserGroup, UserGroupMember.users_group_id == UserGroup.users_group_id), aliased=True, from_joinpoint=True)\ .filter(UserGroup.users_group_active == True)\ @@ -438,7 +418,7 @@ permissions[UK][g_k] = p #user explicit permission for user groups - user_user_groups_perms = Permission.get_default_user_group_perms(uid) + user_user_groups_perms = Permission.get_default_user_group_perms(user_id) for perm in user_user_groups_perms: u_k = perm.UserUserGroupToPerm.user_group.users_group_name p = perm.Permission.permission_name @@ -458,10 +438,10 @@ from kallithea import CONFIG whitelist = aslist(CONFIG.get('api_access_controllers_whitelist'), sep=',') - log.debug('whitelist of API access is: %s' % (whitelist)) + log.debug('whitelist of API access is: %s', whitelist) api_access_valid = controller_name in whitelist if api_access_valid: - log.debug('controller:%s is in API whitelist' % (controller_name)) + log.debug('controller:%s is in API whitelist', controller_name) else: msg = 'controller: %s is *NOT* in API whitelist' % (controller_name) if api_key: @@ -474,84 +454,100 @@ class AuthUser(object): """ - A simple object that handles all attributes of user in Kallithea + Represents a Kallithea user, including various authentication and + authorization information. Typically used to store the current user, + but is also used as a generic user information data structure in + parts of the code, e.g. user management. - It does lookup based on API key,given user, or user present in session - Then it fills all required information for such user. It also checks if - anonymous access is enabled and if so, it returns default user as logged in + Constructed from a database `User` object, a user ID or cookie dict, + it looks up the user (if needed) and copies all attributes to itself, + adding various non-persistent data. If lookup fails but anonymous + access to Kallithea is enabled, the default user is loaded instead. + + `AuthUser` does not by itself authenticate users and the constructor + sets the `is_authenticated` field to False, except when falling back + to the default anonymous user (if enabled). It's up to other parts + of the code to check e.g. if a supplied password is correct, and if + so, set `is_authenticated` to True. + + However, `AuthUser` does refuse to load a user that is not `active`. """ - def __init__(self, user_id=None, api_key=None, username=None, ip_addr=None): + def __init__(self, user_id=None, dbuser=None, + is_external_auth=False): + + self.is_authenticated = False + self.is_external_auth = is_external_auth - self.user_id = user_id - self._api_key = api_key + user_model = UserModel() + self.anonymous_user = User.get_default_user(cache=True) + # These attributes will be overriden by fill_data, below, unless the + # requested user cannot be found and the default anonymous user is + # not enabled. + self.user_id = None + self.username = None self.api_key = None - self.username = username - self.ip_addr = ip_addr self.name = '' self.lastname = '' self.email = '' - self.is_authenticated = False self.admin = False self.inherit_default_permissions = False - self.propagate_data() - self._instance = None - - @LazyProperty - def permissions(self): - return self.get_perms(user=self, cache=False) - - @property - def api_keys(self): - return self.get_api_keys() - - def propagate_data(self): - user_model = UserModel() - self.anonymous_user = User.get_default_user(cache=True) - is_user_loaded = False - - # lookup by userid - if self.user_id is not None and self.user_id != self.anonymous_user.user_id: - log.debug('Auth User lookup by USER ID %s' % self.user_id) - is_user_loaded = user_model.fill_data(self, user_id=self.user_id) + # Look up database user, if necessary. + if user_id is not None: + log.debug('Auth User lookup by USER ID %s', user_id) + dbuser = user_model.get(user_id) + else: + # Note: dbuser is allowed to be None. + log.debug('Auth User lookup by database user %s', dbuser) - # try go get user by api key - elif self._api_key and self._api_key != self.anonymous_user.api_key: - log.debug('Auth User lookup by API KEY %s' % self._api_key) - is_user_loaded = user_model.fill_data(self, api_key=self._api_key) + is_user_loaded = self._fill_data(dbuser) - # lookup by username - elif self.username: - log.debug('Auth User lookup by USER NAME %s' % self.username) - is_user_loaded = user_model.fill_data(self, username=self.username) - else: - log.debug('No data in %s that could been used to log in' % self) - + # If user cannot be found, try falling back to anonymous. if not is_user_loaded: - # if we cannot authenticate user try anonymous - if self.anonymous_user.active: - user_model.fill_data(self, user_id=self.anonymous_user.user_id) - # then we set this user is logged in - self.is_authenticated = True - else: - self.user_id = None - self.username = None - self.is_authenticated = False + is_user_loaded = self._fill_data(self.anonymous_user) + + # The anonymous user is always "logged in". + if self.user_id == self.anonymous_user.user_id: + self.is_authenticated = True if not self.username: self.username = 'None' - log.debug('Auth User is now %s' % self) + log.debug('Auth User is now %s', self) + + def _fill_data(self, dbuser): + """ + Copies database fields from a `db.User` to this `AuthUser`. Does + not copy `api_keys` and `permissions` attributes. - def get_perms(self, user, explicit=True, algo='higherwin', cache=False): + Checks that `dbuser` is `active` (and not None) before copying; + returns True on success. + """ + if dbuser is not None and dbuser.active: + log.debug('filling %s data', dbuser) + for k, v in dbuser.get_dict().iteritems(): + assert k not in ['api_keys', 'permissions'] + setattr(self, k, v) + return True + return False + + @LazyProperty + def permissions(self): + return self.__get_perms(user=self, cache=False) + + @property + def api_keys(self): + return self._get_api_keys() + + def __get_perms(self, user, explicit=True, algo='higherwin', cache=False): """ Fills user permission attribute with permissions taken from database works for permissions given for repositories, and for permissions that are granted to groups - :param user: instance of User object from database + :param user: `AuthUser` instance :param explicit: In case there are permissions both for user and a group that user is part of, explicit flag will define if user will explicitly override permissions from group, if it's False it will @@ -571,7 +567,7 @@ return compute(user_id, user_is_admin, user_inherit_default_permissions, explicit, algo) - def get_api_keys(self): + def _get_api_keys(self): api_keys = [self.api_key] for api_key in UserApiKeys.query()\ .filter(UserApiKeys.user_id == self.user_id)\ @@ -609,25 +605,16 @@ return [x[0] for x in self.permissions['user_groups'].iteritems() if x[1] == 'usergroup.admin'] - @property - def ip_allowed(self): - """ - Checks if ip_addr used in constructor is allowed from defined list of - allowed ip_addresses for user - - :returns: boolean, True if ip is in allowed ip range + @staticmethod + def check_ip_allowed(user, ip_addr): """ - # check IP - inherit = self.inherit_default_permissions - return AuthUser.check_ip_allowed(self.user_id, self.ip_addr, - inherit_from_default=inherit) - - @classmethod - def check_ip_allowed(cls, user_id, ip_addr, inherit_from_default): - allowed_ips = AuthUser.get_allowed_ips(user_id, cache=True, - inherit_from_default=inherit_from_default) + Check if the given IP address (a `str`) is allowed for the given + user (an `AuthUser` or `db.User`). + """ + allowed_ips = AuthUser.get_allowed_ips(user.user_id, cache=True, + inherit_from_default=user.inherit_default_permissions) if check_ip_access(source_ip=ip_addr, allowed_ips=allowed_ips): - log.debug('IP:%s is in range of %s' % (ip_addr, allowed_ips)) + log.debug('IP:%s is in range of %s', ip_addr, allowed_ips) return True else: log.info('Access for IP:%s forbidden, ' @@ -635,30 +622,35 @@ return False def __repr__(self): - return ""\ - % (self.user_id, self.username, self.ip_addr, self.is_authenticated) + return ""\ + % (self.user_id, self.username, self.is_authenticated) def set_authenticated(self, authenticated=True): if self.user_id != self.anonymous_user.user_id: self.is_authenticated = authenticated - def get_cookie_store(self): - return {'username': self.username, - 'user_id': self.user_id, - 'is_authenticated': self.is_authenticated} + def to_cookie(self): + """ Serializes this login session to a cookie `dict`. """ + return { + 'user_id': self.user_id, + 'is_authenticated': self.is_authenticated, + 'is_external_auth': self.is_external_auth, + } - @classmethod - def from_cookie_store(cls, cookie_store): + @staticmethod + def from_cookie(cookie): """ - Creates AuthUser from a cookie store - - :param cls: - :param cookie_store: + Deserializes an `AuthUser` from a cookie `dict`. """ - user_id = cookie_store.get('user_id') - username = cookie_store.get('username') - api_key = cookie_store.get('api_key') - return AuthUser(user_id, api_key, username) + + au = AuthUser( + user_id=cookie.get('user_id'), + is_external_auth=cookie.get('is_external_auth', False), + ) + if not au.is_authenticated and au.user_id is not None: + # user is not authenticated and not empty + au.set_authenticated(cookie.get('is_authenticated')) + return au @classmethod def get_allowed_ips(cls, user_id, cache=False, inherit_from_default=False): @@ -717,6 +709,15 @@ #============================================================================== # CHECK DECORATORS #============================================================================== + +def redirect_to_login(message=None): + from kallithea.lib import helpers as h + p = url.current() + if message: + h.flash(h.literal(message), category='warning') + log.debug('Redirecting to login page, origin: %s', p) + return redirect(url('login_home', came_from=p, **request.GET)) + class LoginRequired(object): """ Must be logged in to execute this function else @@ -733,61 +734,63 @@ return decorator(self.__wrapper, func) def __wrapper(self, func, *fargs, **fkwargs): - cls = fargs[0] - user = cls.authuser - loc = "%s:%s" % (cls.__class__.__name__, func.__name__) + controller = fargs[0] + user = controller.authuser + loc = "%s:%s" % (controller.__class__.__name__, func.__name__) + log.debug('Checking access for user %s @ %s', user, loc) - # check if our IP is allowed - ip_access_valid = True - if not user.ip_allowed: - from kallithea.lib import helpers as h - h.flash(h.literal(_('IP %s not allowed' % (user.ip_addr))), - category='warning') - ip_access_valid = False + if not AuthUser.check_ip_allowed(user, controller.ip_addr): + return redirect_to_login(_('IP %s not allowed') % controller.ip_addr) - # check if we used an APIKEY and it's a valid one - # defined whitelist of controllers which API access will be enabled - _api_key = request.GET.get('api_key', '') - api_access_valid = allowed_api_access(loc, api_key=_api_key) + # check if we used an API key and it's a valid one + api_key = request.GET.get('api_key') + if api_key is not None: + # explicit controller is enabled or API is in our whitelist + if self.api_access or allowed_api_access(loc, api_key=api_key): + if api_key in user.api_keys: + log.info('user %s authenticated with API key ****%s @ %s', + user, api_key[-4:], loc) + return func(*fargs, **fkwargs) + else: + log.warning('API key ****%s is NOT valid', api_key[-4:]) + return redirect_to_login(_('Invalid API key')) + else: + # controller does not allow API access + log.warning('API access to %s is not allowed', loc) + return abort(403) - # explicit controller is enabled or API is in our whitelist - if self.api_access or api_access_valid: - log.debug('Checking API KEY access for %s' % cls) - if _api_key and _api_key in user.api_keys: - api_access_valid = True - log.debug('API KEY ****%s is VALID' % _api_key[-4:]) - else: - api_access_valid = False - if not _api_key: - log.debug("API KEY *NOT* present in request") - else: - log.warning("API KEY ****%s *NOT* valid" % _api_key[-4:]) + # Only allow the following HTTP request methods. (We sometimes use POST + # requests with a '_method' set to 'PUT' or 'DELETE'; but that is only + # used for the route lookup, and does not affect request.method.) + if request.method not in ['GET', 'HEAD', 'POST', 'PUT']: + return abort(405) - # CSRF protection - POSTs with session auth must contain correct token - if request.POST and user.is_authenticated and not api_access_valid: + # CSRF protection: Whenever a request has ambient authority (whether + # through a session cookie or its origin IP address), it must include + # the correct token, unless the HTTP method is GET or HEAD (and thus + # guaranteed to be side effect free. In practice, the only situation + # where we allow side effects without ambient authority is when the + # authority comes from an API key; and that is handled above. + if request.method not in ['GET', 'HEAD']: token = request.POST.get(secure_form.token_key) if not token or token != secure_form.authentication_token(): log.error('CSRF check failed') return abort(403) - log.debug('Checking if %s is authenticated @ %s' % (user.username, loc)) - reason = 'RegularAuth' if user.is_authenticated else 'APIAuth' + # WebOb already ignores request payload parameters for anything other + # than POST/PUT, but double-check since other Kallithea code relies on + # this assumption. + if request.method not in ['POST', 'PUT'] and request.POST: + log.error('%r request with payload parameters; WebOb should have stopped this', request.method) + return abort(400) - if ip_access_valid and (user.is_authenticated or api_access_valid): - log.info('user %s authenticating with:%s IS authenticated on func %s ' - % (user, reason, loc) - ) + # regular user authentication + if user.is_authenticated: + log.info('user %s authenticated with regular auth @ %s', user, loc) return func(*fargs, **fkwargs) else: - log.warning('user %s authenticating with:%s NOT authenticated on func: %s: ' - 'IP_ACCESS:%s API_ACCESS:%s' - % (user, reason, loc, ip_access_valid, api_access_valid) - ) - p = url.current() - - log.debug('redirecting to login page with %s' % p) - return redirect(url('login_home', came_from=p)) - + log.warning('user %s NOT authenticated with regular auth @ %s', user, loc) + return redirect_to_login() class NotAnonymous(object): """ @@ -801,18 +804,13 @@ cls = fargs[0] self.user = cls.authuser - log.debug('Checking if user is not anonymous @%s' % cls) + log.debug('Checking if user is not anonymous @%s', cls) anonymous = self.user.username == User.DEFAULT_USER if anonymous: - p = url.current() - - import kallithea.lib.helpers as h - h.flash(_('You need to be a registered user to ' - 'perform this action'), - category='warning') - return redirect(url('login_home', came_from=p)) + return redirect_to_login(_('You need to be a registered user to ' + 'perform this action')) else: return func(*fargs, **fkwargs) @@ -832,25 +830,18 @@ self.user = cls.authuser self.user_perms = self.user.permissions log.debug('checking %s permissions %s for %s %s', - self.__class__.__name__, self.required_perms, cls, self.user) + self.__class__.__name__, self.required_perms, cls, self.user) if self.check_permissions(): - log.debug('Permission granted for %s %s' % (cls, self.user)) + log.debug('Permission granted for %s %s', cls, self.user) return func(*fargs, **fkwargs) else: - log.debug('Permission denied for %s %s' % (cls, self.user)) + log.debug('Permission denied for %s %s', cls, self.user) anonymous = self.user.username == User.DEFAULT_USER if anonymous: - p = url.current() - - import kallithea.lib.helpers as h - h.flash(_('You need to be signed in to ' - 'view this page'), - category='warning') - return redirect(url('login_home', came_from=p)) - + return redirect_to_login(_('You need to be signed in to view this page')) else: # redirect with forbidden ret code return abort(403) @@ -1029,15 +1020,15 @@ return False self.user_perms = user.permissions if self.check_permissions(): - log.debug('Permission to %s granted for user: %s @ %s' - % (check_scope, user, - check_location or 'unspecified location')) + log.debug('Permission to %s granted for user: %s @ %s', + check_scope, user, + check_location or 'unspecified location') return True else: - log.debug('Permission to %s denied for user: %s @ %s' - % (check_scope, user, - check_location or 'unspecified location')) + log.debug('Permission to %s denied for user: %s @ %s', + check_scope, user, + check_location or 'unspecified location') return False def check_permissions(self): @@ -1189,11 +1180,11 @@ 'permissions %s for user:%s repository:%s', self.user_perms, self.username, self.repo_name) if self.required_perms.intersection(self.user_perms): - log.debug('Permission to repo: %s granted for user: %s @ %s' - % (self.repo_name, self.username, 'PermissionMiddleware')) + log.debug('Permission to repo: %s granted for user: %s @ %s', + self.repo_name, self.username, 'PermissionMiddleware') return True - log.debug('Permission to repo: %s denied for user: %s @ %s' - % (self.repo_name, self.username, 'PermissionMiddleware')) + log.debug('Permission to repo: %s denied for user: %s @ %s', + self.repo_name, self.username, 'PermissionMiddleware') return False @@ -1214,8 +1205,8 @@ if group_name: check_scope += ', repo group:%s' % (group_name) - log.debug('checking cls:%s %s %s @ %s' - % (cls_name, self.required_perms, check_scope, check_location)) + log.debug('checking cls:%s %s %s @ %s', + cls_name, self.required_perms, check_scope, check_location) if not user: log.debug('Empty User passed into arguments') return False @@ -1226,13 +1217,13 @@ if not check_location: check_location = 'unspecified' if self.check_permissions(user.permissions, repo_name, group_name): - log.debug('Permission to %s granted for user: %s @ %s' - % (check_scope, user, check_location)) + log.debug('Permission to %s granted for user: %s @ %s', + check_scope, user, check_location) return True else: - log.debug('Permission to %s denied for user: %s @ %s' - % (check_scope, user, check_location)) + log.debug('Permission to %s denied for user: %s @ %s', + check_scope, user, check_location) return False def check_permissions(self, perm_defs, repo_name=None, group_name=None): @@ -1314,11 +1305,11 @@ :param allowed_ips: list of allowed ips together with mask """ from kallithea.lib import ipaddr - log.debug('checking if ip:%s is subnet of %s' % (source_ip, allowed_ips)) + log.debug('checking if ip:%s is subnet of %s', source_ip, allowed_ips) if isinstance(allowed_ips, (tuple, list, set)): for ip in allowed_ips: if ipaddr.IPAddress(source_ip) in ipaddr.IPNetwork(ip): - log.debug('IP %s is network %s' % - (ipaddr.IPAddress(source_ip), ipaddr.IPNetwork(ip))) + log.debug('IP %s is network %s', + ipaddr.IPAddress(source_ip), ipaddr.IPNetwork(ip)) return True return False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/__init__.py --- a/kallithea/lib/auth_modules/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -54,11 +54,10 @@ "email": "email address", "groups": '["list", "of", "groups"]', "extern_name": "name in external source of record", - "extern_type": "type of external source of record", - "admin": 'True|False defines if user should be Kallithea super admin', - "active": 'True|False defines active state of user internally for Kallithea', - "active_from_extern": "True|False\None, active state from the external auth, " - "None means use definition from Kallithea extern_type active value" + "admin": 'True|False defines if user should be Kallithea admin', + "active": 'True|False defines active state of user in Kallithea', + "active_from_extern": "True|False|None, active state from the external auth, " + "None means use value from the auth plugin" } @property @@ -75,7 +74,7 @@ def __call__(self, *args, **kwargs): from kallithea.model import validators as v obj = getattr(v, self.validator_name) - #log.debug('Initializing lazy formencode object: %s' % obj) + #log.debug('Initializing lazy formencode object: %s', obj) return LazyFormencode(obj, *args, **kwargs) @@ -121,8 +120,8 @@ return False if user and user.extern_type and user.extern_type != plugin_name: - log.debug('User %s should authenticate using %s this is %s, skipping' - % (user, user.extern_type, plugin_name)) + log.debug('User %s should authenticate using %s this is %s, skipping', + user, user.extern_type, plugin_name) return False return True @@ -137,15 +136,15 @@ :param kwargs: extra arguments needed for user fetching. """ user = None - log.debug('Trying to fetch user `%s` from Kallithea database' - % (username)) + log.debug('Trying to fetch user `%s` from Kallithea database', + username) if username: user = User.get_by_username(username) if not user: log.debug('Fallback to fetch user in case insensitive mode') user = User.get_by_username(username, case_insensitive=True) else: - log.debug('provided username:`%s` is empty skipping...' % username) + log.debug('provided username:`%s` is empty skipping...', username) return user def settings(self): @@ -184,7 +183,7 @@ def plugin_settings(self): """ This method is called by the authentication framework, not the .settings() - method. This method adds a few default settings (e.g., "active"), so that + method. This method adds a few default settings (e.g., "enabled"), so that plugin authors don't have to maintain a bunch of boilerplate. OVERRIDING THIS METHOD WILL CAUSE YOUR PLUGIN TO FAIL. @@ -211,14 +210,14 @@ def auth(self, userobj, username, passwd, settings, **kwargs): """ - Given a user object (which may be null), username, a plaintext password, + Given a user object (which may be None), username, a plaintext password, and a settings object (containing all the keys needed as listed in settings()), authenticate this user's login attempt. - Return None on failure. On success, return a dictionary of the form: + Return None on failure. On success, return a dictionary with keys from + KallitheaAuthPluginBase.auth_func_attrs. - see: KallitheaAuthPluginBase.auth_func_attrs - This is later validated for correctness + This is later validated for correctness. """ raise NotImplementedError("not implemented in base class") @@ -231,18 +230,18 @@ :param passwd: plaintext password :param settings: plugin settings """ - auth = self.auth(userobj, username, passwd, settings, **kwargs) - if auth: - return self._validate_auth_return(auth) - return auth + user_data = self.auth(userobj, username, passwd, settings, **kwargs) + if user_data is not None: + return self._validate_auth_return(user_data) + return None - def _validate_auth_return(self, ret): - if not isinstance(ret, dict): + def _validate_auth_return(self, user_data): + if not isinstance(user_data, dict): raise Exception('returned value from auth must be a dict') for k in self.auth_func_attrs: - if k not in ret: + if k not in user_data: raise Exception('Missing %s attribute from returned data' % k) - return ret + return user_data class KallitheaExternalAuthPlugin(KallitheaAuthPluginBase): @@ -257,19 +256,19 @@ raise NotImplementedError("Not implemented in base class") def _authenticate(self, userobj, username, passwd, settings, **kwargs): - auth = super(KallitheaExternalAuthPlugin, self)._authenticate( + user_data = super(KallitheaExternalAuthPlugin, self)._authenticate( userobj, username, passwd, settings, **kwargs) - if auth: + if user_data is not None: # maybe plugin will clean the username ? # we should use the return value - username = auth['username'] + username = user_data['username'] # if user is not active from our extern type we should fail to auth # this can prevent from creating users in Kallithea when using # external authentication, but if it's inactive user we shouldn't # create that user anyway - if auth['active_from_extern'] is False: - log.warning("User %s authenticated against %s, but is inactive" - % (username, self.__module__)) + if user_data['active_from_extern'] is False: + log.warning("User %s authenticated against %s, but is inactive", + username, self.__module__) return None if self.use_fake_password(): @@ -277,26 +276,26 @@ # them blank either passwd = PasswordGenerator().gen_password(length=8) - log.debug('Updating or creating user info from %s plugin' - % self.name) + log.debug('Updating or creating user info from %s plugin', + self.name) user = UserModel().create_or_update( username=username, password=passwd, - email=auth["email"], - firstname=auth["firstname"], - lastname=auth["lastname"], - active=auth["active"], - admin=auth["admin"], - extern_name=auth["extern_name"], + email=user_data["email"], + firstname=user_data["firstname"], + lastname=user_data["lastname"], + active=user_data["active"], + admin=user_data["admin"], + extern_name=user_data["extern_name"], extern_type=self.name ) Session().flush() # enforce user is just in given groups, all of them has to be ones # created from plugins. We store this info in _group_data JSON field - groups = auth['groups'] or [] + groups = user_data['groups'] or [] UserGroupModel().enforce_groups(user, groups, self.name) Session().commit() - return auth + return user_data def importplugin(plugin): @@ -310,7 +309,7 @@ TypeError -- if the KallitheaAuthPlugin is not a subclass of ours KallitheaAuthPluginBase ImportError -- if we couldn't import the plugin at all """ - log.debug("Importing %s" % plugin) + log.debug("Importing %s", plugin) if not plugin.startswith(u'kallithea.lib.auth_modules.auth_'): parts = plugin.split(u'.lib.auth_modules.auth_', 1) if len(parts) == 2: @@ -327,8 +326,8 @@ # the plugin name, the crash is pretty bad and hard to recover raise - log.debug("Loaded auth plugin from %s (module:%s, file:%s)" - % (plugin, module.__name__, module.__file__)) + log.debug("Loaded auth plugin from %s (module:%s, file:%s)", + plugin, module.__name__, module.__file__) pluginclass = getattr(module, PLUGIN_CLASS_NAME) if not issubclass(pluginclass, KallitheaAuthPluginBase): @@ -359,18 +358,18 @@ :param username: username can be empty for container auth :param password: password can be empty for container auth :param environ: environ headers passed for container auth - :returns: None if auth failed, plugin_user dict if auth is correct + :returns: None if auth failed, user_data dict if auth is correct """ auth_plugins = Setting.get_auth_plugins() - log.debug('Authentication against %s plugins' % (auth_plugins,)) + log.debug('Authentication against %s plugins', auth_plugins) for module in auth_plugins: try: plugin = loadplugin(module) - except (ImportError, AttributeError, TypeError), e: + except (ImportError, AttributeError, TypeError) as e: raise ImportError('Failed to load authentication module %s : %s' % (module, str(e))) - log.debug('Trying authentication using ** %s **' % (module,)) + log.debug('Trying authentication using ** %s **', module) # load plugin settings from Kallithea database plugin_name = plugin.name plugin_settings = {} @@ -378,42 +377,55 @@ conf_key = "auth_%s_%s" % (plugin_name, v["name"]) setting = Setting.get_by_name(conf_key) plugin_settings[v["name"]] = setting.app_settings_value if setting else None - log.debug('Plugin settings \n%s' % formatted_json(plugin_settings)) + log.debug('Plugin settings \n%s', formatted_json(plugin_settings)) if not str2bool(plugin_settings["enabled"]): - log.info("Authentication plugin %s is disabled, skipping for %s" - % (module, username)) + log.info("Authentication plugin %s is disabled, skipping for %s", + module, username) continue # use plugin's method of user extraction. user = plugin.get_user(username, environ=environ, settings=plugin_settings) - log.debug('Plugin %s extracted user is `%s`' % (module, user)) + log.debug('Plugin %s extracted user is `%s`', module, user) if not plugin.accepts(user): - log.debug('Plugin %s does not accept user `%s` for authentication' - % (module, user)) + log.debug('Plugin %s does not accept user `%s` for authentication', + module, user) continue else: - log.debug('Plugin %s accepted user `%s` for authentication' - % (module, user)) + log.debug('Plugin %s accepted user `%s` for authentication', + module, user) - log.info('Authenticating user using %s plugin' % plugin.__module__) + log.info('Authenticating user using %s plugin', plugin.__module__) # _authenticate is a wrapper for .auth() method of plugin. # it checks if .auth() sends proper data. For KallitheaExternalAuthPlugin # it also maps users to Database and maps the attributes returned # from .auth() to Kallithea database. If this function returns data # then auth is correct. - plugin_user = plugin._authenticate(user, username, password, + user_data = plugin._authenticate(user, username, password, plugin_settings, environ=environ or {}) - log.debug('PLUGIN USER DATA: %s' % plugin_user) + log.debug('PLUGIN USER DATA: %s', user_data) + + if user_data is not None: + log.debug('Plugin returned proper authentication data') + return user_data - if plugin_user: - log.debug('Plugin returned proper authentication data') - return plugin_user + # we failed to Auth because .auth() method didn't return the user + if username: + log.warning("User `%s` failed to authenticate against %s", + username, plugin.__module__) + return None - # we failed to Auth because .auth() method didn't return proper the user - if username: - log.warning("User `%s` failed to authenticate against %s" - % (username, plugin.__module__)) - return None +def get_managed_fields(user): + """return list of fields that are managed by the user's auth source, usually some of + 'username', 'firstname', 'lastname', 'email', 'active', 'password' + """ + auth_plugins = Setting.get_auth_plugins() + for module in auth_plugins: + log.debug('testing %s (%s) with auth plugin %s', user, user.extern_type, module) + plugin = loadplugin(module) + if plugin.name == user.extern_type: + return plugin.get_managed_fields() + log.error('no auth plugin %s found for %s', user.extern_type, user) + return [] # TODO: Fail badly instead of allowing everything to be edited? diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/auth_container.py --- a/kallithea/lib/auth_modules/auth_container.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/auth_container.py Sun Sep 06 23:36:05 2015 +0200 @@ -95,24 +95,24 @@ username = None environ = environ or {} if not environ: - log.debug('got empty environ: %s' % environ) + log.debug('got empty environ: %s', environ) settings = settings or {} if settings.get('header'): header = settings.get('header') username = environ.get(header) - log.debug('extracted %s:%s' % (header, username)) + log.debug('extracted %s:%s', header, username) # fallback mode if not username and settings.get('fallback_header'): header = settings.get('fallback_header') username = environ.get(header) - log.debug('extracted %s:%s' % (header, username)) + log.debug('extracted %s:%s', header, username) if username and str2bool(settings.get('clean_username')): - log.debug('Received username %s from container' % username) + log.debug('Received username %s from container', username) username = self._clean_username(username) - log.debug('New cleanup user is: %s' % username) + log.debug('New cleanup user is: %s', username) return username def get_user(self, username=None, **kwargs): @@ -175,9 +175,8 @@ email = getattr(userobj, 'email', '') firstname = getattr(userobj, 'firstname', '') lastname = getattr(userobj, 'lastname', '') - extern_type = getattr(userobj, 'extern_type', '') - user_attrs = { + user_data = { 'username': username, 'firstname': safe_unicode(firstname or username), 'lastname': safe_unicode(lastname or ''), @@ -187,8 +186,10 @@ 'active': active, 'active_from_extern': True, 'extern_name': username, - 'extern_type': extern_type, } - log.info('user `%s` authenticated correctly' % user_attrs['username']) - return user_attrs + log.info('user `%s` authenticated correctly', user_data['username']) + return user_data + + def get_managed_fields(self): + return ['username', 'password'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/auth_crowd.py --- a/kallithea/lib/auth_modules/auth_crowd.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/auth_crowd.py Sun Sep 06 23:36:05 2015 +0200 @@ -85,9 +85,9 @@ _headers["Authorization"] = "Basic %s" % authstring if headers: _headers.update(headers) - log.debug("Sent crowd: \n%s" - % (formatted_json({"url": url, "body": body, - "headers": _headers}))) + log.debug("Sent crowd: \n%s", + formatted_json({"url": url, "body": body, + "headers": _headers})) request = urllib2.Request(url, body, _headers) if method: request.get_method = lambda: method @@ -106,7 +106,7 @@ rval["status"] = True else: rval = "".join(rdoc.readlines()) - except Exception, e: + except Exception as e: if not noformat: rval = {"status": False, "body": body, @@ -202,16 +202,16 @@ log.debug('Empty username or password skipping...') return None - log.debug("Crowd settings: \n%s" % (formatted_json(settings))) + log.debug("Crowd settings: \n%s", formatted_json(settings)) server = CrowdServer(**settings) server.set_credentials(settings["app_name"], settings["app_password"]) crowd_user = server.user_auth(username, password) - log.debug("Crowd returned: \n%s" % (formatted_json(crowd_user))) + log.debug("Crowd returned: \n%s", formatted_json(crowd_user)) if not crowd_user["status"]: return None res = server.user_groups(crowd_user["name"]) - log.debug("Crowd groups: \n%s" % (formatted_json(res))) + log.debug("Crowd groups: \n%s", formatted_json(res)) crowd_user["groups"] = [x["name"] for x in res["groups"]] # old attrs fetched from Kallithea database @@ -220,9 +220,8 @@ email = getattr(userobj, 'email', '') firstname = getattr(userobj, 'firstname', '') lastname = getattr(userobj, 'lastname', '') - extern_type = getattr(userobj, 'extern_type', '') - user_attrs = { + user_data = { 'username': username, 'firstname': crowd_user["first-name"] or firstname, 'lastname': crowd_user["last-name"] or lastname, @@ -230,15 +229,17 @@ 'email': crowd_user["email"] or email, 'admin': admin, 'active': active, - 'active_from_extern': crowd_user.get('active'), + 'active_from_extern': crowd_user.get('active'), # ??? 'extern_name': crowd_user["name"], - 'extern_type': extern_type, } # set an admin if we're in admin_groups of crowd for group in settings["admin_groups"].split(","): - if group in user_attrs["groups"]: - user_attrs["admin"] = True - log.debug("Final crowd user object: \n%s" % (formatted_json(user_attrs))) - log.info('user %s authenticated correctly' % user_attrs['username']) - return user_attrs + if group in user_data["groups"]: + user_data["admin"] = True + log.debug("Final crowd user object: \n%s", formatted_json(user_data)) + log.info('user %s authenticated correctly', user_data['username']) + return user_data + + def get_managed_fields(self): + return ['username', 'firstname', 'lastname', 'email', 'password'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/auth_internal.py --- a/kallithea/lib/auth_modules/auth_internal.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/auth_internal.py Sun Sep 06 23:36:05 2015 +0200 @@ -13,7 +13,7 @@ # along with this program. If not, see . """ kallithea.lib.auth_modules.auth_internal -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Kallithea authentication plugin for built in internal auth @@ -61,14 +61,14 @@ def auth(self, userobj, username, password, settings, **kwargs): if not userobj: - log.debug('userobj was:%s skipping' % (userobj, )) + log.debug('userobj was:%s skipping', userobj) return None if userobj.extern_type != self.name: - log.warning("userobj:%s extern_type mismatch got:`%s` expected:`%s`" - % (userobj, userobj.extern_type, self.name)) + log.warning("userobj:%s extern_type mismatch got:`%s` expected:`%s`", + userobj, userobj.extern_type, self.name) return None - user_attrs = { + user_data = { "username": userobj.username, "firstname": userobj.firstname, "lastname": userobj.lastname, @@ -78,23 +78,26 @@ "active": userobj.active, "active_from_extern": userobj.active, "extern_name": userobj.user_id, - 'extern_type': userobj.extern_type, } - log.debug(formatted_json(user_attrs)) + log.debug(formatted_json(user_data)) if userobj.active: from kallithea.lib import auth password_match = auth.KallitheaCrypto.hash_check(password, userobj.password) if userobj.username == User.DEFAULT_USER and userobj.active: - log.info('user %s authenticated correctly as anonymous user' % + log.info('user %s authenticated correctly as anonymous user', username) - return user_attrs + return user_data elif userobj.username == username and password_match: - log.info('user %s authenticated correctly' % user_attrs['username']) - return user_attrs - log.error("user %s had a bad password" % username) + log.info('user %s authenticated correctly', user_data['username']) + return user_data + log.error("user %s had a bad password", username) return None else: - log.warning('user %s tried auth but is disabled' % username) + log.warning('user %s tried auth but is disabled', username) return None + + def get_managed_fields(self): + # Note: 'username' should only be editable (at least for user) if self registration is enabled + return [] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/auth_ldap.py --- a/kallithea/lib/auth_modules/auth_ldap.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/auth_ldap.py Sun Sep 06 23:36:05 2015 +0200 @@ -127,8 +127,8 @@ server.start_tls_s() if self.LDAP_BIND_DN and self.LDAP_BIND_PASS: - log.debug('Trying simple_bind with password and given DN: %s' - % self.LDAP_BIND_DN) + log.debug('Trying simple_bind with password and given DN: %s', + self.LDAP_BIND_DN) server.simple_bind_s(self.LDAP_BIND_DN, self.LDAP_BIND_PASS) filter_ = '(&%s(%s=%s))' % (self.LDAP_FILTER, self.attr_login, @@ -146,15 +146,15 @@ continue try: - log.debug('Trying simple bind with %s' % dn) + log.debug('Trying simple bind with %s', dn) server.simple_bind_s(dn, safe_str(password)) attrs = server.search_ext_s(dn, ldap.SCOPE_BASE, '(objectClass=*)')[0][1] break except ldap.INVALID_CREDENTIALS: - log.debug("LDAP rejected password for user '%s' (%s): %s" - % (uid, username, dn)) + log.debug("LDAP rejected password for user '%s' (%s): %s", + uid, username, dn) else: log.debug("No matching LDAP objects for authentication " @@ -162,7 +162,7 @@ raise LdapPasswordError() except ldap.NO_SUCH_OBJECT: - log.debug("LDAP says no such user '%s' (%s)" % (uid, username)) + log.debug("LDAP says no such user '%s' (%s)", uid, username) raise LdapUsernameError() except ldap.SERVER_DOWN: raise LdapConnectionError("LDAP can't access authentication server") @@ -328,7 +328,7 @@ try: aldap = AuthLdap(**kwargs) (user_dn, ldap_attrs) = aldap.authenticate_ldap(username, password) - log.debug('Got ldap DN response %s' % user_dn) + log.debug('Got ldap DN response %s', user_dn) get_ldap_attr = lambda k: ldap_attrs.get(settings.get(k), [''])[0] @@ -338,22 +338,20 @@ email = getattr(userobj, 'email', '') firstname = getattr(userobj, 'firstname', '') lastname = getattr(userobj, 'lastname', '') - extern_type = getattr(userobj, 'extern_type', '') - user_attrs = { + user_data = { 'username': username, 'firstname': safe_unicode(get_ldap_attr('attr_firstname') or firstname), 'lastname': safe_unicode(get_ldap_attr('attr_lastname') or lastname), 'groups': [], - 'email': get_ldap_attr('attr_email' or email), + 'email': get_ldap_attr('attr_email') or email, 'admin': admin, 'active': active, "active_from_extern": None, 'extern_name': user_dn, - 'extern_type': extern_type, } - log.info('user %s authenticated correctly' % user_attrs['username']) - return user_attrs + log.info('user %s authenticated correctly', user_data['username']) + return user_data except (LdapUsernameError, LdapPasswordError, LdapImportError): log.error(traceback.format_exc()) @@ -361,3 +359,6 @@ except (Exception,): log.error(traceback.format_exc()) return None + + def get_managed_fields(self): + return ['username', 'firstname', 'lastname', 'email', 'password'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/auth_modules/auth_pam.py --- a/kallithea/lib/auth_modules/auth_pam.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/auth_modules/auth_pam.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.auth_pam -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.auth_modules.auth_pam +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Kallithea authentication library for PAM @@ -98,10 +98,10 @@ _pam_lock.release() if not auth_result: - log.error("PAM was unable to authenticate user: %s" % (username,)) + log.error("PAM was unable to authenticate user: %s", username) return None else: - log.debug("Using cached auth for user: %s" % (username,)) + log.debug("Using cached auth for user: %s", username) # old attrs fetched from Kallithea database admin = getattr(userobj, 'admin', False) @@ -109,9 +109,8 @@ email = getattr(userobj, 'email', '') or "%s@%s" % (username, socket.gethostname()) firstname = getattr(userobj, 'firstname', '') lastname = getattr(userobj, 'lastname', '') - extern_type = getattr(userobj, 'extern_type', '') - user_attrs = { + user_data = { 'username': username, 'firstname': firstname, 'lastname': lastname, @@ -121,7 +120,6 @@ 'active': active, "active_from_extern": None, 'extern_name': username, - 'extern_type': extern_type, } try: @@ -129,12 +127,15 @@ regex = settings["gecos"] match = re.search(regex, user_data.pw_gecos) if match: - user_attrs["firstname"] = match.group('first_name') - user_attrs["lastname"] = match.group('last_name') + user_data["firstname"] = match.group('first_name') + user_data["lastname"] = match.group('last_name') except Exception: log.warning("Cannot extract additional info for PAM user %s", username) pass - log.debug("pamuser: \n%s" % formatted_json(user_attrs)) - log.info('user %s authenticated correctly' % user_attrs['username']) - return user_attrs + log.debug("pamuser: \n%s", formatted_json(user_data)) + log.info('user %s authenticated correctly', user_data['username']) + return user_data + + def get_managed_fields(self): + return ['username', 'password'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/base.py --- a/kallithea/lib/base.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/base.py Sun Sep 06 23:36:05 2015 +0200 @@ -28,6 +28,7 @@ :license: GPLv3, see LICENSE.md for more details. """ +import datetime import logging import time import traceback @@ -48,7 +49,7 @@ from kallithea.lib.utils2 import str2bool, safe_unicode, AttributeDict,\ safe_str, safe_int from kallithea.lib import auth_modules -from kallithea.lib.auth import AuthUser, HasPermissionAnyMiddleware, CookieStoreWrapper +from kallithea.lib.auth import AuthUser, HasPermissionAnyMiddleware from kallithea.lib.utils import get_repo_slug from kallithea.lib.exceptions import UserCreationError from kallithea.lib.vcs.exceptions import RepositoryError, EmptyRepositoryError, ChangesetDoesNotExistError @@ -73,7 +74,7 @@ if ',' in ip: _ips = ip.split(',') _first_ip = _ips[0].strip() - log.debug('Got multiple IPs %s, using %s' % (','.join(_ips), _first_ip)) + log.debug('Got multiple IPs %s, using %s', ','.join(_ips), _first_ip) return _first_ip return ip @@ -103,6 +104,42 @@ return path +def log_in_user(user, remember, is_external_auth): + """ + Log a `User` in and update session and cookies. If `remember` is True, + the session cookie is set to expire in a year; otherwise, it expires at + the end of the browser session. + + Returns populated `AuthUser` object. + """ + user.update_lastlogin() + meta.Session().commit() + + auth_user = AuthUser(dbuser=user, + is_external_auth=is_external_auth) + auth_user.set_authenticated() + + # Start new session to prevent session fixation attacks. + session.invalidate() + session['authuser'] = cookie = auth_user.to_cookie() + + # If they want to be remembered, update the cookie. + # NOTE: Assumes that beaker defaults to browser session cookie. + if remember: + t = datetime.datetime.now() + datetime.timedelta(days=365) + session._set_cookie_expires(t) + + session.save() + + log.info('user %s is now authenticated and stored in ' + 'session, session attrs %s', user.username, cookie) + + # dumps session attrs back to cookie + session._update_cookie_out() + + return auth_user + + class BasicAuth(paste.auth.basic.AuthBasicAuthenticator): def __init__(self, realm, authfunc, auth_http_code=None): @@ -129,7 +166,7 @@ _parts = auth.split(':', 1) if len(_parts) == 2: username, password = _parts - if self.authfunc(username, password, environ): + if self.authfunc(username, password, environ) is not None: return username return self.build_authentication() @@ -143,7 +180,7 @@ self.config = config # base path of repo locations self.basepath = self.config['base_path'] - #authenticate this VCS request using authfunc + # authenticate this VCS request using the authentication modules self.authenticate = BasicAuth('', auth_modules.authenticate, config.get('auth_ret_code')) self.ip_addr = '0.0.0.0' @@ -182,15 +219,13 @@ name :param action: push or pull action - :param user: user instance + :param user: `User` instance :param repo_name: repository name """ # check IP - inherit = user.inherit_default_permissions - ip_allowed = AuthUser.check_ip_allowed(user.user_id, ip_addr, - inherit_from_default=inherit) + ip_allowed = AuthUser.check_ip_allowed(user, ip_addr) if ip_allowed: - log.info('Access for IP:%s allowed' % (ip_addr,)) + log.info('Access for IP:%s allowed', ip_addr) else: return False @@ -222,8 +257,8 @@ if str2bool(Ui.get_by_key('push_ssl').ui_value): org_proto = environ.get('wsgi._org_proto', environ['wsgi.url_scheme']) if org_proto != 'https': - log.debug('proto is %s and SSL is required BAD REQUEST !' - % org_proto) + log.debug('proto is %s and SSL is required BAD REQUEST !', + org_proto) return False return True @@ -252,7 +287,7 @@ #check if it's already locked !, if it is compare users user_id, _date = repo.locked if user.user_id == user_id: - log.debug('Got push from user %s, now unlocking' % (user)) + log.debug('Got push from user %s, now unlocking', user) # unlock if we have push from user who locked make_lock = False else: @@ -262,13 +297,13 @@ if repo.locked[0] and repo.locked[1]: locked = True else: - log.debug('Setting lock on repo %s by %s' % (repo, user)) + log.debug('Setting lock on repo %s by %s', repo, user) make_lock = True else: - log.debug('Repository %s do not have locking enabled' % (repo)) - log.debug('FINAL locking values make_lock:%s,locked:%s,locked_by:%s' - % (make_lock, locked, locked_by)) + log.debug('Repository %s do not have locking enabled', repo) + log.debug('FINAL locking values make_lock:%s,locked:%s,locked_by:%s', + make_lock, locked, locked_by) return make_lock, locked, locked_by def __call__(self, environ, start_response): @@ -277,7 +312,7 @@ return self._handle_request(environ, start_response) finally: log = logging.getLogger('kallithea.' + self.__class__.__name__) - log.debug('Request time: %.3fs' % (time.time() - start)) + log.debug('Request time: %.3fs', time.time() - start) meta.Session.remove() @@ -341,44 +376,72 @@ self.sa = meta.Session self.scm_model = ScmModel(self.sa) + @staticmethod + def _determine_auth_user(api_key, session_authuser): + """ + Create an `AuthUser` object given the API key (if any) and the + value of the authuser session cookie. + """ + + # Authenticate by API key + if api_key: + # when using API_KEY we are sure user exists. + return AuthUser(dbuser=User.get_by_api_key(api_key), + is_external_auth=True) + + # Authenticate by session cookie + # In ancient login sessions, 'authuser' may not be a dict. + # In that case, the user will have to log in again. + if isinstance(session_authuser, dict): + try: + return AuthUser.from_cookie(session_authuser) + except UserCreationError as e: + # container auth or other auth functions that create users on + # the fly can throw UserCreationError to signal issues with + # user creation. Explanation should be provided in the + # exception object. + from kallithea.lib import helpers as h + h.flash(e, 'error', logf=log.error) + + # Authenticate by auth_container plugin (if enabled) + if any( + auth_modules.importplugin(name).is_container_auth + for name in Setting.get_auth_plugins() + ): + try: + user_info = auth_modules.authenticate('', '', request.environ) + except UserCreationError as e: + from kallithea.lib import helpers as h + h.flash(e, 'error', logf=log.error) + else: + if user_info is not None: + username = user_info['username'] + user = User.get_by_username(username, case_insensitive=True) + return log_in_user(user, remember=False, + is_external_auth=True) + + # User is anonymous + return AuthUser() + def __call__(self, environ, start_response): """Invoke the Controller""" + # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] try: self.ip_addr = _get_ip_addr(environ) # make sure that we update permissions each time we call controller - api_key = request.GET.get('api_key') - if api_key: - # when using API_KEY we are sure user exists. - auth_user = AuthUser(api_key=api_key, ip_addr=self.ip_addr) - authenticated = False - else: - cookie_store = CookieStoreWrapper(session.get('authuser')) - try: - auth_user = AuthUser(user_id=cookie_store.get('user_id', None), - ip_addr=self.ip_addr) - except UserCreationError, e: - from kallithea.lib import helpers as h - h.flash(e, 'error') - # container auth or other auth functions that create users on - # the fly can throw this exception signaling that there's issue - # with user creation, explanation should be provided in - # Exception itself - auth_user = AuthUser(ip_addr=self.ip_addr) + #set globals for auth user + self.authuser = c.authuser = request.user = self._determine_auth_user( + request.GET.get('api_key'), + session.get('authuser'), + ) - authenticated = cookie_store.get('is_authenticated') - - if not auth_user.is_authenticated and auth_user.user_id is not None: - # user is not authenticated and not empty - auth_user.set_authenticated(authenticated) - request.user = auth_user - #set globals for auth user - self.authuser = c.authuser = auth_user - log.info('IP: %s User: %s accessed %s' % ( - self.ip_addr, auth_user, safe_unicode(_get_access_path(environ))) + log.info('IP: %s User: %s accessed %s', + self.ip_addr, self.authuser, + safe_unicode(_get_access_path(environ)), ) return WSGIController.__call__(self, environ, start_response) finally: @@ -404,8 +467,8 @@ if not _dbr: return - log.debug('Found repository in database %s with state `%s`' - % (safe_unicode(_dbr), safe_unicode(_dbr.repo_state))) + log.debug('Found repository in database %s with state `%s`', + safe_unicode(_dbr), safe_unicode(_dbr.repo_state)) route = getattr(request.environ.get('routes.route'), 'name', '') # allow to delete repos that are somehow damages in filesystem @@ -457,3 +520,20 @@ log.error(traceback.format_exc()) h.flash(safe_str(e), category='error') raise webob.exc.HTTPBadRequest() + + +class WSGIResultCloseCallback(object): + """Wrap a WSGI result and let close call close after calling the + close method on the result. + """ + def __init__(self, result, close): + self._result = result + self._close = close + + def __iter__(self): + return iter(self._result) + + def close(self): + if hasattr(self._result, 'close'): + self._result.close() + self._close() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/celerylib/__init__.py --- a/kallithea/lib/celerylib/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/celerylib/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.celerylib.__init__ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.celerylib +~~~~~~~~~~~~~~~~~~~~~~~ celery libs for Kallithea @@ -62,21 +62,21 @@ if CELERY_ON: try: t = task.apply_async(args=args, kwargs=kwargs) - log.info('running task %s:%s' % (t.task_id, task)) + log.info('running task %s:%s', t.task_id, task) return t - except socket.error, e: + except socket.error as e: if isinstance(e, IOError) and e.errno == 111: log.debug('Unable to connect to celeryd. Sync execution') CELERY_ON = False else: log.error(traceback.format_exc()) - except KeyError, e: + except KeyError as e: log.debug('Unable to connect to celeryd. Sync execution') - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) - log.debug('executing task %s in sync mode' % task) + log.debug('executing task %s in sync mode', task) return ResultWrapper(task(*args, **kwargs)) @@ -96,7 +96,7 @@ lockkey = __get_lockkey(func, *fargs, **fkwargs) lockkey_path = config['app_conf']['cache_dir'] - log.info('running task with lockkey %s' % lockkey) + log.info('running task with lockkey %s', lockkey) try: l = DaemonLock(file_=jn(lockkey_path, lockkey)) ret = func(*fargs, **fkwargs) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/celerylib/tasks.py --- a/kallithea/lib/celerylib/tasks.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/celerylib/tasks.py Sun Sep 06 23:36:05 2015 +0200 @@ -31,6 +31,7 @@ import os import traceback import logging +import rfc822 from os.path import join as jn from time import mktime @@ -45,6 +46,7 @@ from kallithea.lib.helpers import person from kallithea.lib.rcmail.smtp_mailer import SmtpMailer from kallithea.lib.utils import add_cache, action_logger +from kallithea.lib.vcs.utils import author_email from kallithea.lib.compat import json, OrderedDict from kallithea.lib.hooks import log_create_repository @@ -87,7 +89,7 @@ ts_max_y) lockkey_path = config['app_conf']['cache_dir'] - log.info('running task with lockkey %s' % lockkey) + log.info('running task with lockkey %s', lockkey) try: lock = l = DaemonLock(file_=jn(lockkey_path, lockkey)) @@ -134,15 +136,15 @@ cur_stats.commit_activity_combined)) co_day_auth_aggr = json.loads(cur_stats.commit_activity) - log.debug('starting parsing %s' % parse_limit) + log.debug('starting parsing %s', parse_limit) lmktime = mktime last_rev = last_rev + 1 if last_rev >= 0 else 0 - log.debug('Getting revisions from %s to %s' % ( - last_rev, last_rev + parse_limit) + log.debug('Getting revisions from %s to %s', + last_rev, last_rev + parse_limit ) for cs in repo[last_rev:last_rev + parse_limit]: - log.debug('parsing %s' % cs) + log.debug('parsing %s', cs) last_cs = cs # remember last parsed changeset k = lmktime([cs.date.timetuple()[0], cs.date.timetuple()[1], cs.date.timetuple()[2], 0, 0, 0, 0, 0, 0]) @@ -210,9 +212,9 @@ stats.commit_activity = json.dumps(co_day_auth_aggr) stats.commit_activity_combined = json.dumps(overview_data) - log.debug('last revision %s' % last_rev) + log.debug('last revision %s', last_rev) leftovers = len(repo.revisions[last_rev:]) - log.debug('revisions to parse %s' % leftovers) + log.debug('revisions to parse %s', leftovers) if last_rev == 0 or leftovers < parse_limit: log.debug('getting code trending stats') @@ -247,7 +249,7 @@ @task(ignore_result=True) @dbsession -def send_email(recipients, subject, body='', html_body='', headers=None): +def send_email(recipients, subject, body='', html_body='', headers=None, author=None): """ Sends an email with defined parameters from the .ini files. @@ -256,25 +258,49 @@ :param subject: subject of the mail :param body: body of the mail :param html_body: html version of body + :param headers: dictionary of prepopulated e-mail headers + :param author: User object of the author of this mail, if known and relevant """ log = get_logger(send_email) assert isinstance(recipients, list), recipients + if headers is None: + headers = {} + else: + # do not modify the original headers object passed by the caller + headers = headers.copy() email_config = config email_prefix = email_config.get('email_prefix', '') if email_prefix: subject = "%s %s" % (email_prefix, subject) - if recipients is None: + + if not recipients: # if recipients are not defined we send to email_config + all admins - admins = [u.email for u in User.query() - .filter(User.admin == True).all()] - recipients = [email_config.get('email_to')] + admins - log.warning("recipients not specified for '%s' - sending to admins %s", subject, ' '.join(recipients)) - elif not recipients: - log.error("No recipients specified") - return False + recipients = [u.email for u in User.query() + .filter(User.admin == True).all()] + if email_config.get('email_to') is not None: + recipients += [email_config.get('email_to')] + + # If there are still no recipients, there are no admins and no address + # configured in email_to, so return. + if not recipients: + log.error("No recipients specified and no fallback available.") + return False + + log.warning("No recipients specified for '%s' - sending to admins %s", subject, ' '.join(recipients)) - mail_from = email_config.get('app_email_from', 'Kallithea') + # SMTP sender + envelope_from = email_config.get('app_email_from', 'Kallithea') + # 'From' header + if author is not None: + # set From header based on author but with a generic e-mail address + # In case app_email_from is in "Some Name " format, we first + # extract the e-mail address. + envelope_addr = author_email(envelope_from) + headers['From'] = '"%s" <%s>' % ( + rfc822.quote('%s (no-reply)' % author.full_name_or_username), + envelope_addr) + user = email_config.get('smtp_username') passwd = email_config.get('smtp_password') mail_server = email_config.get('smtp_server') @@ -284,14 +310,23 @@ debug = str2bool(email_config.get('debug')) smtp_auth = email_config.get('smtp_auth') - if not mail_server: - log.error("SMTP mail server not configured - cannot send mail '%s' to %s", subject, ' '.join(recipients)) - log.warning("body:\n%s", body) - log.warning("html:\n%s", html_body) + logmsg = ("Mail details:\n" + "recipients: %s\n" + "headers: %s\n" + "subject: %s\n" + "body:\n%s\n" + "html:\n%s\n" + % (' '.join(recipients), headers, subject, body, html_body)) + + if mail_server: + log.debug("Sending e-mail. " + logmsg) + else: + log.error("SMTP mail server not configured - cannot send e-mail.") + log.warning(logmsg) return False try: - m = SmtpMailer(mail_from, user, passwd, mail_server, smtp_auth, + m = SmtpMailer(envelope_from, user, passwd, mail_server, smtp_auth, mail_port, ssl, tls, debug=debug) m.send(recipients, subject, body, html_body, headers=headers) except: @@ -371,7 +406,7 @@ # set new created state repo.set_state(Repository.STATE_CREATED) DBS.commit() - except Exception, e: + except Exception as e: log.warning('Exception %s occurred when forking repository, ' 'doing cleanup...' % e) # rollback things manually ! @@ -456,7 +491,7 @@ # set new created state repo.set_state(Repository.STATE_CREATED) DBS.commit() - except Exception, e: + except Exception as e: log.warning('Exception %s occurred when forking repository, ' 'doing cleanup...' % e) #rollback things manually ! diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/db_manage.py --- a/kallithea/lib/db_manage.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/db_manage.py Sun Sep 06 23:36:05 2015 +0200 @@ -39,7 +39,7 @@ from kallithea.model import init_model from kallithea.model.db import User, Permission, Ui, \ Setting, UserToPerm, DbMigrateVersion, RepoGroup, \ - UserRepoGroupToPerm, CacheInvalidation, UserGroup, Repository + UserRepoGroupToPerm, CacheInvalidation, Repository from sqlalchemy.engine import create_engine from kallithea.model.repo_group import RepoGroupModel @@ -103,7 +103,7 @@ checkfirst = not override Base.metadata.create_all(checkfirst=checkfirst) - log.info('Created tables for %s' % self.dbname) + log.info('Created tables for %s', self.dbname) def set_db_version(self): ver = DbMigrateVersion() @@ -111,7 +111,7 @@ ver.repository_id = DB_MIGRATIONS ver.repository_path = 'versions' self.sa.add(ver) - log.info('db version set to: %s' % __dbversion__) + log.info('db version set to: %s', __dbversion__) def upgrade(self): """ @@ -363,7 +363,7 @@ for k, v, t in [('auth_plugins', 'kallithea.lib.auth_modules.auth_internal', 'list'), ('auth_internal_enabled', 'True', 'bool')]: if skip_existing and Setting.get_by_name(k) != None: - log.debug('Skipping option %s' % k) + log.debug('Skipping option %s', k) continue setting = Setting(k, v, t) self.sa.add(setting) @@ -379,7 +379,7 @@ ('default_repo_type', 'hg', 'unicode')]: if skip_existing and Setting.get_by_name(k) is not None: - log.debug('Skipping option %s' % k) + log.debug('Skipping option %s', k) continue setting = Setting(k, v, t) self.sa.add(setting) @@ -396,7 +396,7 @@ .scalar() if default is None: - log.debug('missing default permission for group %s adding' % g) + log.debug('missing default permission for group %s adding', g) perm_obj = RepoGroupModel()._create_default_perms(g) self.sa.add(perm_obj) @@ -444,20 +444,20 @@ # check proper dir if not os.path.isdir(path): path_ok = False - log.error('Given path %s is not a valid directory' % (path,)) + log.error('Given path %s is not a valid directory', path) elif not os.path.isabs(path): path_ok = False - log.error('Given path %s is not an absolute path' % (path,)) + log.error('Given path %s is not an absolute path', path) # check if path is at least readable. if not os.access(path, os.R_OK): path_ok = False - log.error('Given path %s is not readable' % (path,)) + log.error('Given path %s is not readable', path) # check write access, warn user about non writeable paths elif not os.access(path, os.W_OK) and path_ok: - log.warning('No write permission to given path %s' % (path,)) + log.warning('No write permission to given path %s', path) if not ask_ok('Given path %s is not writeable, do you want to ' 'continue with read only mode ? [y/n]' % (path,)): log.error('Canceled by user') @@ -472,7 +472,7 @@ real_path = os.path.normpath(os.path.realpath(path)) if real_path != os.path.normpath(path): - log.warning('Using normalized path %s instead of %s' % (real_path, path)) + log.warning('Using normalized path %s instead of %s', real_path, path) return real_path @@ -520,7 +520,7 @@ log.info('created ui config') def create_user(self, username, password, email='', admin=False): - log.info('creating user %s' % username) + log.info('creating user %s', username) UserModel().create_or_update(username, password, email, firstname='Kallithea', lastname='Admin', active=True, admin=admin, diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/__init__.py --- a/kallithea/lib/dbmigrate/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.dbmigrate.__init__ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate +~~~~~~~~~~~~~~~~~~~~~~~ Database migration modules diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate.cfg --- a/kallithea/lib/dbmigrate/migrate.cfg Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate.cfg Sun Sep 06 23:36:05 2015 +0200 @@ -5,16 +5,16 @@ # The name of the database table used to track the schema version. # This name shouldn't already be used by your project. -# If this is changed once a database is under version control, you'll need to -# change the table name in each database too. +# If this is changed once a database is under version control, you'll need to +# change the table name in each database too. version_table=db_migrate_version -# When committing a change script, Migrate will attempt to generate the +# When committing a change script, Migrate will attempt to generate the # sql for all supported databases; normally, if one of them fails - probably -# because you don't have that database installed - it is ignored and the -# commit continues, perhaps ending successfully. -# Databases in this list MUST compile successfully during a commit, or the -# entire commit will fail. List the databases your application will actually +# because you don't have that database installed - it is ignored and the +# commit continues, perhaps ending successfully. +# Databases in this list MUST compile successfully during a commit, or the +# entire commit will fail. List the databases your application will actually # be using to ensure your updates to that database work properly. # This must be a list; example: ['postgres','sqlite'] required_dbs=['sqlite'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/config.py --- a/kallithea/lib/dbmigrate/migrate/versioning/config.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/config.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- from sqlalchemy.util import OrderedDict diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/migrate_repository.py --- a/kallithea/lib/dbmigrate/migrate/versioning/migrate_repository.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/migrate_repository.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,13 +25,13 @@ def delete_file(filepath): """Deletes a file and prints a message.""" - log.info('Deleting file: %s' % filepath) + log.info('Deleting file: %s', filepath) os.remove(filepath) def move_file(src, tgt): """Moves a file and prints a message.""" - log.info('Moving file %s to %s' % (src, tgt)) + log.info('Moving file %s to %s', src, tgt) if os.path.exists(tgt): raise Exception( 'Cannot move file %s because target %s already exists' % \ @@ -41,13 +41,13 @@ def delete_directory(dirpath): """Delete a directory and print a message.""" - log.info('Deleting directory: %s' % dirpath) + log.info('Deleting directory: %s', dirpath) os.rmdir(dirpath) def migrate_repository(repos): """Does the actual migration to the new repository format.""" - log.info('Migrating repository at: %s to new format' % repos) + log.info('Migrating repository at: %s to new format', repos) versions = '%s/versions' % repos dirs = os.listdir(versions) # Only use int's in list. @@ -55,7 +55,7 @@ numdirs.sort() # Sort list. for dirname in numdirs: origdir = '%s/%s' % (versions, dirname) - log.info('Working on directory: %s' % origdir) + log.info('Working on directory: %s', origdir) files = os.listdir(origdir) files.sort() for filename in files: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/pathed.py --- a/kallithea/lib/dbmigrate/migrate/versioning/pathed.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/pathed.py Sun Sep 06 23:36:05 2015 +0200 @@ -35,7 +35,7 @@ """Try to initialize this object's parent, if it has one""" parent_path = self.__class__._parent_path(path) self.parent = self.__class__.parent(parent_path) - log.debug("Getting parent %r:%r" % (self.__class__.parent, parent_path)) + log.debug("Getting parent %r:%r", self.__class__.parent, parent_path) self.parent._init_child(path, self) def _init_child(self, child, path): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/repository.py --- a/kallithea/lib/dbmigrate/migrate/versioning/repository.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/repository.py Sun Sep 06 23:36:05 2015 +0200 @@ -74,14 +74,14 @@ _versions = 'versions' def __init__(self, path): - log.debug('Loading repository %s...' % path) + log.debug('Loading repository %s...', path) self.verify(path) super(Repository, self).__init__(path) self.config = cfgparse.Config(os.path.join(self.path, self._config)) self.versions = version.Collection(os.path.join(self.path, self._versions)) - log.debug('Repository %s loaded successfully' % path) - log.debug('Config: %r' % self.config.to_dict()) + log.debug('Repository %s loaded successfully', path) + log.debug('Config: %r', self.config.to_dict()) @classmethod def verify(cls, path): @@ -95,7 +95,7 @@ cls.require_found(path) cls.require_found(os.path.join(path, cls._config)) cls.require_found(os.path.join(path, cls._versions)) - except exceptions.PathNotFoundError, e: + except exceptions.PathNotFoundError as e: raise exceptions.InvalidRepositoryError(path) @classmethod diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/script/__init__.py --- a/kallithea/lib/dbmigrate/migrate/versioning/script/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/script/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- from kallithea.lib.dbmigrate.migrate.versioning.script.base import BaseScript diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/script/base.py --- a/kallithea/lib/dbmigrate/migrate/versioning/script/base.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/script/base.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import logging @@ -24,10 +24,10 @@ """ # TODO: sphinxfy this and implement it correctly def __init__(self, path): - log.debug('Loading script %s...' % path) + log.debug('Loading script %s...', path) self.verify(path) super(BaseScript, self).__init__(path) - log.debug('Script %s loaded successfully' % path) + log.debug('Script %s loaded successfully', path) @classmethod def verify(cls, path): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/script/py.py --- a/kallithea/lib/dbmigrate/migrate/versioning/script/py.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/script/py.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import shutil @@ -96,7 +96,7 @@ module = import_path(path) try: assert callable(module.upgrade) - except Exception, e: + except Exception as e: raise InvalidScriptError(path + ': %s' % str(e)) return module diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/script/sql.py --- a/kallithea/lib/dbmigrate/migrate/versioning/script/sql.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/script/sql.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import logging import shutil diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/shell.py --- a/kallithea/lib/dbmigrate/migrate/versioning/shell.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/shell.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- """The migrate command-line tool.""" @@ -207,7 +207,7 @@ ret = command_func(**kwargs) if ret is not None: log.info(ret) - except (exceptions.UsageError, exceptions.KnownError), e: + except (exceptions.UsageError, exceptions.KnownError) as e: parser.error(e.args[0]) if __name__ == "__main__": diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/template.py --- a/kallithea/lib/dbmigrate/migrate/versioning/template.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/template.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import os diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/templates/manage.py_tmpl --- a/kallithea/lib/dbmigrate/migrate/versioning/templates/manage.py_tmpl Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/templates/manage.py_tmpl Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 from migrate.versioning.shell import main if __name__ == '__main__': diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/default.py_tmpl --- a/kallithea/lib/dbmigrate/migrate/versioning/templates/manage/default.py_tmpl Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/templates/manage/default.py_tmpl Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 from migrate.versioning.shell import main {{py: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/templates/manage/pylons.py_tmpl --- a/kallithea/lib/dbmigrate/migrate/versioning/templates/manage/pylons.py_tmpl Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/templates/manage/pylons.py_tmpl Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/migrate.cfg --- a/kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/migrate.cfg Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/templates/repository/default/migrate.cfg Sun Sep 06 23:36:05 2015 +0200 @@ -5,16 +5,16 @@ # The name of the database table used to track the schema version. # This name shouldn't already be used by your project. -# If this is changed once a database is under version control, you'll need to -# change the table name in each database too. +# If this is changed once a database is under version control, you'll need to +# change the table name in each database too. version_table={{ locals().pop('version_table') }} -# When committing a change script, Migrate will attempt to generate the +# When committing a change script, Migrate will attempt to generate the # sql for all supported databases; normally, if one of them fails - probably -# because you don't have that database installed - it is ignored and the -# commit continues, perhaps ending successfully. -# Databases in this list MUST compile successfully during a commit, or the -# entire commit will fail. List the databases your application will actually +# because you don't have that database installed - it is ignored and the +# commit continues, perhaps ending successfully. +# Databases in this list MUST compile successfully during a commit, or the +# entire commit will fail. List the databases your application will actually # be using to ensure your updates to that database work properly. # This must be a list; example: ['postgres','sqlite'] required_dbs={{ locals().pop('required_dbs') }} @@ -22,4 +22,4 @@ # When creating new change scripts, Migrate will stamp the new script with # a version number. By default this is latest_version + 1. You can set this # to 'true' to tell Migrate to use the UTC timestamp instead. -use_timestamp_numbering='false' \ No newline at end of file +use_timestamp_numbering='false' diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/migrate.cfg --- a/kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/migrate.cfg Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/templates/repository/pylons/migrate.cfg Sun Sep 06 23:36:05 2015 +0200 @@ -5,16 +5,16 @@ # The name of the database table used to track the schema version. # This name shouldn't already be used by your project. -# If this is changed once a database is under version control, you'll need to -# change the table name in each database too. +# If this is changed once a database is under version control, you'll need to +# change the table name in each database too. version_table={{ locals().pop('version_table') }} -# When committing a change script, Migrate will attempt to generate the +# When committing a change script, Migrate will attempt to generate the # sql for all supported databases; normally, if one of them fails - probably -# because you don't have that database installed - it is ignored and the -# commit continues, perhaps ending successfully. -# Databases in this list MUST compile successfully during a commit, or the -# entire commit will fail. List the databases your application will actually +# because you don't have that database installed - it is ignored and the +# commit continues, perhaps ending successfully. +# Databases in this list MUST compile successfully during a commit, or the +# entire commit will fail. List the databases your application will actually # be using to ensure your updates to that database work properly. # This must be a list; example: ['postgres','sqlite'] required_dbs={{ locals().pop('required_dbs') }} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/util/__init__.py --- a/kallithea/lib/dbmigrate/migrate/versioning/util/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/util/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- """.. currentmodule:: migrate.versioning.util""" @@ -87,7 +87,7 @@ try: return f(*a, **kw) - except exceptions.PathFoundError, e: + except exceptions.PathFoundError as e: raise exceptions.KnownError("The path %s already exists" % e.args[0]) def construct_engine(engine, **opts): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/util/keyedinstance.py --- a/kallithea/lib/dbmigrate/migrate/versioning/util/keyedinstance.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/util/keyedinstance.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- class KeyedInstance(object): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/migrate/versioning/version.py --- a/kallithea/lib/dbmigrate/migrate/versioning/version.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/migrate/versioning/version.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- import os diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_2_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_2_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_2_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_2_0 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_2_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.2.X @@ -323,7 +323,7 @@ self.last_login = datetime.datetime.now() Session.add(self) Session.commit() - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def create(cls, form_data): @@ -698,7 +698,7 @@ try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository' % alias) + log.debug('Creating instance of %s repository', alias) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -785,7 +785,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1060,7 +1060,7 @@ :param key: """ - log.debug('marking %s for invalidation' % key) + log.debug('marking %s for invalidation', key) inv_obj = Session.query(cls)\ .filter(cls.cache_key == key).scalar() if inv_obj: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_3_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_3_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_3_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_3_0 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_3_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.3.X @@ -391,7 +391,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session.add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) def __json__(self): return dict( @@ -716,7 +716,7 @@ repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository' % alias) + log.debug('Creating instance of %s repository', alias) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -813,7 +813,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1151,8 +1151,8 @@ key, _prefix, _org_key = cls._get_key(key) inv_objs = Session.query(cls).filter(cls.cache_args == _org_key).all() - log.debug('marking %s key[s] %s for invalidation' % (len(inv_objs), - _org_key)) + log.debug('marking %s key[s] %s for invalidation', len(inv_objs), + _org_key) try: for inv_obj in inv_objs: if inv_obj: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_4_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_4_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_4_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_4_0 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_4_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.4.X @@ -437,7 +437,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) def get_api_data(self): """ @@ -863,7 +863,7 @@ if last_change is None: last_change = datetime.datetime.now() if self.updated_on is None or self.updated_on != last_change: - log.debug('updated repo %s with new date %s' % (self, last_change)) + log.debug('updated repo %s with new date %s', self, last_change) self.updated_on = last_change Session().add(self) Session().commit() @@ -977,7 +977,7 @@ repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository' % alias) + log.debug('Creating instance of %s repository', alias) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1081,7 +1081,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1505,8 +1505,8 @@ elif repo_name: inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s' - % (len(inv_objs), key, repo_name)) + log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s', + len(inv_objs), key, repo_name) try: for inv_obj in inv_objs: inv_obj.cache_active = False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_5_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_5_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_5_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_5_0 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_5_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.5.2 @@ -455,7 +455,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) def get_api_data(self): """ @@ -882,7 +882,7 @@ if last_change is None: last_change = datetime.datetime.now() if self.updated_on is None or self.updated_on != last_change: - log.debug('updated repo %s with new date %s' % (self, last_change)) + log.debug('updated repo %s with new date %s', self, last_change) self.updated_on = last_change Session().add(self) Session().commit() @@ -996,7 +996,7 @@ repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository' % alias) + log.debug('Creating instance of %s repository', alias) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1100,7 +1100,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1532,8 +1532,8 @@ elif repo_name: inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s' - % (len(inv_objs), key, repo_name)) + log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s', + len(inv_objs), key, repo_name) try: for inv_obj in inv_objs: inv_obj.cache_active = False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_5_2.py --- a/kallithea/lib/dbmigrate/schema/db_1_5_2.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_5_2.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_5_2 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_5_2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.5.X @@ -462,7 +462,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) def get_api_data(self): """ @@ -995,15 +995,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1117,7 +1117,7 @@ repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository' % alias) + log.debug('Creating instance of %s repository', alias) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1221,7 +1221,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1645,8 +1645,8 @@ elif repo_name: inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s' - % (len(inv_objs), key, repo_name)) + log.debug('marking %s key[s] for invalidation based on key=%s,repo_name=%s', + len(inv_objs), key, repo_name) try: for inv_obj in inv_objs: inv_obj.cache_active = False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_6_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_6_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_6_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db_1_6_0 -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_6_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea <=1.5.X @@ -48,7 +48,7 @@ from kallithea.lib.vcs.backends.base import EmptyChangeset from kallithea.lib.utils2 import str2bool, safe_str, get_changeset_safe, \ - safe_unicode, remove_suffix, remove_prefix, time_to_datetime, _set_extras + safe_unicode, remove_suffix, remove_prefix, time_to_datetime from kallithea.lib.compat import json from kallithea.lib.caching_query import FromCache @@ -491,7 +491,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) def get_api_data(self): """ @@ -1065,15 +1065,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1192,8 +1192,8 @@ repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1296,7 +1296,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1723,8 +1723,8 @@ try: for inv_obj in inv_objs: inv_obj.cache_active = False - log.debug('marking %s key for invalidation based on key=%s,repo_name=%s' - % (inv_obj, key, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on key=%s,repo_name=%s', + inv_obj, key, safe_str(repo_name)) invalidated_keys.append(inv_obj.cache_key) Session().add(inv_obj) Session().commit() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_7_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_7_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_7_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_7_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -48,7 +48,7 @@ from kallithea.lib.vcs.backends.base import EmptyChangeset from kallithea.lib.utils2 import str2bool, safe_str, get_changeset_safe, \ - safe_unicode, remove_suffix, remove_prefix, time_to_datetime, _set_extras + safe_unicode, remove_prefix, time_to_datetime from kallithea.lib.compat import json from kallithea.lib.caching_query import FromCache @@ -493,7 +493,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1096,15 +1096,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1199,18 +1199,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1314,7 +1314,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1828,8 +1828,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) inv_obj.cache_active = False Session().add(inv_obj) Session().commit() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_1_8_0.py --- a/kallithea/lib/dbmigrate/schema/db_1_8_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_1_8_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_1_8_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -48,7 +48,7 @@ from kallithea.lib.vcs.backends.base import EmptyChangeset from kallithea.lib.utils2 import str2bool, safe_str, get_changeset_safe, \ - safe_unicode, remove_suffix, remove_prefix, time_to_datetime, _set_extras + safe_unicode, remove_prefix, time_to_datetime from kallithea.lib.compat import json from kallithea.lib.caching_query import FromCache @@ -516,7 +516,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1126,15 +1126,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1229,18 +1229,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1344,7 +1344,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1874,8 +1874,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) inv_obj.cache_active = False Session().add(inv_obj) Session().commit() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_0_0.py --- a/kallithea/lib/dbmigrate/schema/db_2_0_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_0_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_0_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -568,7 +568,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1183,15 +1183,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1286,18 +1286,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1401,7 +1401,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1931,8 +1931,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_0_1.py --- a/kallithea/lib/dbmigrate/schema/db_2_0_1.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_0_1.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_0_1 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -568,7 +568,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1182,15 +1182,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1285,18 +1285,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1402,7 +1402,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1932,8 +1932,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_0_2.py --- a/kallithea/lib/dbmigrate/schema/db_2_0_2.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_0_2.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_0_2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -568,7 +568,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1202,15 +1202,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1305,18 +1305,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1423,7 +1423,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1953,8 +1953,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_1_0.py --- a/kallithea/lib/dbmigrate/schema/db_2_1_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_1_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_1_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -583,7 +583,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1241,15 +1241,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1344,18 +1344,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1462,7 +1462,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -1992,8 +1992,8 @@ try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_2_0.py --- a/kallithea/lib/dbmigrate/schema/db_2_2_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_2_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_2_0 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -437,7 +437,7 @@ user_comments = relationship('ChangesetComment', cascade='all') #extra emails for this user user_emails = relationship('UserEmailMap', cascade='all') - #extra api keys + #extra API keys user_api_keys = relationship('UserApiKeys', cascade='all') @@ -610,7 +610,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1239,7 +1239,7 @@ pass return get_clone_url(uri_tmpl=uri_tmpl, - qualifed_home_url=qualified_home_url, + qualified_home_url=qualified_home_url, repo_name=self.repo_name, repo_id=self.repo_id, **override) @@ -1287,15 +1287,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1390,18 +1390,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1512,7 +1512,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -2042,11 +2042,11 @@ Mark all caches of a repo as invalid in the database. """ inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('for repo %s got %s invalidation objects' % (repo_name, inv_objs)) + log.debug('for repo %s got %s invalidation objects', repo_name, inv_objs) try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/schema/db_2_2_3.py --- a/kallithea/lib/dbmigrate/schema/db_2_2_3.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/schema/db_2_2_3.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.db -~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.schema.db_2_2_3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Database Models for Kallithea @@ -437,7 +437,7 @@ user_comments = relationship('ChangesetComment', cascade='all') #extra emails for this user user_emails = relationship('UserEmailMap', cascade='all') - #extra api keys + #extra API keys user_api_keys = relationship('UserApiKeys', cascade='all') @@ -610,7 +610,7 @@ """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -1263,7 +1263,7 @@ pass return get_clone_url(uri_tmpl=uri_tmpl, - qualifed_home_url=qualified_home_url, + qualified_home_url=qualified_home_url, repo_name=self.repo_name, repo_id=self.repo_id, **override) @@ -1314,15 +1314,15 @@ if (cs_cache != self.changeset_cache or not self.changeset_cache): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('Skipping repo:%s already with latest changes' - % self.repo_name) + log.debug('Skipping repo:%s already with latest changes', + self.repo_name) @property def tip(self): @@ -1417,18 +1417,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting obj for %s from cache' % (rn)) + log.debug('Getting obj for %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path try: alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) except VCSError: log.error(traceback.format_exc()) @@ -1539,7 +1539,7 @@ break if cnt == parents_recursion_limit: # this will prevent accidental infinite loops - log.error('group nested more than %s' % + log.error('group nested more than %s', parents_recursion_limit) break @@ -2087,12 +2087,12 @@ Mark all caches of a repo as invalid in the database. """ inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('for repo %s got %s invalidation objects' - % (safe_str(repo_name), inv_objs)) + log.debug('for repo %s got %s invalidation objects', + safe_str(repo_name), inv_objs) try: for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/001_initial_release.py --- a/kallithea/lib/dbmigrate/versions/001_initial_release.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/001_initial_release.py Sun Sep 06 23:36:05 2015 +0200 @@ -76,7 +76,7 @@ self.last_login = datetime.datetime.now() session.add(self) session.commit() - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) except (DatabaseError,): session.rollback() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/004_version_1_3_0.py --- a/kallithea/lib/dbmigrate/versions/004_version_1_3_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/004_version_1_3_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -22,19 +22,19 @@ #========================================================================== # Add table `changeset_comments` #========================================================================== - from kallithea.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment + from kallithea.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment ChangesetComment().__table__.create() #========================================================================== # Add table `notifications` #========================================================================== - from kallithea.lib.dbmigrate.schema.db_1_3_0 import Notification + from kallithea.lib.dbmigrate.schema.db_1_3_0 import Notification Notification().__table__.create() #========================================================================== # Add table `user_to_notification` #========================================================================== - from kallithea.lib.dbmigrate.schema.db_1_3_0 import UserNotification + from kallithea.lib.dbmigrate.schema.db_1_3_0 import UserNotification UserNotification().__table__.create() #========================================================================== diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/005_version_1_3_0.py --- a/kallithea/lib/dbmigrate/versions/005_version_1_3_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/005_version_1_3_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -33,7 +33,7 @@ if old_cons: try: old_cons.drop() - except Exception, e: + except Exception as e: # we don't care if this fails really... better to pass migration than # leave this in intermidiate state print 'Failed to remove Unique for user_id, repository_id reason %s' % e @@ -61,7 +61,7 @@ if old_cons: try: old_cons.drop() - except Exception, e: + except Exception as e: # we don't care if this fails really... better to pass migration than # leave this in intermidiate state print 'Failed to remove Unique for user_id, repository_id reason %s' % e diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/008_version_1_5_0.py --- a/kallithea/lib/dbmigrate/versions/008_version_1_5_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/008_version_1_5_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -90,7 +90,7 @@ perms = models.UserToPerm.query().filter(models.UserToPerm.user == user).all() defined_perms_groups = map(_get_group, (x.permission.permission_name for x in perms)) - log.debug('GOT ALREADY DEFINED:%s' % perms) + log.debug('GOT ALREADY DEFINED:%s', perms) DEFAULT_PERMS = models.Permission.DEFAULT_USER_PERMISSIONS # for every default permission that needs to be created, we check if @@ -98,8 +98,8 @@ for perm_name in DEFAULT_PERMS: gr = _get_group(perm_name) if gr not in defined_perms_groups: - log.debug('GR:%s not found, creating permission %s' - % (gr, perm_name)) + log.debug('GR:%s not found, creating permission %s', + gr, perm_name) new_perm = _make_perm(perm_name) _SESSION().add(new_perm) _SESSION().commit() @@ -115,7 +115,7 @@ ('default_repo_type', 'hg')]: if skip_existing and models.Setting.get_by_name(k) is not None: - log.debug('Skipping option %s' % k) + log.debug('Skipping option %s', k) continue setting = models.Setting(k, v) _SESSION().add(setting) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/012_version_1_7_0.py --- a/kallithea/lib/dbmigrate/versions/012_version_1_7_0.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/012_version_1_7_0.py Sun Sep 06 23:36:05 2015 +0200 @@ -93,7 +93,7 @@ perms = models.UserToPerm.query().filter(models.UserToPerm.user == user).all() defined_perms_groups = map(_get_group, (x.permission.permission_name for x in perms)) - log.debug('GOT ALREADY DEFINED:%s' % perms) + log.debug('GOT ALREADY DEFINED:%s', perms) DEFAULT_PERMS = models.Permission.DEFAULT_USER_PERMISSIONS # for every default permission that needs to be created, we check if @@ -101,8 +101,8 @@ for perm_name in DEFAULT_PERMS: gr = _get_group(perm_name) if gr not in defined_perms_groups: - log.debug('GR:%s not found, creating permission %s' - % (gr, perm_name)) + log.debug('GR:%s not found, creating permission %s', + gr, perm_name) new_perm = _make_perm(perm_name) _SESSION().add(new_perm) _SESSION().commit() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/022_version_2_0_2.py --- a/kallithea/lib/dbmigrate/versions/022_version_2_0_2.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/022_version_2_0_2.py Sun Sep 06 23:36:05 2015 +0200 @@ -50,7 +50,7 @@ _rev_type = 'branch' elif _rev in known_bookmarks: _rev_type = 'book' - except Exception, e: + except Exception as e: print e print 'continue...' #we don't want any error to break the process diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/dbmigrate/versions/__init__.py --- a/kallithea/lib/dbmigrate/versions/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/dbmigrate/versions/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.dbmigrate.versions.__init__ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.dbmigrate.versions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Package containing new versions of database models diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/diffs.py --- a/kallithea/lib/diffs.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/diffs.py Sun Sep 06 23:36:05 2015 +0200 @@ -193,8 +193,8 @@ (?:^\+\+\+[ ](b/(?P.+?)|/dev/null)\t?(?:\n|$))? """, re.VERBOSE | re.MULTILINE) - #used for inline highlighter word split - _token_re = re.compile(r'()(>|<|&|\t| |\W+?)') + # Used for inline highlighter word split, must match the substitutions in _escaper + _token_re = re.compile(r'()(&|<|>|\t|| |\W+?)') _escape_re = re.compile(r'(&)|(<)|(>)|(\t)|(\r)|(?<=.)( \n| $)') @@ -618,7 +618,7 @@ """ # Transform all whitespace to underscore - idstring = re.sub(r'\s', "_", '%s' % idstring) + idstring = re.sub(r'\s', "_", idstring) # Remove everything that is not a hyphen or a member of \w idstring = re.sub(r'(?!-)\W', "", idstring).lower() return idstring diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/exceptions.py --- a/kallithea/lib/exceptions.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/exceptions.py Sun Sep 06 23:36:05 2015 +0200 @@ -45,6 +45,7 @@ class DefaultUserException(Exception): + """An invalid action was attempted on the default user""" pass @@ -98,6 +99,10 @@ pass +class UserInvalidException(Exception): + pass + + class RepositoryCreationError(Exception): pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/graphmod.py --- a/kallithea/lib/graphmod.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/graphmod.py Sun Sep 06 23:36:05 2015 +0200 @@ -103,6 +103,7 @@ row = [] colors = {} + obs = {} newcolor = 1 for (rev, dagparents) in dag: @@ -111,6 +112,7 @@ if rev not in row: row.append(rev) # new head colors[rev] = newcolor + obs[rev] = int(repo[rev].obsolete) newcolor += 1 col = row.index(rev) @@ -126,12 +128,14 @@ nextrow.append(r) else: colors.pop(r) + obs.pop(r) # Set colors for the parents color = colors.pop(rev) if addparents: b = branch(rev) for p in reversed(addparents): + obs[p] = int(repo[p].obsolete) if b and branch(abs(p)) == b: colors[p] = color b = None @@ -143,12 +147,13 @@ edges = [] for ecol, ep in enumerate(row): if ep in nextrow: - edges.append((ecol, nextrow.index(ep), colors[ep])) + edges.append((ecol, nextrow.index(ep), colors[ep], obs[ep])) elif ep == rev: for p in dagparents: - edges.append((ecol, nextrow.index(p), colors[p])) + edges.append((ecol, nextrow.index(p), colors[p], obs[p])) # Yield and move on closing = int(repo[rev].closesbranch) - yield ((col, color), edges, closing) + obsolete = int(repo[rev].obsolete) + yield ((col, color), edges, closing, obsolete) row = nextrow diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/helpers.py --- a/kallithea/lib/helpers.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/helpers.py Sun Sep 06 23:36:05 2015 +0200 @@ -17,7 +17,6 @@ Consists of functions to typically be used within templates, but also available to Controllers. This module is available to both as 'h'. """ -import random import hashlib import StringIO import math @@ -30,7 +29,6 @@ from pygments import highlight as code_highlight from pylons import url from pylons.i18n.translation import _, ungettext -from hashlib import md5 from webhelpers.html import literal, HTML, escape from webhelpers.html.tools import * @@ -89,24 +87,23 @@ parts = url('home', qualified=True).split('://', 1) return parts[1].split('/', 1)[0] -def html_escape(text, html_escape_table=None): - """Produce entities within text.""" - if not html_escape_table: - html_escape_table = { - "&": "&", - '"': """, - "'": "'", - ">": ">", - "<": "<", - } - return "".join(html_escape_table.get(c, c) for c in text) +def html_escape(s): + """Return string with all html escaped. + This is also safe for javascript in html but not necessarily correct. + """ + return (s + .replace('&', '&') + .replace(">", ">") + .replace("<", "<") + .replace('"', """) + .replace("'", "'") + ) - -def shorter(text, size=20): +def shorter(s, size=20): postfix = '...' - if len(text) > size: - return text[:size - len(postfix)] + postfix - return text + if len(s) > size: + return s[:size - len(postfix)] + postfix + return s def _reset(name, value=None, id=NotGiven, type="reset", **attrs): @@ -131,7 +128,7 @@ :param path: """ - return 'C-%s-%s' % (short_id(raw_id), md5(safe_str(path)).hexdigest()[:12]) + return 'C-%s-%s' % (short_id(raw_id), hashlib.md5(safe_str(path)).hexdigest()[:12]) class _GetError(object): @@ -150,21 +147,6 @@ get_error = _GetError() -class _ToolTip(object): - - def __call__(self, tooltip_title, trim_at=50): - """ - Special function just to wrap our text into nice formatted - autowrapped text - - :param tooltip_title: - """ - tooltip_title = escape(tooltip_title) - tooltip_title = tooltip_title.replace('<', '<').replace('>', '>') - return tooltip_title -tooltip = _ToolTip() - - class _FilesBreadCrumbs(object): def __call__(self, repo_name, rev, paths): @@ -355,12 +337,10 @@ author = escape(changeset.author) date = changeset.date message = escape(changeset.message) - tooltip_html = ("
Author:" " %s
Date: %s
Message:" - " %s
") + " %s
") % (author, date, message) - tooltip_html = tooltip_html % (author, date, message) lnk_format = show_id(changeset) uri = link_to( lnk_format, @@ -406,6 +386,25 @@ class Flash(_Flash): + def __call__(self, message, category=None, ignore_duplicate=False, logf=None): + """ + Show a message to the user _and_ log it through the specified function + + category: notice (default), warning, error, success + logf: a custom log function - such as log.debug + + logf defaults to log.info, unless category equals 'success', in which + case logf defaults to log.debug. + """ + if logf is None: + logf = log.info + if category == 'success': + logf = log.debug + + logf('Flash %s: %s', category, message) + + super(Flash, self).__call__(message, category, ignore_duplicate) + def pop_messages(self): """Return all accumulated messages and delete them from the session. @@ -423,7 +422,7 @@ #============================================================================== from kallithea.lib.vcs.utils import author_name, author_email from kallithea.lib.utils2 import credentials_filter, age as _age -from kallithea.model.db import User, ChangesetStatus +from kallithea.model.db import User, ChangesetStatus, PullRequest age = lambda x, y=False: _age(x, y) capitalize = lambda x: x.capitalize() @@ -447,7 +446,7 @@ if show_rev: return 'r%s:%s' % (cs.revision, raw_id) else: - return '%s' % (raw_id) + return raw_id def fmt_date(date): @@ -545,13 +544,13 @@ if not value: return '' - value = re.sub(r'\[see\ \=\>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', + value = re.sub(r'\[see\ \=>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', '
see => \\1
', value) - value = re.sub(r'\[license\ \=\>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', + value = re.sub(r'\[license\ \=>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', '', value) - value = re.sub(r'\[(requires|recommends|conflicts|base)\ \=\>\ *([a-zA-Z0-9\-\/]*)\]', + value = re.sub(r'\[(requires|recommends|conflicts|base)\ \=>\ *([a-zA-Z0-9\-\/]*)\]', '
\\1 => \\2
', value) - value = re.sub(r'\[(lang|language)\ \=\>\ *([a-zA-Z\-\/\#\+]*)\]', + value = re.sub(r'\[(lang|language)\ \=>\ *([a-zA-Z\-\/\#\+]*)\]', '
\\2
', value) value = re.sub(r'\[([a-z]+)\]', '
\\1
', value) @@ -601,32 +600,29 @@ repo_name = user_log.repository.repo_name def lnk(rev, repo_name): + lazy_cs = False + title_ = None + url_ = '#' if isinstance(rev, BaseChangeset) or isinstance(rev, AttributeDict): - lazy_cs = True - if getattr(rev, 'op', None) and getattr(rev, 'ref_name', None): - lazy_cs = False - lbl = '?' + if rev.op and rev.ref_name: if rev.op == 'delete_branch': - lbl = '%s' % _('Deleted branch: %s') % rev.ref_name - title = '' + lbl = _('Deleted branch: %s') % rev.ref_name elif rev.op == 'tag': - lbl = '%s' % _('Created tag: %s') % rev.ref_name - title = '' - _url = '#' - + lbl = _('Created tag: %s') % rev.ref_name + else: + lbl = 'Unknown operation %s' % rev.op else: - lbl = '%s' % (rev.short_id[:8]) - _url = url('changeset_home', repo_name=repo_name, + lazy_cs = True + lbl = rev.short_id[:8] + url_ = url('changeset_home', repo_name=repo_name, revision=rev.raw_id) - title = tooltip(rev.message) else: - ## changeset cannot be found/striped/removed etc. - lbl = ('%s' % rev)[:12] - _url = '#' - title = _('Changeset not found') + # changeset cannot be found - it might have been stripped or removed + lbl = rev[:12] + title_ = _('Changeset not found') if parse_cs: - return link_to(lbl, _url, title=title, class_='tooltip') - return link_to(lbl, _url, raw_id=rev.raw_id, repo_name=repo_name, + return link_to(lbl, url_, title=title_, class_='tooltip') + return link_to(lbl, url_, raw_id=rev.raw_id, repo_name=repo_name, class_='lazy-cs' if lazy_cs else '') def _get_op(rev_txt): @@ -650,9 +646,8 @@ _rev = repo.get_changeset(rev) revs.append(_rev) except ChangesetDoesNotExistError: - log.error('cannot find revision %s in this repo' % rev) + log.error('cannot find revision %s in this repo', rev) revs.append(rev) - continue else: _rev = AttributeDict({ 'short_id': rev[:12], @@ -679,7 +674,7 @@ url('changeset_home', repo_name=repo_name, revision=_rev ), - _('compare view') + _('Compare view') ) ) @@ -723,8 +718,8 @@ def get_fork_name(): repo_name = action_params - _url = url('summary_home', repo_name=repo_name) - return _('fork name %s') % link_to(action_params, _url) + url_ = url('summary_home', repo_name=repo_name) + return _('Fork name %s') % link_to(action_params, url_) def get_user_name(): user_name = action_params @@ -736,12 +731,15 @@ def get_pull_request(): pull_request_id = action_params + nice_id = PullRequest.make_nice_id(pull_request_id) + deleted = user_log.repository is None if deleted: repo_name = user_log.repository_name else: repo_name = user_log.repository.repo_name - return link_to(_('Pull request #%s') % pull_request_id, + + return link_to(_('Pull request %s') % nice_id, url('pullrequest_show', repo_name=repo_name, pull_request_id=pull_request_id)) @@ -852,7 +850,7 @@ # here it makes sense to use style="width: ..." (instead of, say, a # stylesheet) because we using this to generate a high-res (retina) size - tmpl = """gravatar""" + tmpl = '' # if src is empty then there was no gravatar, so we use a font icon if not src: @@ -940,32 +938,31 @@ # and the currently displayed page range if leftmost_page - self.first_page > 1: # Wrap in a SPAN tag if nolink_attr is set - text = '..' + text_ = '..' if self.dotdot_attr: - text = HTML.span(c=text, **self.dotdot_attr) - nav_items.append(text) + text_ = HTML.span(c=text_, **self.dotdot_attr) + nav_items.append(text_) for thispage in xrange(leftmost_page, rightmost_page + 1): # Highlight the current page number and do not use a link + text_ = str(thispage) if thispage == self.page: - text = '%s' % (thispage,) # Wrap in a SPAN tag if nolink_attr is set if self.curpage_attr: - text = HTML.span(c=text, **self.curpage_attr) - nav_items.append(text) + text_ = HTML.span(c=text_, **self.curpage_attr) + nav_items.append(text_) # Otherwise create just a link to that page else: - text = '%s' % (thispage,) - nav_items.append(self._pagerlink(thispage, text)) + nav_items.append(self._pagerlink(thispage, text_)) # Insert dots if there are pages between the displayed # page numbers and the end of the page range if self.last_page - rightmost_page > 1: - text = '..' + text_ = '..' # Wrap in a SPAN tag if nolink_attr is set if self.dotdot_attr: - text = HTML.span(c=text, **self.dotdot_attr) - nav_items.append(text) + text_ = HTML.span(c=text_, **self.dotdot_attr) + nav_items.append(text_) # Create a link to the very last page (unless we are on the last # page or there would be no need to insert '..' spacers) @@ -1128,7 +1125,7 @@ return literal(pref + '
'.join([safe_unicode(x.path) for x in nodes[:30]]) + suf) else: - return ': ' + _('No Files') + return ': ' + _('No files') def repo_link(groups_and_repos): @@ -1213,7 +1210,7 @@ #import ipdb;ipdb.set_trace() b_d = '
%s
' % (bin_op, cgen('a', a_v='', d_v=0), lbl) - b_a = '
' + b_a = '
' return literal('
%s%s
' % (width, b_a, b_d)) t = stats['added'] + stats['deleted'] @@ -1243,21 +1240,26 @@ return literal('
%s%s
' % (width, d_a, d_d)) -def urlify_text(text_, safe=True): +def _urlify_text(s): """ Extract urls from text and make html links out of them - - :param text_: """ - def url_func(match_obj): - url_full = match_obj.groups()[0] + url_full = match_obj.group(1) return '%(url)s' % ({'url': url_full}) - _newtext = url_re.sub(url_func, text_) - if safe: - return literal(_newtext) - return _newtext + return url_re.sub(url_func, s) +def urlify_text(s, truncate=None, stylize=False, truncatef=truncate): + """ + Extract urls from text and make literal html links out of them + """ + if truncate is not None: + s = truncatef(s, truncate) + s = html_escape(s) + if stylize: + s = desc_stylize(s) + s = _urlify_text(s) + return literal(s) def urlify_changesets(text_, repository): """ @@ -1298,14 +1300,13 @@ :param repository: :param link_: changeset link """ - def escaper(string): - return string.replace('<', '<').replace('>', '>') + newtext = html_escape(text_) # urlify changesets - extract revisions and make link out of them - newtext = urlify_changesets(escaper(text_), repository) + newtext = urlify_changesets(newtext, repository) # extract http/https links and make them real urls - newtext = urlify_text(newtext, safe=False) + newtext = _urlify_text(newtext) newtext = urlify_issues(newtext, repository, link_) @@ -1323,19 +1324,19 @@ ] if valid_indices: - log.debug('found issue server suffixes `%s` during valuation of: %s' - % (','.join(valid_indices), newtext)) + log.debug('found issue server suffixes `%s` during valuation of: %s', + ','.join(valid_indices), newtext) for pattern_index in valid_indices: ISSUE_PATTERN = conf.get('issue_pat%s' % pattern_index) ISSUE_SERVER_LNK = conf.get('issue_server_link%s' % pattern_index) ISSUE_PREFIX = conf.get('issue_prefix%s' % pattern_index) - log.debug('pattern suffix `%s` PAT:%s SERVER_LINK:%s PREFIX:%s' - % (pattern_index, ISSUE_PATTERN, ISSUE_SERVER_LNK, - ISSUE_PREFIX)) + log.debug('pattern suffix `%s` PAT:%s SERVER_LINK:%s PREFIX:%s', + pattern_index, ISSUE_PATTERN, ISSUE_SERVER_LNK, + ISSUE_PREFIX) - URL_PAT = re.compile(r'%s' % ISSUE_PATTERN) + URL_PAT = re.compile(ISSUE_PATTERN) def url_func(match_obj): pref = '' @@ -1362,7 +1363,7 @@ 'serv': ISSUE_SERVER_LNK, } newtext = URL_PAT.sub(url_func, newtext) - log.debug('processed prefix:`%s` => %s' % (pattern_index, newtext)) + log.debug('processed prefix:`%s` => %s', pattern_index, newtext) # if we actually did something above if link_: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/hooks.py --- a/kallithea/lib/hooks.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/hooks.py Sun Sep 06 23:36:05 2015 +0200 @@ -157,10 +157,8 @@ def log_push_action(ui, repo, **kwargs): """ - Maps user last push action to new changeset id, from mercurial - - :param ui: - :param repo: repo object containing the `ui` object + Register that changes have been pushed. + Mercurial invokes this directly as a hook, git uses handle_git_receive. """ ex = _extract_extras() @@ -369,13 +367,13 @@ return 0 -handle_git_pre_receive = (lambda repo_path, revs, env: - handle_git_receive(repo_path, revs, env, hook_type='pre')) -handle_git_post_receive = (lambda repo_path, revs, env: - handle_git_receive(repo_path, revs, env, hook_type='post')) +def handle_git_pre_receive(repo_path, revs, env): + return handle_git_receive(repo_path, revs, env, hook_type='pre') +def handle_git_post_receive(repo_path, revs, env): + return handle_git_receive(repo_path, revs, env, hook_type='post') -def handle_git_receive(repo_path, revs, env, hook_type='post'): +def handle_git_receive(repo_path, revs, env, hook_type): """ A really hacky method that is run by git post-receive hook and logs an push action together with pushed revisions. It's executed by subprocess @@ -447,21 +445,21 @@ repo._repo.refs.set_symbolic_ref('HEAD', 'refs/heads/%s' % push_ref['name']) - cmd = "for-each-ref --format='%(refname)' 'refs/heads/*'" + cmd = ['for-each-ref', '--format=%(refname)','refs/heads/*'] heads = repo.run_git_command(cmd)[0] + cmd = ['log', push_ref['new_rev'], + '--reverse', '--pretty=format:%H', '--not'] heads = heads.replace(push_ref['ref'], '') - heads = ' '.join(map(lambda c: c.strip('\n').strip(), - heads.splitlines())) - cmd = (('log %(new_rev)s' % push_ref) + - ' --reverse --pretty=format:"%H" --not ' + heads) + for l in heads.splitlines(): + cmd.append(l.strip()) git_revs += repo.run_git_command(cmd)[0].splitlines() elif push_ref['new_rev'] == EmptyChangeset().raw_id: #delete branch case git_revs += ['delete_branch=>%s' % push_ref['name']] else: - cmd = (('log %(old_rev)s..%(new_rev)s' % push_ref) + - ' --reverse --pretty=format:"%H"') + cmd = ['log', '%(old_rev)s..%(new_rev)s' % push_ref, + '--reverse', '--pretty=format:%H'] git_revs += repo.run_git_command(cmd)[0].splitlines() elif _type == 'tags': diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/indexers/__init__.py --- a/kallithea/lib/indexers/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/indexers/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.indexers.__init__ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.indexers +~~~~~~~~~~~~~~~~~~~~~~ Whoosh indexing module for Kallithea @@ -138,7 +138,7 @@ def get_full_content(self, docid): res = self.searcher.stored_fields(docid[0]) - log.debug('result: %s' % res) + log.debug('result: %s', res) if self.search_type == 'content': full_repo_path = jn(self.repo_location, res['repository']) f_path = res['path'].split(full_repo_path)[-1] @@ -156,7 +156,7 @@ elif self.search_type == 'message': res.update({'message_hl': self.highlight(res['message'])}) - log.debug('result: %s' % res) + log.debug('result: %s', res) return res diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/indexers/daemon.py --- a/kallithea/lib/indexers/daemon.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/indexers/daemon.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys @@ -182,11 +181,11 @@ 'replacing with empty content' % path) u_content = u'' else: - log.debug(' >> %s [WITH CONTENT]' % path) + log.debug(' >> %s [WITH CONTENT]', path) indexed_w_content += 1 else: - log.debug(' >> %s' % path) + log.debug(' >> %s', path) # just index file name without it's content u_content = u'' indexed += 1 @@ -221,14 +220,14 @@ if start_rev is None: start_rev = repo[0].raw_id - log.debug('indexing changesets in %s starting at rev: %s' % - (repo_name, start_rev)) + log.debug('indexing changesets in %s starting at rev: %s', + repo_name, start_rev) indexed = 0 cs_iter = repo.get_changesets(start=start_rev) total = len(cs_iter) for cs in cs_iter: - log.debug(' >> %s/%s' % (cs, total)) + log.debug(' >> %s/%s', cs, total) writer.add_document( raw_id=unicode(cs.raw_id), owner=unicode(repo.contact), @@ -244,7 +243,7 @@ ) indexed += 1 - log.debug('indexed %d changesets for repo %s' % (indexed, repo_name)) + log.debug('indexed %d changesets for repo %s', indexed, repo_name) return indexed def index_files(self, file_idx_writer, repo_name, repo): @@ -256,16 +255,16 @@ :param repo: instance of vcs repo """ i_cnt = iwc_cnt = 0 - log.debug('building index for %s @revision:%s' % (repo.path, - self._get_index_revision(repo))) + log.debug('building index for %s @revision:%s', repo.path, + self._get_index_revision(repo)) index_rev = self._get_index_revision(repo) for idx_path in self.get_paths(repo): i, iwc = self.add_doc(file_idx_writer, idx_path, repo, repo_name, index_rev) i_cnt += i iwc_cnt += iwc - log.debug('added %s files %s with content for repo %s' % - (i_cnt + iwc_cnt, iwc_cnt, repo.path)) + log.debug('added %s files %s with content for repo %s', + i_cnt + iwc_cnt, iwc_cnt, repo.path) return i_cnt, iwc_cnt def update_changeset_index(self): @@ -311,8 +310,8 @@ indexed_total += self.index_changesets(writer, repo_name, repo, start_id) writer_is_dirty = True - log.debug('indexed %s changesets for repo %s' % ( - indexed_total, repo_name) + log.debug('indexed %s changesets for repo %s', + indexed_total, repo_name ) finally: if writer_is_dirty: @@ -357,8 +356,8 @@ # The file has changed, delete it and add it to # the list of files to reindex log.debug( - 'adding to reindex list %s mtime: %s vs %s' % ( - indexed_path, mtime, indexed_time) + 'adding to reindex list %s mtime: %s vs %s', + indexed_path, mtime, indexed_time ) writer.delete_by_term('fileid', indexed_path) writer_is_dirty = True @@ -366,7 +365,7 @@ to_index.add(indexed_path) except (ChangesetError, NodeDoesNotExistError): # This file was deleted since it was indexed - log.debug('removing from index %s' % indexed_path) + log.debug('removing from index %s', indexed_path) writer.delete_by_term('path', indexed_path) writer_is_dirty = True @@ -389,16 +388,16 @@ # that wasn't indexed before. So index it! i, iwc = self.add_doc(writer, path, repo, repo_name) writer_is_dirty = True - log.debug('re indexing %s' % path) + log.debug('re indexing %s', path) ri_cnt += i ri_cnt_total += 1 riwc_cnt += iwc riwc_cnt_total += iwc - log.debug('added %s files %s with content for repo %s' % ( - ri_cnt + riwc_cnt, riwc_cnt, repo.path) + log.debug('added %s files %s with content for repo %s', + ri_cnt + riwc_cnt, riwc_cnt, repo.path ) - log.debug('indexed %s files in total and %s with content' % ( - ri_cnt_total, riwc_cnt_total) + log.debug('indexed %s files in total and %s with content', + ri_cnt_total, riwc_cnt_total ) finally: if writer_is_dirty: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/ipaddr.py --- a/kallithea/lib/ipaddr.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/ipaddr.py Sun Sep 06 23:36:05 2015 +0200 @@ -514,7 +514,7 @@ return '%s(%r)' % (self.__class__.__name__, str(self)) def __str__(self): - return '%s' % self._string_from_ip_int(self._ip) + return self._string_from_ip_int(self._ip) def __hash__(self): return hash(hex(long(self._ip))) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/markup_renderer.py --- a/kallithea/lib/markup_renderer.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/markup_renderer.py Sun Sep 06 23:36:05 2015 +0200 @@ -36,7 +36,7 @@ url_re = re.compile(r'''(\bhttps?://(?:[\da-zA-Z0-9@:.-]+)''' - r'''(?:[/a-zA-Z0-9_=@#~&+%.,:?!*()-]*[/a-zA-Z0-9_=@#~])?)''') + r'''(?:[/a-zA-Z0-9_=@#~&+%.,:;?!*()-]*[/a-zA-Z0-9_=@#~])?)''') class MarkupRenderer(object): RESTRUCTUREDTEXT_DISALLOWED_DIRECTIVES = ['include', 'meta', 'raw'] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/middleware/pygrack.py --- a/kallithea/lib/middleware/pygrack.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/middleware/pygrack.py Sun Sep 06 23:36:05 2015 +0200 @@ -69,7 +69,7 @@ git_command = request.GET.get('service') if git_command not in self.commands: - log.debug('command %s not allowed' % git_command) + log.debug('command %s not allowed', git_command) return exc.HTTPMethodNotAllowed() # note to self: @@ -82,15 +82,14 @@ server_advert = '# service=%s' % git_command packet_len = str(hex(len(server_advert) + 4)[2:].rjust(4, '0')).lower() _git_path = kallithea.CONFIG.get('git_path', 'git') + cmd = [_git_path, git_command[4:], + '--stateless-rpc', '--advertise-refs', self.content_path] + log.debug('handling cmd %s', cmd) try: - out = subprocessio.SubprocessIOChunker( - r'%s %s --stateless-rpc --advertise-refs "%s"' % ( - _git_path, git_command[4:], self.content_path), - starting_values=[ - packet_len + server_advert + '0000' - ] + out = subprocessio.SubprocessIOChunker(cmd, + starting_values=[packet_len + server_advert + '0000'] ) - except EnvironmentError, e: + except EnvironmentError as e: log.error(traceback.format_exc()) raise exc.HTTPExpectationFailed() resp = Response() @@ -109,7 +108,7 @@ _git_path = kallithea.CONFIG.get('git_path', 'git') git_command = self._get_fixedpath(request.path_info) if git_command not in self.commands: - log.debug('command %s not allowed' % git_command) + log.debug('command %s not allowed', git_command) return exc.HTTPMethodNotAllowed() if 'CONTENT_LENGTH' in environ: @@ -118,23 +117,19 @@ else: inputstream = environ['wsgi.input'] + gitenv = dict(os.environ) + # forget all configs + gitenv['GIT_CONFIG_NOGLOBAL'] = '1' + cmd = [_git_path, git_command[4:], '--stateless-rpc', self.content_path] + log.debug('handling cmd %s', cmd) try: - gitenv = os.environ - # forget all configs - gitenv['GIT_CONFIG_NOGLOBAL'] = '1' - opts = dict( + out = subprocessio.SubprocessIOChunker( + cmd, + inputstream=inputstream, env=gitenv, cwd=self.content_path, ) - cmd = r'%s %s --stateless-rpc "%s"' % (_git_path, git_command[4:], - self.content_path), - log.debug('handling cmd %s' % cmd) - out = subprocessio.SubprocessIOChunker( - cmd, - inputstream=inputstream, - **opts - ) - except EnvironmentError, e: + except EnvironmentError as e: log.error(traceback.format_exc()) raise exc.HTTPExpectationFailed() @@ -162,10 +157,10 @@ app = self.backend try: resp = app(request, environ) - except exc.HTTPException, e: + except exc.HTTPException as e: resp = e log.error(traceback.format_exc()) - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) resp = exc.HTTPInternalServerError() return resp(environ, start_response) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/middleware/sessionmiddleware.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kallithea/lib/middleware/sessionmiddleware.py Sun Sep 06 23:36:05 2015 +0200 @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +""" +kallithea.lib.middleware.sessionmiddleware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +session management middleware + +This file overrides Beaker's built-in SessionMiddleware +class to automagically use secure cookies over HTTPS. + +Original Beaker SessionMiddleware class written by Ben Bangert +""" + +from beaker.session import SessionObject +from beaker.middleware import SessionMiddleware + +class SecureSessionMiddleware(SessionMiddleware): + def __call__(self, environ, start_response): + """ + This function's implementation is taken directly from Beaker, + with HTTPS detection added. When accessed over HTTPS, force + setting cookie's secure flag. + + The only difference from that original code is that we switch + the secure option on and off depending on the URL scheme (first + two lines). To avoid concurrency issues, we use a local options + variable. + """ + options = dict(self.options) + options["secure"] = environ['wsgi.url_scheme'] == 'https' + + session = SessionObject(environ, **options) + if environ.get('paste.registry'): + if environ['paste.registry'].reglist: + environ['paste.registry'].register(self.session, session) + environ[self.environ_key] = session + environ['beaker.get_session'] = self._get_session + + if 'paste.testing_variables' in environ and 'webtest_varname' in options: + environ['paste.testing_variables'][options['webtest_varname']] = session + + def session_start_response(status, headers, exc_info=None): + if session.accessed(): + session.persist() + if session.__dict__['_headers']['set_cookie']: + cookie = session.__dict__['_headers']['cookie_out'] + if cookie: + headers.append(('Set-cookie', cookie)) + return start_response(status, headers, exc_info) + return self.wrap_app(environ, session_start_response) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/middleware/simplegit.py --- a/kallithea/lib/middleware/simplegit.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/middleware/simplegit.py Sun Sep 06 23:36:05 2015 +0200 @@ -40,7 +40,7 @@ from kallithea.lib.utils2 import safe_str, fix_PATH, get_server_url,\ _set_extras -from kallithea.lib.base import BaseVCSController +from kallithea.lib.base import BaseVCSController, WSGIResultCloseCallback from kallithea.lib.utils import make_ui, is_valid_repo from kallithea.lib.exceptions import HTTPLockedRC from kallithea.lib.hooks import pre_pull @@ -55,8 +55,8 @@ def is_git(environ): path_info = environ['PATH_INFO'] isgit_path = GIT_PROTO_PAT.match(path_info) - log.debug('pathinfo: %s detected as Git %s' % ( - path_info, isgit_path is not None) + log.debug('pathinfo: %s detected as Git %s', + path_info, isgit_path is not None ) return isgit_path @@ -80,7 +80,7 @@ #====================================================================== try: repo_name = self.__get_repository(environ) - log.debug('Extracted repo name is %s' % repo_name) + log.debug('Extracted repo name is %s', repo_name) except Exception: return HTTPInternalServerError()(environ, start_response) @@ -124,9 +124,9 @@ # try to auth based on environ, container auth methods log.debug('Running PRE-AUTH for container based authentication') pre_auth = auth_modules.authenticate('', '', environ) - if pre_auth and pre_auth.get('username'): + if pre_auth is not None and pre_auth.get('username'): username = pre_auth['username'] - log.debug('PRE-AUTH got %s as username' % username) + log.debug('PRE-AUTH got %s as username', username) # If not authenticated by the container, running basic auth if not username: @@ -178,7 +178,7 @@ #=================================================================== str_repo_name = safe_str(repo_name) repo_path = os.path.join(safe_str(self.basepath),str_repo_name) - log.debug('Repository path is %s' % repo_path) + log.debug('Repository path is %s', repo_path) # CHECK LOCKING only if it's not ANONYMOUS USER if username != User.DEFAULT_USER: @@ -194,27 +194,27 @@ 'locked_by': locked_by}) fix_PATH() - log.debug('HOOKS extras is %s' % extras) + log.debug('HOOKS extras is %s', extras) baseui = make_ui('db') self.__inject_extras(repo_path, baseui, extras) try: self._handle_githooks(repo_name, action, baseui, environ) - log.info('%s action on Git repo "%s" by "%s" from %s' % - (action, str_repo_name, safe_str(username), ip_addr)) + log.info('%s action on Git repo "%s" by "%s" from %s', + action, str_repo_name, safe_str(username), ip_addr) app = self.__make_app(repo_name, repo_path, extras) - return app(environ, start_response) - except HTTPLockedRC, e: + result = app(environ, start_response) + if action == 'push': + result = WSGIResultCloseCallback(result, + lambda: self._invalidate_cache(repo_name)) + return result + except HTTPLockedRC as e: _code = CONFIG.get('lock_ret_code') - log.debug('Repository LOCKED ret code %s!' % (_code)) + log.debug('Repository LOCKED ret code %s!', _code) return e(environ, start_response) except Exception: log.error(traceback.format_exc()) return HTTPInternalServerError()(environ, start_response) - finally: - # invalidate cache on push - if action == 'push': - self._invalidate_cache(repo_name) def __make_app(self, repo_name, repo_path, extras): """ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/middleware/simplehg.py --- a/kallithea/lib/middleware/simplehg.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/middleware/simplehg.py Sun Sep 06 23:36:05 2015 +0200 @@ -39,7 +39,7 @@ from kallithea.lib.utils2 import safe_str, fix_PATH, get_server_url,\ _set_extras -from kallithea.lib.base import BaseVCSController +from kallithea.lib.base import BaseVCSController, WSGIResultCloseCallback from kallithea.lib.utils import make_ui, is_valid_repo, ui_sections from kallithea.lib.vcs.utils.hgcompat import RepoError, hgweb_mod from kallithea.lib.exceptions import HTTPLockedRC @@ -60,8 +60,8 @@ else: ishg_path = False - log.debug('pathinfo: %s detected as Mercurial %s' % ( - path_info, ishg_path) + log.debug('pathinfo: %s detected as Mercurial %s', + path_info, ishg_path ) return ishg_path @@ -84,7 +84,7 @@ #====================================================================== try: repo_name = environ['REPO_NAME'] = self.__get_repository(environ) - log.debug('Extracted repo name is %s' % repo_name) + log.debug('Extracted repo name is %s', repo_name) except Exception: return HTTPInternalServerError()(environ, start_response) @@ -128,9 +128,9 @@ # try to auth based on environ, container auth methods log.debug('Running PRE-AUTH for container based authentication') pre_auth = auth_modules.authenticate('', '', environ) - if pre_auth and pre_auth.get('username'): + if pre_auth is not None and pre_auth.get('username'): username = pre_auth['username'] - log.debug('PRE-AUTH got %s as username' % username) + log.debug('PRE-AUTH got %s as username', username) # If not authenticated by the container, running basic auth if not username: @@ -181,7 +181,7 @@ #====================================================================== str_repo_name = safe_str(repo_name) repo_path = os.path.join(safe_str(self.basepath), str_repo_name) - log.debug('Repository path is %s' % repo_path) + log.debug('Repository path is %s', repo_path) # CHECK LOCKING only if it's not ANONYMOUS USER if username != User.DEFAULT_USER: @@ -197,29 +197,29 @@ 'locked_by': locked_by}) fix_PATH() - log.debug('HOOKS extras is %s' % extras) + log.debug('HOOKS extras is %s', extras) baseui = make_ui('db') self.__inject_extras(repo_path, baseui, extras) try: - log.info('%s action on Mercurial repo "%s" by "%s" from %s' % - (action, str_repo_name, safe_str(username), ip_addr)) + log.info('%s action on Mercurial repo "%s" by "%s" from %s', + action, str_repo_name, safe_str(username), ip_addr) app = self.__make_app(repo_path, baseui, extras) - return app(environ, start_response) - except RepoError, e: + result = app(environ, start_response) + if action == 'push': + result = WSGIResultCloseCallback(result, + lambda: self._invalidate_cache(repo_name)) + return result + except RepoError as e: if str(e).find('not found') != -1: return HTTPNotFound()(environ, start_response) - except HTTPLockedRC, e: + except HTTPLockedRC as e: _code = CONFIG.get('lock_ret_code') - log.debug('Repository LOCKED ret code %s!' % (_code)) + log.debug('Repository LOCKED ret code %s!', _code) return e(environ, start_response) except Exception: log.error(traceback.format_exc()) return HTTPInternalServerError()(environ, start_response) - finally: - # invalidate cache on push - if action == 'push': - self._invalidate_cache(repo_name) def __make_app(self, repo_name, baseui, extras): """ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/cache_keys.py --- a/kallithea/lib/paster_commands/cache_keys.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/cache_keys.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,7 +26,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/cleanup.py --- a/kallithea/lib/paster_commands/cleanup.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/cleanup.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,7 +26,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys @@ -86,7 +85,7 @@ repos_location = Ui.get_repos_location() to_remove = [] - for dn, dirs, f in os.walk(safe_str(repos_location)): + for dn_, dirs, f in os.walk(safe_str(repos_location)): alldirs = list(dirs) del dirs[:] if ('.hg' in alldirs or @@ -94,7 +93,7 @@ continue for loc in alldirs: if REMOVED_REPO_PAT.match(loc): - to_remove.append([os.path.join(dn, loc), + to_remove.append([os.path.join(dn_, loc), self._extract_date(loc)]) else: dirs.append(loc) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/ishell.py --- a/kallithea/lib/paster_commands/ishell.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/ishell.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/make_index.py --- a/kallithea/lib/paster_commands/make_index.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/make_index.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,7 +26,6 @@ """ -from __future__ import with_statement import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/make_rcextensions.py --- a/kallithea/lib/paster_commands/make_rcextensions.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/make_rcextensions.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,11 +26,9 @@ """ -from __future__ import with_statement import os import sys -import logging import pkg_resources from kallithea.lib.utils import BasePasterCommand, ask_ok @@ -40,46 +38,44 @@ rc_path = dn(dn(dn(os.path.realpath(__file__)))) sys.path.append(rc_path) -log = logging.getLogger(__name__) - class Command(BasePasterCommand): max_args = 1 min_args = 1 - usage = "CONFIG_FILE" group_name = "Kallithea" takes_config_file = -1 parser = BasePasterCommand.standard_parser(verbose=True) - summary = "Creates additional extensions for kallithea" + summary = "Write template file for extending Kallithea in Python." + usage = "CONFIG_FILE" + description = '''\ + A rcextensions directory with a __init__.py file will be created next to + the ini file. Local customizations in that file will survive upgrades. + The file contains instructions on how it can be customized. + ''' def command(self): - logging.config.fileConfig(self.path_to_ini_file) from pylons import config - def _make_file(ext_file, tmpl): - bdir = os.path.split(ext_file)[0] - if not os.path.isdir(bdir): - os.makedirs(bdir) - with open(ext_file, 'wb') as f: - f.write(tmpl) - log.info('Writen new extensions file to %s' % ext_file) - here = config['here'] - tmpl = pkg_resources.resource_string( + content = pkg_resources.resource_string( 'kallithea', os.path.join('config', 'rcextensions', '__init__.py') ) ext_file = os.path.join(here, 'rcextensions', '__init__.py') if os.path.exists(ext_file): msg = ('Extension file already exists, do you want ' 'to overwrite it ? [y/n]') - if ask_ok(msg): - _make_file(ext_file, tmpl) - else: - log.info('nothing done...') - else: - _make_file(ext_file, tmpl) + if not ask_ok(msg): + print 'Nothing done...' + return + + dirname = os.path.dirname(ext_file) + if not os.path.isdir(dirname): + os.makedirs(dirname) + with open(ext_file, 'wb') as f: + f.write(content) + print 'Wrote new extensions file to %s' % ext_file def update_parser(self): pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/repo_scan.py --- a/kallithea/lib/paster_commands/repo_scan.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/repo_scan.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.paster_commands.make_rcextensions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.lib.paster_commands.repo_scan +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ repo-scan paster command for Kallithea @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys @@ -62,7 +61,7 @@ remove_obsolete=rm_obsolete) added = ', '.join(added) or '-' removed = ', '.join(removed) or '-' - log.info('Scan completed added: %s removed: %s' % (added, removed)) + log.info('Scan completed added: %s removed: %s', added, removed) def update_parser(self): self.parser.add_option( diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/paster_commands/update_repoinfo.py --- a/kallithea/lib/paster_commands/update_repoinfo.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/paster_commands/update_repoinfo.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import sys diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/pidlock.py --- a/kallithea/lib/pidlock.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/pidlock.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,7 +12,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from __future__ import with_statement import os import errno @@ -62,7 +61,7 @@ locking function, if lock is present it will raise LockHeld exception """ - lockname = '%s' % (os.getpid()) + lockname = str(os.getpid()) if self.debug: print 'running lock' self.trylock() @@ -88,7 +87,7 @@ if running_pid: try: kill(running_pid, 0) - except OSError, exc: + except OSError as exc: if exc.errno in (errno.ESRCH, errno.EPERM): print ("Lock File is there but" " the program is not running") @@ -101,7 +100,7 @@ print "It is running as process %s" % running_pid raise LockHeld() - except IOError, e: + except IOError as e: if e.errno != 2: raise @@ -121,7 +120,7 @@ print 'removing pidfile %s' % self.pidfile os.remove(self.pidfile) self.held = False - except OSError, e: + except OSError as e: if self.debug: print 'removing pidfile failed %s' % e pass diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/profiler.py --- a/kallithea/lib/profiler.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/profiler.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,3 @@ -from __future__ import with_statement import objgraph import cProfile diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/rcmail/response.py --- a/kallithea/lib/rcmail/response.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/rcmail/response.py Sun Sep 06 23:36:05 2015 +0200 @@ -338,7 +338,7 @@ try: out = MIMEPart(ctype, **params) - except TypeError, exc: # pragma: no cover + except TypeError as exc: # pragma: no cover raise EncodingError("Content-Type malformed, not allowed: %r; " "%r (Python ERROR: %s" % (ctype, params, exc.message)) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/recaptcha.py --- a/kallithea/lib/recaptcha.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/recaptcha.py Sun Sep 06 23:36:05 2015 +0200 @@ -55,7 +55,7 @@ recaptcha_challenge_field -- The value of recaptcha_challenge_field from the form recaptcha_response_field -- The value of recaptcha_response_field from the form private_key -- your reCAPTCHA private key - remoteip -- the user's ip address + remoteip -- the user's IP address """ if not (recaptcha_response_field and recaptcha_challenge_field and diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/utils.py --- a/kallithea/lib/utils.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/utils.py Sun Sep 06 23:36:05 2015 +0200 @@ -50,11 +50,9 @@ from kallithea.lib.vcs.utils.helpers import get_scm from kallithea.lib.vcs.exceptions import VCSError -from kallithea.lib.caching_query import FromCache - from kallithea.model import meta from kallithea.model.db import Repository, User, Ui, \ - UserLog, RepoGroup, Setting, CacheInvalidation, UserGroup + UserLog, RepoGroup, Setting, UserGroup from kallithea.model.meta import Session from kallithea.model.repo_group import RepoGroupModel from kallithea.lib.utils2 import safe_str, safe_unicode, get_current_authuser @@ -161,7 +159,7 @@ easy translations :param repo: string name of repository or object containing repo_id, that action was made on - :param ipaddr: optional ip address from what the action was made + :param ipaddr: optional IP address from what the action was made :param sa: optional sqlalchemy session """ @@ -202,8 +200,8 @@ user_log.user_ip = ipaddr sa.add(user_log) - log.info('Logging action:%s on %s by user:%s ip:%s' % - (action, safe_unicode(repo), user_obj, ipaddr)) + log.info('Logging action:%s on %s by user:%s ip:%s', + action, safe_unicode(repo), user_obj, ipaddr) if commit: sa.commit() @@ -218,14 +216,14 @@ # remove ending slash for better results path = path.rstrip(os.sep) - log.debug('now scanning in %s location recursive:%s...' % (path, recursive)) + log.debug('now scanning in %s location recursive:%s...', path, recursive) def _get_repos(p): if not os.access(p, os.R_OK) or not os.access(p, os.X_OK): - log.warning('ignoring repo path without access: %s' % (p,)) + log.warning('ignoring repo path without access: %s', p) return if not os.access(p, os.W_OK): - log.warning('repo path without write access: %s' % (p,)) + log.warning('repo path without write access: %s', p) for dirpath in os.listdir(p): if os.path.isfile(os.path.join(p, dirpath)): continue @@ -350,14 +348,14 @@ if read_from == 'file': if not os.path.isfile(path): - log.debug('hgrc file is not present at %s, skipping...' % path) + log.debug('hgrc file is not present at %s, skipping...', path) return False - log.debug('reading hgrc from %s' % path) + log.debug('reading hgrc from %s', path) cfg = config.config() cfg.read(path) for section in ui_sections: for k, v in cfg.items(section): - log.debug('settings ui from file: [%s] %s=%s' % (section, k, v)) + log.debug('settings ui from file: [%s] %s=%s', section, k, v) baseui.setconfig(safe_str(section), safe_str(k), safe_str(v)) elif read_from == 'db': @@ -407,7 +405,6 @@ :param config: kallithea.CONFIG """ - import kallithea from kallithea.lib.vcs import conf from kallithea.lib.utils2 import aslist conf.settings.BACKENDS = { @@ -448,8 +445,8 @@ break if group is None: - log.debug('creating group level: %s group_name: %s' - % (lvl, group_name)) + log.debug('creating group level: %s group_name: %s', + lvl, group_name) group = RepoGroup(group_name, parent) group.group_description = desc group.user = owner @@ -463,7 +460,7 @@ def repo2db_mapper(initial_repo_list, remove_obsolete=False, - install_git_hook=False, user=None): + install_git_hooks=False, user=None, overwrite_git_hooks=False): """ maps all repos given in initial_repo_list, non existing repositories are created, if remove_obsolete is True it also check for db entries @@ -471,8 +468,10 @@ :param initial_repo_list: list of repositories found by scanning methods :param remove_obsolete: check for obsolete entries in database - :param install_git_hook: if this is True, also check and install githook + :param install_git_hooks: if this is True, also check and install git hook for a repo if missing + :param overwrite_git_hooks: if this is True, overwrite any existing git hooks + that may be encountered (even if user-deployed) """ from kallithea.model.repo import RepoModel from kallithea.model.scm import ScmModel @@ -495,7 +494,7 @@ db_repo = repo_model.get_by_repo_name(unicode_name) # found repo that is on filesystem not in Kallithea database if not db_repo: - log.info('repository %s not found, creating now' % name) + log.info('repository %s not found, creating now', name) added.append(name) desc = (repo.description if repo.description != 'unknown' @@ -518,21 +517,21 @@ # installed, and updated server info if new_repo.repo_type == 'git': git_repo = new_repo.scm_instance - ScmModel().install_git_hook(git_repo) + ScmModel().install_git_hooks(git_repo) # update repository server-info log.debug('Running update server info') git_repo._update_server_info() new_repo.update_changeset_cache() - elif install_git_hook: + elif install_git_hooks: if db_repo.repo_type == 'git': - ScmModel().install_git_hook(db_repo.scm_instance) + ScmModel().install_git_hooks(db_repo.scm_instance, force_create=overwrite_git_hooks) removed = [] # remove from database those repositories that are not in the filesystem for repo in sa.query(Repository).all(): if repo.repo_name not in initial_repo_list.keys(): if remove_obsolete: - log.debug("Removing non-existing repository found in db `%s`" % + log.debug("Removing non-existing repository found in db `%s`", repo.repo_name) try: RepoModel(sa).delete(repo, forks='detach', fs_remove=False) @@ -581,7 +580,7 @@ if os.path.isfile(path): rcext = create_module('rc', path) EXT = kallithea.EXTENSIONS = rcext - log.debug('Found rcextensions now loading %s...' % rcext) + log.debug('Found rcextensions now loading %s...', rcext) # Additional mappings that are not present in the pygments lexers conf.LANGUAGES_EXTENSIONS_MAP.update(getattr(EXT, 'EXTRA_MAPPINGS', {})) @@ -657,11 +656,11 @@ # PART ONE create db dbconf = config['sqlalchemy.db1.url'] - log.debug('making test db %s' % dbconf) + log.debug('making test db %s', dbconf) # create test dir if it doesn't exist if not os.path.isdir(repos_test_path): - log.debug('Creating testdir %s' % repos_test_path) + log.debug('Creating testdir %s', repos_test_path) os.makedirs(repos_test_path) dbmanage = DbManage(log_sql=True, dbconf=dbconf, root=config['here'], @@ -682,11 +681,11 @@ #clean index and data if idx_path and os.path.exists(idx_path): - log.debug('remove %s' % idx_path) + log.debug('remove %s', idx_path) shutil.rmtree(idx_path) if data_path and os.path.exists(data_path): - log.debug('remove %s' % data_path) + log.debug('remove %s', data_path) shutil.rmtree(data_path) #CREATE DEFAULT TEST REPOS @@ -799,7 +798,7 @@ if 'git' not in BACKENDS: return None - stdout, stderr = GitRepository._run_git_command('--version', _bare=True, + stdout, stderr = GitRepository._run_git_command(['--version'], _bare=True, _safe=True) m = re.search("\d+.\d+.\d+", stdout) @@ -810,10 +809,10 @@ req_ver = StrictVersion('1.7.4') - log.debug('Git executable: "%s" version %s detected: %s' - % (settings.GIT_EXECUTABLE_PATH, ver, stdout)) + log.debug('Git executable: "%s" version %s detected: %s', + settings.GIT_EXECUTABLE_PATH, ver, stdout) if stderr: - log.warning('Error detecting git version: %r' % stderr) + log.warning('Error detecting git version: %r', stderr) elif ver < req_ver: log.warning('Kallithea detected git version %s, which is too old ' 'for the system to function properly. ' diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/utils2.py --- a/kallithea/lib/utils2.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/utils2.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.lib.utils -~~~~~~~~~~~~~~~~~~~ +kallithea.lib.utils2 +~~~~~~~~~~~~~~~~~~~~ Some simple helper functions @@ -433,17 +433,17 @@ if sub_value == 0 or show_short_version: if future: - return _(u'in %s') % fmt_funcs[part](value) + return _('in %s') % fmt_funcs[part](value) else: - return _(u'%s ago') % fmt_funcs[part](value) + return _('%s ago') % fmt_funcs[part](value) if future: - return _(u'in %s and %s') % (fmt_funcs[part](value), + return _('in %s and %s') % (fmt_funcs[part](value), fmt_funcs[sub_part](sub_value)) else: - return _(u'%s and %s ago') % (fmt_funcs[part](value), + return _('%s and %s ago') % (fmt_funcs[part](value), fmt_funcs[sub_part](sub_value)) - return _(u'just now') + return _('just now') def uri_filter(uri): @@ -459,7 +459,7 @@ proto = '' - for pat in ('https://', 'http://'): + for pat in ('https://', 'http://', 'git://'): if uri.startswith(pat): uri = uri[len(pat):] proto = pat @@ -493,8 +493,8 @@ return ''.join(uri) -def get_clone_url(uri_tmpl, qualifed_home_url, repo_name, repo_id, **override): - parsed_url = urlobject.URLObject(qualifed_home_url) +def get_clone_url(uri_tmpl, qualified_home_url, repo_name, repo_id, **override): + parsed_url = urlobject.URLObject(qualified_home_url) decoded_path = safe_unicode(urllib.unquote(parsed_url.path.rstrip('/'))) args = { 'scheme': parsed_url.scheme, @@ -615,25 +615,25 @@ def _extract_extras(env=None): """ - Extracts the rc extras data from os.environ, and wraps it into named + Extracts the Kallithea extras data from os.environ, and wraps it into named AttributeDict object """ if not env: env = os.environ try: - rc_extras = json.loads(env['KALLITHEA_EXTRAS']) + extras = json.loads(env['KALLITHEA_EXTRAS']) except KeyError: - rc_extras = {} + extras = {} try: for k in ['username', 'repository', 'locked_by', 'scm', 'make_lock', 'action', 'ip']: - rc_extras[k] - except KeyError, e: - raise Exception('Missing key %s in os.environ %s' % (e, rc_extras)) + extras[k] + except KeyError as e: + raise Exception('Missing key %s in os.environ %s' % (e, extras)) - return AttributeDict(rc_extras) + return AttributeDict(extras) def _set_extras(extras): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/base.py --- a/kallithea/lib/vcs/backends/base.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/base.py Sun Sep 06 23:36:05 2015 +0200 @@ -127,7 +127,7 @@ for f in files: size += tip.get_file_size(f.path) - except RepositoryError, e: + except RepositoryError as e: pass return size @@ -667,6 +667,10 @@ def closesbranch(self): return False + @LazyProperty + def obsolete(self): + return False + class BaseWorkdir(object): """ Working directory representation of single repository. diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/git/changeset.py --- a/kallithea/lib/vcs/backends/git/changeset.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/git/changeset.py Sun Sep 06 23:36:05 2015 +0200 @@ -10,7 +10,7 @@ ChangesetDoesNotExistError, ImproperArchiveTypeError ) from kallithea.lib.vcs.nodes import ( - FileNode, DirNode, NodeKind, RootNode, RemovedFileNode, SubModuleNode, + FileNode, DirNode, NodeKind, RootNode, SubModuleNode, ChangedFileNodesGenerator, AddedFileNodesGenerator, RemovedFileNodesGenerator ) from kallithea.lib.vcs.utils import ( @@ -189,7 +189,7 @@ """ rev_filter = settings.GIT_REV_FILTER so, se = self.repository.run_git_command( - "rev-list %s --children" % (rev_filter) + ['rev-list', rev_filter, '--children'] ) children = [] @@ -288,12 +288,12 @@ f_path = safe_str(path) if limit: - cmd = 'log -n %s --pretty="format: %%H" -s %s -- "%s"' % ( - safe_int(limit, 0), cs_id, f_path) + cmd = ['log', '-n', str(safe_int(limit, 0)), + '--pretty=format:%H', '-s', cs_id, '--', f_path] else: - cmd = 'log --pretty="format: %%H" -s %s -- "%s"' % ( - cs_id, f_path) + cmd = ['log', + '--pretty=format:%H', '-s', cs_id, '--', f_path] so, se = self.repository.run_git_command(cmd) ids = re.findall(r'[0-9a-fA-F]{40}', so) return [self.repository.get_changeset(sha) for sha in ids] @@ -321,7 +321,7 @@ generally not good. Should be replaced with algorithm iterating commits. """ - cmd = 'blame -l --root -r %s -- "%s"' % (self.id, path) + cmd = ['blame', '-l', '--root', '-r', self.id, '--', path] # -l ==> outputs long shas (and we need all 40 characters) # --root ==> doesn't put '^' character for boundaries # -r sha ==> blames for the given revision @@ -471,8 +471,8 @@ 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) + cmd = ['diff', '--name-status', parent.raw_id, self.raw_id, + '--encoding=utf8'] so, se = self.repository.run_git_command(cmd) output.append(so.strip()) return '\n'.join(output) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/git/repository.py --- a/kallithea/lib/vcs/backends/git/repository.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/git/repository.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,23 +12,11 @@ import os import re import time +import errno import urllib import urllib2 import logging import posixpath -import string -import sys -if sys.platform == "win32": - from subprocess import list2cmdline - def quote(s): - return list2cmdline([s]) -else: - try: - # Python <=2.7 - from pipes import quote - except ImportError: - # Python 3.3+ - from shlex import quote from dulwich.objects import Tag from dulwich.repo import Repo, NotGitRepository @@ -134,10 +122,7 @@ del opts['_safe'] safe_call = True - _str_cmd = False - if isinstance(cmd, basestring): - cmd = [cmd] - _str_cmd = True + assert isinstance(cmd, list), cmd gitenv = os.environ # need to clean fix GIT_DIR ! @@ -147,17 +132,15 @@ _git_path = settings.GIT_EXECUTABLE_PATH cmd = [_git_path] + _copts + cmd - if _str_cmd: - cmd = ' '.join(cmd) try: _opts = dict( env=gitenv, - shell=True, + shell=False, ) _opts.update(opts) p = subprocessio.SubprocessIOChunker(cmd, **_opts) - except (EnvironmentError, OSError), err: + except (EnvironmentError, OSError) as err: tb_err = ("Couldn't run git command (%s).\n" "Original error was:%s\n" % (cmd, err)) log.error(tb_err) @@ -190,6 +173,9 @@ if os.path.isdir(url) or url.startswith('file:'): return True + if url.startswith('git://'): + return True + if '+' in url[:url.find('://')]: url = url[url.find('+') + 1:] @@ -222,7 +208,7 @@ resp = o.open(req) if resp.code != 200: raise Exception('Return Code is not 200') - except Exception, e: + except Exception as e: # means it cannot be cloned raise urllib2.URLError("[%s] org_exc: %s" % (cleaned_uri, e)) @@ -254,7 +240,7 @@ return Repo.init(self.path) else: return self._repo - except (NotGitRepository, OSError), err: + except (NotGitRepository, OSError) as err: raise RepositoryError(err) def _get_all_revisions(self): @@ -267,7 +253,7 @@ return [] rev_filter = settings.GIT_REV_FILTER - cmd = 'rev-list %s --reverse --date-order' % (rev_filter) + cmd = ['rev-list', rev_filter, '--reverse', '--date-order'] try: so, se = self.run_git_command(cmd) except RepositoryError: @@ -459,7 +445,7 @@ os.remove(tagpath) self._parsed_refs = self._get_parsed_refs() self.tags = self._get_tags() - except OSError, e: + except OSError as e: raise RepositoryError(e.strerror) @LazyProperty @@ -550,22 +536,16 @@ # %H at format means (full) commit hash, initial hashes are retrieved # in ascending date order - cmd_template = 'log --date-order --reverse --pretty=format:"%H"' - cmd_params = {} + cmd = ['log', '--date-order', '--reverse', '--pretty=format:%H'] if start_date: - cmd_template += ' --since "$since"' - cmd_params['since'] = start_date.strftime('%m/%d/%y %H:%M:%S') + cmd += ['--since', start_date.strftime('%m/%d/%y %H:%M:%S')] if end_date: - cmd_template += ' --until "$until"' - cmd_params['until'] = end_date.strftime('%m/%d/%y %H:%M:%S') + cmd += ['--until', end_date.strftime('%m/%d/%y %H:%M:%S')] if branch_name: - cmd_template += ' $branch_name' - cmd_params['branch_name'] = branch_name + cmd.append(branch_name) else: - rev_filter = settings.GIT_REV_FILTER - cmd_template += ' %s' % (rev_filter) + cmd.append(settings.GIT_REV_FILTER) - cmd = string.Template(cmd_template).safe_substitute(**cmd_params) revs = self.run_git_command(cmd)[0].splitlines() start_pos = 0 end_pos = len(revs) @@ -621,14 +601,14 @@ if rev1 == self.EMPTY_CHANGESET: rev2 = self.get_changeset(rev2).raw_id - cmd = ' '.join(['show'] + flags + [rev2]) + cmd = ['show'] + flags + [rev2] else: rev1 = self.get_changeset(rev1).raw_id rev2 = self.get_changeset(rev2).raw_id - cmd = ' '.join(['diff'] + flags + [rev1, rev2]) + cmd = ['diff'] + flags + [rev1, rev2] if path: - cmd += ' -- "%s"' % path + cmd += ['--', path] stdout, stderr = self.run_git_command(cmd) # TODO: don't ignore stderr @@ -662,8 +642,7 @@ cmd.append('--bare') elif not update_after_clone: cmd.append('--no-checkout') - cmd += ['--', quote(url), quote(self.path)] - cmd = ' '.join(cmd) + cmd += ['--', url, self.path] # If error occurs run_git_command raises RepositoryError already self.run_git_command(cmd) @@ -672,8 +651,7 @@ Tries to pull changes from external location. """ url = self._get_url(url) - cmd = ['pull', "--ff-only", quote(url)] - cmd = ' '.join(cmd) + cmd = ['pull', '--ff-only', url] # If error occurs run_git_command raises RepositoryError already self.run_git_command(cmd) @@ -682,13 +660,11 @@ Tries to pull changes from external location. """ url = self._get_url(url) - so, se = self.run_git_command('ls-remote -h %s' % quote(url)) - refs = [] + so, se = self.run_git_command(['ls-remote', '-h', url]) + cmd = ['fetch', url, '--'] for line in (x for x in so.splitlines()): sha, ref = line.split('\t') - refs.append(ref) - refs = ' '.join(('+%s:%s' % (r, r) for r in refs)) - cmd = '''fetch %s -- %s''' % (quote(url), refs) + cmd.append('+%s:%s' % (ref, ref)) self.run_git_command(cmd) def _update_server_info(self): @@ -696,7 +672,13 @@ runs gits update-server-info command in this repo instance """ from dulwich.server import update_server_info - update_server_info(self._repo) + try: + update_server_info(self._repo) + except OSError as e: + if e.errno != errno.ENOENT: + raise + # Workaround for dulwich crashing on for example its own dulwich/tests/data/repos/simple_merge.git/info/refs.lock + log.error('Ignoring error running update-server-info: %s', e) @LazyProperty def workdir(self): diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/hg/__init__.py --- a/kallithea/lib/vcs/backends/hg/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/hg/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """ vcs.backends.hg - ~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~ Mercurial backend implementation. diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/hg/changeset.py --- a/kallithea/lib/vcs/backends/hg/changeset.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/hg/changeset.py Sun Sep 06 23:36:05 2015 +0200 @@ -16,6 +16,7 @@ from kallithea.lib.vcs.utils.paths import get_dirs_for_path from kallithea.lib.vcs.utils.hgcompat import archival, hex +from mercurial import obsolete class MercurialChangeset(BaseChangeset): """ @@ -43,6 +44,30 @@ return self._ctx.closesbranch() @LazyProperty + def obsolete(self): + return self._ctx.obsolete() + + @LazyProperty + def successors(self): + successors = obsolete.successorssets(self._ctx._repo, self._ctx.node()) + if successors: + # flatten the list here handles both divergent (len > 1) + # and the usual case (len = 1) + successors = [hex(n)[:12] for sub in successors for n in sub if n != self._ctx.node()] + + return successors + + @LazyProperty + def precursors(self): + precursors = set() + nm = self._ctx._repo.changelog.nodemap + for p in self._ctx._repo.obsstore.precursors.get(self._ctx.node(), ()): + pr = nm.get(p[0]) + if pr is not None: + precursors.add(hex(p[0])[:12]) + return precursors + + @LazyProperty def bookmarks(self): return map(safe_unicode, self._ctx.bookmarks()) @@ -284,13 +309,6 @@ 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 diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/backends/hg/repository.py --- a/kallithea/lib/vcs/backends/hg/repository.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/backends/hg/repository.py Sun Sep 06 23:36:05 2015 +0200 @@ -29,7 +29,7 @@ from kallithea.lib.vcs.utils.ordered_dict import OrderedDict from kallithea.lib.vcs.utils.paths import abspath from kallithea.lib.vcs.utils.hgcompat import ( - ui, nullid, match, patch, diffopts, clone, get_contact, pull, + ui, nullid, match, patch, diffopts, clone, get_contact, localrepository, RepoLookupError, Abort, RepoError, hex, scmutil, hg_url, httpbasicauthhandler, httpdigestauthhandler, peer, httppeer, sshpeer ) @@ -177,7 +177,7 @@ try: self._repo.tag(name, changeset._ctx.node(), message, local, user, date) - except Abort, e: + except Abort as e: raise RepositoryError(e.message) # Reinitialize tags @@ -208,7 +208,7 @@ try: self._repo.tag(name, nullid, message, local, user, date) self.tags = self._get_tags() - except Abort, e: + except Abort as e: raise RepositoryError(e.message) @LazyProperty @@ -229,7 +229,7 @@ def _get_all_revisions(self): - return map(lambda x: hex(x[7]), self._repo.changelog.index)[:-1] + return [self._repo[x].hex() for x in self._repo.filtered('visible').changelog.revs()] def get_diff(self, rev1, rev2, path='', ignore_whitespace=False, context=3): @@ -264,6 +264,7 @@ return ''.join(patch.diff(self._repo, rev1, rev2, match=file_filter, opts=diffopts(git=True, + showfunc=True, ignorews=ignore_whitespace, context=context))) @@ -320,7 +321,7 @@ resp = o.open(req) if resp.code != 200: raise Exception('Return Code is not 200') - except Exception, e: + except Exception as e: # means it cannot be cloned raise urllib2.URLError("[%s] org_exc: %s" % (cleaned_uri, e)) @@ -328,7 +329,7 @@ # now check if it's a proper hg repo try: httppeer(repoui or ui.ui(), url).lookup('tip') - except Exception, e: + except Exception as e: raise urllib2.URLError( "url [%s] does not look like an hg repo org_exc: %s" % (cleaned_uri, e)) @@ -358,7 +359,7 @@ # Don't try to create if we've already cloned repo create = False return localrepository(self.baseui, self.path, create=create) - except (Abort, RepoError), err: + except (Abort, RepoError) as err: if create: msg = "Cannot create repository at %s. Original error was %s"\ % (self.path, err) @@ -564,7 +565,7 @@ exchange.pull(self._repo, other, heads=None, force=None) except ImportError: self._repo.pull(other, heads=None, force=None) - except Abort, err: + except Abort as err: # Propagate error but with vcs's type raise RepositoryError(str(err)) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/subprocessio.py --- a/kallithea/lib/vcs/subprocessio.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/subprocessio.py Sun Sep 06 23:36:05 2015 +0200 @@ -342,11 +342,9 @@ input_streamer.start() inputstream = input_streamer.output - _shell = kwargs.get('shell', True) - if isinstance(cmd, (list, tuple)): - cmd = ' '.join(cmd) + # Note: fragile cmd mangling has been removed for use in Kallithea + assert isinstance(cmd, list), cmd - kwargs['shell'] = _shell _p = subprocess.Popen(cmd, bufsize=-1, stdin=inputstream, stdout=subprocess.PIPE, @@ -397,7 +395,7 @@ def next(self): if self.process and self.process.poll(): - err = '%s' % ''.join(self.error) + err = ''.join(self.error) raise EnvironmentError("Subprocess exited due to an error:\n" + err) return self.output.next() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/utils/diffs.py --- a/kallithea/lib/vcs/utils/diffs.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/utils/diffs.py Sun Sep 06 23:36:05 2015 +0200 @@ -356,7 +356,7 @@ """ # Transform all whitespace to underscore - idstring = re.sub(r'\s', "_", '%s' % idstring) + idstring = re.sub(r'\s', "_", idstring) # Remove everything that is not a hyphen or a member of \w idstring = re.sub(r'(?!-)\W', "", idstring).lower() return idstring diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/utils/hgcompat.py --- a/kallithea/lib/vcs/utils/hgcompat.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/utils/hgcompat.py Sun Sep 06 23:36:05 2015 +0200 @@ -44,3 +44,5 @@ # workaround for 3.3 94ac64bcf6fe and not calling largefiles reposetup correctly localrepository._lfstatuswriters = [lambda *msg, **opts: None] +# 3.5 7699d3212994 added the invariant that repo.lfstatus must exist before hitting overridearchive +localrepository.lfstatus = False diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/utils/imports.py --- a/kallithea/lib/vcs/utils/imports.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/utils/imports.py Sun Sep 06 23:36:05 2015 +0200 @@ -18,7 +18,7 @@ class_name = splitted[-1] try: class_mod = __import__(mod_path, {}, {}, [class_name]) - except ImportError, err: + except ImportError as err: msg = "There was problem while trying to import backend class. "\ "Original error was:\n%s" % err raise VCSError(msg) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/utils/lazy.py --- a/kallithea/lib/vcs/utils/lazy.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/utils/lazy.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,3 +1,6 @@ +import threading + + class _Missing(object): def __repr__(self): @@ -41,8 +44,6 @@ obj.__dict__[self.__name__] = value return value -import threading - class ThreadLocalLazyProperty(LazyProperty): """ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/lib/vcs/utils/lockfiles.py --- a/kallithea/lib/vcs/utils/lockfiles.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/lib/vcs/utils/lockfiles.py Sun Sep 06 23:36:05 2015 +0200 @@ -42,7 +42,7 @@ try: fd = os.open(lock_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0) os.close(fd) - except OSError,e: + except OSError as e: raise IOError(str(e)) self._owns_lock = True diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/__init__.py --- a/kallithea/model/__init__.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/__init__.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.__init__ -~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.model +~~~~~~~~~~~~~~~ The application's model objects @@ -60,7 +60,7 @@ :param engine: engine to bind to """ engine_str = obfuscate_url_pw(str(engine.url)) - log.info("initializing db for %s" % engine_str) + log.info("initializing db for %s", engine_str) meta.Base.metadata.bind = engine @@ -94,7 +94,7 @@ elif isinstance(instance, (int, long)) or safe_str(instance).isdigit(): return cls.get(instance) else: - if instance: + if instance is not None: if callback is None: raise Exception( 'given object must be int, long or Instance of %s ' diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/api_key.py --- a/kallithea/model/api_key.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/api_key.py Sun Sep 06 23:36:05 2015 +0200 @@ -15,7 +15,7 @@ kallithea.model.api_key ~~~~~~~~~~~~~~~~~~~~~~~ -api key model for Kallithea +API key model for Kallithea This file was forked by the Kallithea project in July 2014. Original author and date, and relevant copyright and licensing information is below: @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import time import logging from sqlalchemy import or_ @@ -65,7 +64,7 @@ """ api_key = UserApiKeys.query().filter(UserApiKeys.api_key == api_key) - if user: + if user is not None: user = self._get_user(user) api_key = api_key.filter(UserApiKeys.user_id == user.user_id) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/changeset_status.py --- a/kallithea/model/changeset_status.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/changeset_status.py Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,16 @@ # -*- coding: utf-8 -*- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . """ kallithea.model.changeset_status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -12,22 +24,8 @@ :copyright: (c) 2013 RhodeCode GmbH, and others. :license: GPLv3, see LICENSE.md for more details. """ -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - import logging -from collections import defaultdict from sqlalchemy.orm import joinedload from kallithea.model import BaseModel @@ -66,9 +64,27 @@ q = q.order_by(ChangesetStatus.version.asc()) return q + def _calculate_status(self, statuses): + """ + Given a list of statuses, calculate the resulting status, according to + the policy: approve if consensus, reject when at least one reject. + """ + + if not statuses: + return ChangesetStatus.STATUS_UNDER_REVIEW + + if all(st and st.status == ChangesetStatus.STATUS_APPROVED for st in statuses): + return ChangesetStatus.STATUS_APPROVED + + if any(st and st.status == ChangesetStatus.STATUS_REJECTED for st in statuses): + return ChangesetStatus.STATUS_REJECTED + + return ChangesetStatus.STATUS_UNDER_REVIEW + def calculate_pull_request_result(self, pull_request): """ - Policy: approve if consensus. Only approve and reject counts as valid votes. + Return a tuple (reviewers, pending reviewers, pull request status) + Only approve and reject counts as valid votes. """ # collect latest votes from all voters @@ -77,24 +93,21 @@ pull_request=pull_request, with_revisions=True)): cs_statuses[st.author.username] = st + # collect votes from official reviewers pull_request_reviewers = [] pull_request_pending_reviewers = [] - approved_votes = 0 + relevant_statuses = [] for r in pull_request.reviewers: st = cs_statuses.get(r.user.username) - if st and st.status == ChangesetStatus.STATUS_APPROVED: - approved_votes += 1 + relevant_statuses.append(st) if not st or st.status in (ChangesetStatus.STATUS_NOT_REVIEWED, ChangesetStatus.STATUS_UNDER_REVIEW): st = None pull_request_pending_reviewers.append(r.user) pull_request_reviewers.append((r.user, st)) - # calculate result - result = ChangesetStatus.STATUS_UNDER_REVIEW - if approved_votes and approved_votes == len(pull_request.reviewers): - result = ChangesetStatus.STATUS_APPROVED + result = self._calculate_status(relevant_statuses) return (pull_request_reviewers, pull_request_pending_reviewers, diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/comment.py --- a/kallithea/model/comment.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/comment.py Sun Sep 06 23:36:05 2015 +0200 @@ -63,10 +63,6 @@ line_no=None, revision=None, pull_request=None, status_change=None, closing_pr=False): """ - Get notification data - - :param comment_text: - :param line: :returns: tuple (subj,body,recipients,notification_type,email_kwargs) """ # make notification @@ -79,7 +75,7 @@ if revision: notification_type = Notification.TYPE_CHANGESET_COMMENT cs = repo.scm_instance.get_changeset(revision) - desc = "%s" % (cs.short_id) + desc = cs.short_id threading = ['%s-rev-%s@%s' % (repo.repo_name, revision, h.canonical_hostname())] if line_no: # TODO: url to file _and_ line number @@ -96,7 +92,7 @@ ) # get the current participants of this changeset recipients = ChangesetComment.get_users(revision=revision) - # add changeset author if it's in kallithea system + # add changeset author if it's known locally cs_author = User.get_from_cs_author(cs.author) if not cs_author: #use repo owner if we cannot extract the author correctly @@ -104,7 +100,7 @@ recipients += [cs_author] email_kwargs = { 'status_change': status_change, - 'cs_comment_user': h.person(user, 'username_and_name'), + 'cs_comment_user': h.person(user, 'full_name_and_username'), 'cs_target_repo': h.canonical_url('summary_home', repo_name=repo.repo_name), 'cs_comment_url': comment_url, 'raw_id': revision, @@ -130,9 +126,9 @@ comment_url = pull_request.url(canonical=True, anchor='comment-%s' % comment.comment_id) subj = safe_unicode( - h.link_to('Re pull request #%(pr_id)s: %(desc)s %(line)s' % \ + h.link_to('Re pull request %(pr_nice_id)s: %(desc)s %(line)s' % \ {'desc': desc, - 'pr_id': comment.pull_request.pull_request_id, + 'pr_nice_id': comment.pull_request.nice_id(), 'line': line}, comment_url) ) @@ -140,7 +136,7 @@ recipients = ChangesetComment.get_users(pull_request_id= pull_request.pull_request_id) # add pull request author - recipients += [pull_request.author] + recipients += [pull_request.owner] # add the reviewers to notification recipients += [x.user for x in pull_request.reviewers] @@ -148,11 +144,11 @@ #set some variables for email notification email_kwargs = { 'pr_title': pull_request.title, - 'pr_id': pull_request.pull_request_id, + 'pr_nice_id': pull_request.nice_id(), 'status_change': status_change, 'closing_pr': closing_pr, 'pr_comment_url': comment_url, - 'pr_comment_user': h.person(user, 'username_and_name'), + 'pr_comment_user': h.person(user, 'full_name_and_username'), 'pr_target_repo': h.canonical_url('summary_home', repo_name=pull_request.other_repo.repo_name), 'repo_name': pull_request.other_repo.repo_name, @@ -167,24 +163,14 @@ f_path=None, line_no=None, status_change=None, closing_pr=False, send_email=True): """ - Creates new comment for changeset or pull request. - If status_change is not None this comment is associated with a - status change of changeset or changesets associated with pull request + Creates a new comment for either a changeset or a pull request. + status_change and closing_pr is only for the optional email. - :param text: - :param repo: - :param user: - :param revision: - :param pull_request: (for emails, not for comments) - :param f_path: - :param line_no: - :param status_change: (for emails, not for comments) - :param closing_pr: (for emails, not for comments) - :param send_email: also send email + Returns the created comment. """ - if not text: + if not status_change and not text: log.warning('Missing text for comment, skipping...') - return + return None repo = self._get_repo(repo) user = self._get_user(user) @@ -195,9 +181,9 @@ comment.f_path = f_path comment.line_no = line_no - if revision: + if revision is not None: comment.revision = revision - elif pull_request: + elif pull_request is not None: pull_request = self.__get_pull_request(pull_request) comment.pull_request = pull_request else: @@ -239,11 +225,6 @@ return comment def delete(self, comment): - """ - Deletes given comment - - :param comment_id: - """ comment = self.__get_changeset_comment(comment) Session().delete(comment) @@ -251,46 +232,47 @@ def get_comments(self, repo_id, revision=None, pull_request=None): """ - Gets main comments based on revision or pull_request_id + Gets general comments for either revision or pull_request. + + Returns a list, ordered by creation date. + """ + return self._get_comments(repo_id, revision=revision, pull_request=pull_request, + inline=False) - :param repo_id: - :param revision: - :param pull_request: + def get_inline_comments(self, repo_id, revision=None, pull_request=None): """ + Gets inline comments for either revision or pull_request. + + Returns a list of tuples with file path and list of comments per line number. + """ + comments = self._get_comments(repo_id, revision=revision, pull_request=pull_request, + inline=True) - q = ChangesetComment.query()\ - .filter(ChangesetComment.repo_id == repo_id)\ - .filter(ChangesetComment.line_no == None)\ + paths = defaultdict(lambda: defaultdict(list)) + for co in comments: + paths[co.f_path][co.line_no].append(co) + return paths.items() + + def _get_comments(self, repo_id, revision=None, pull_request=None, inline=False): + """ + Gets comments for either revision or pull_request_id, either inline or general. + """ + q = Session().query(ChangesetComment) + + if inline: + q = q.filter(ChangesetComment.line_no != None)\ + .filter(ChangesetComment.f_path != None) + else: + q = q.filter(ChangesetComment.line_no == None)\ .filter(ChangesetComment.f_path == None) + if revision: - q = q.filter(ChangesetComment.revision == revision) + q = q.filter(ChangesetComment.revision == revision)\ + .filter(ChangesetComment.repo_id == repo_id) elif pull_request: pull_request = self.__get_pull_request(pull_request) q = q.filter(ChangesetComment.pull_request == pull_request) else: - raise Exception('Please specify revision or pull_request') - q = q.order_by(ChangesetComment.created_on) - return q.all() - - def get_inline_comments(self, repo_id, revision=None, pull_request=None): - q = Session().query(ChangesetComment)\ - .filter(ChangesetComment.repo_id == repo_id)\ - .filter(ChangesetComment.line_no != None)\ - .filter(ChangesetComment.f_path != None)\ - .order_by(ChangesetComment.comment_id.asc())\ + raise Exception('Please specify either revision or pull_request') - if revision: - q = q.filter(ChangesetComment.revision == revision) - elif pull_request: - pull_request = self.__get_pull_request(pull_request) - q = q.filter(ChangesetComment.pull_request == pull_request) - else: - raise Exception('Please specify revision or pull_request_id') - - comments = q.all() - - paths = defaultdict(lambda: defaultdict(list)) - - for co in comments: - paths[co.f_path][co.line_no].append(co) - return paths.items() + return q.order_by(ChangesetComment.created_on).all() diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/db.py --- a/kallithea/model/db.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/db.py Sun Sep 06 23:36:05 2015 +0200 @@ -43,9 +43,9 @@ from pylons.i18n.translation import lazy_ugettext as _ from kallithea import DB_PREFIX +from kallithea.lib.exceptions import DefaultUserException from kallithea.lib.vcs import get_backend from kallithea.lib.vcs.utils.helpers import get_scm -from kallithea.lib.vcs.exceptions import VCSError from kallithea.lib.vcs.utils.lazy import LazyProperty from kallithea.lib.vcs.backends.base import EmptyChangeset @@ -129,7 +129,7 @@ raise HTTPNotFound res = cls.query().get(id_) - if not res: + if res is None: raise HTTPNotFound return res @@ -175,8 +175,8 @@ } DEFAULT_UPDATE_URL = '' - app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - app_settings_name = Column("app_settings_name", String(255, convert_unicode=False), nullable=True, unique=None, default=None) + app_settings_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + app_settings_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) _app_settings_value = Column("app_settings_value", String(4096, convert_unicode=False), nullable=True, unique=None, default=None) _app_settings_type = Column("app_settings_type", String(255, convert_unicode=False), nullable=True, unique=None, default=None) @@ -231,7 +231,7 @@ @classmethod def get_by_name_or_create(cls, key, val='', type='unicode'): res = cls.get_by_name(key) - if not res: + if res is None: res = cls(key, val, type) return res @@ -247,7 +247,7 @@ :return: """ res = cls.get_by_name(key) - if not res: + if res is None: val = Optional.extract(val) type = Optional.extract(type) res = cls(key, val, type) @@ -269,7 +269,7 @@ if cache: ret = ret.options(FromCache("sql_cache_short", "get_hg_settings")) - if not ret: + if ret is None: raise Exception('Could not get application settings !') settings = {} for each in ret: @@ -338,11 +338,11 @@ HOOK_PULL = 'outgoing.pull_logger' HOOK_PRE_PULL = 'preoutgoing.pre_pull' - ui_id = Column("ui_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - ui_section = Column("ui_section", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - ui_key = Column("ui_key", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - ui_value = Column("ui_value", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - ui_active = Column("ui_active", Boolean(), nullable=True, unique=None, default=True) + ui_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + ui_section = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + ui_key = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + ui_value = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + ui_active = Column(Boolean(), nullable=True, unique=None, default=True) # def __init__(self, section='', key='', value=''): # self.ui_section = section @@ -401,20 +401,20 @@ DEFAULT_USER = 'default' DEFAULT_GRAVATAR_URL = 'https://secure.gravatar.com/avatar/{md5email}?d=identicon&s={size}' - user_id = Column("user_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - username = Column("username", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - password = Column("password", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - active = Column("active", Boolean(), nullable=True, unique=None, default=True) - admin = Column("admin", Boolean(), nullable=True, unique=None, default=False) + user_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + username = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + password = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + active = Column(Boolean(), nullable=True, unique=None, default=True) + admin = Column(Boolean(), nullable=True, unique=None, default=False) name = Column("firstname", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - lastname = Column("lastname", String(255, convert_unicode=False), nullable=True, unique=None, default=None) + lastname = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) _email = Column("email", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - last_login = Column("last_login", DateTime(timezone=False), nullable=True, unique=None, default=None) - extern_type = Column("extern_type", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - extern_name = Column("extern_name", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - api_key = Column("api_key", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - inherit_default_permissions = Column("inherit_default_permissions", Boolean(), nullable=False, unique=None, default=True) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + last_login = Column(DateTime(timezone=False), nullable=True, unique=None, default=None) + extern_type = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + extern_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + api_key = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + inherit_default_permissions = Column(Boolean(), nullable=False, unique=None, default=True) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) _user_data = Column("user_data", LargeBinary(), nullable=True) # JSON data user_log = relationship('UserLog') @@ -438,7 +438,7 @@ user_comments = relationship('ChangesetComment', cascade='all') #extra emails for this user user_emails = relationship('UserEmailMap', cascade='all') - #extra api keys + #extra API keys user_api_keys = relationship('UserApiKeys', cascade='all') @@ -471,19 +471,28 @@ return [x.ip_addr for x in ret] @property - def username_and_name(self): - return '%s (%s %s)' % (self.username, self.firstname, self.lastname) - - @property def full_name(self): return '%s %s' % (self.firstname, self.lastname) @property def full_name_or_username(self): + """ + Show full name. + If full name is not set, fall back to username. + """ return ('%s %s' % (self.firstname, self.lastname) if (self.firstname and self.lastname) else self.username) @property + def full_name_and_username(self): + """ + Show full name and username as 'Firstname Lastname (username)'. + If full name is not set, fall back to username. + """ + return ('%s %s (%s)' % (self.firstname, self.lastname, self.username) + if (self.firstname and self.lastname) else self.username) + + @property def full_contact(self): return '%s %s <%s>' % (self.firstname, self.lastname, self.email) @@ -501,8 +510,7 @@ Returns instance of AuthUser for this user """ from kallithea.lib.auth import AuthUser - return AuthUser(user_id=self.user_id, api_key=self.api_key, - username=self.username) + return AuthUser(dbuser=self) @hybrid_property def user_data(self): @@ -526,6 +534,18 @@ self.user_id, self.username) @classmethod + def get_or_404(cls, id_, allow_default=True): + ''' + Overridden version of BaseModel.get_or_404, with an extra check on + the default user. + ''' + user = super(User, cls).get_or_404(id_) + if allow_default == False: + if user.username == User.DEFAULT_USER: + raise DefaultUserException + return user + + @classmethod def get_by_username(cls, username, case_insensitive=False, cache=False): if case_insensitive: q = cls.query().filter(cls.username.ilike(username)) @@ -602,19 +622,19 @@ _email = email(author) if _email: user = cls.get_by_email(_email, case_insensitive=True) - if user: + if user is not None: return user # Maybe we can match by username? _author = author_name(author) user = cls.get_by_username(_author, case_insensitive=True) - if user: + if user is not None: return user def update_lastlogin(self): """Update user lastlogin""" self.last_login = datetime.datetime.now() Session().add(self) - log.debug('updated user %s lastlogin' % self.username) + log.debug('updated user %s lastlogin', self.username) @classmethod def get_first_admin(cls): @@ -678,12 +698,12 @@ ) __mapper_args__ = {} - user_api_key_id = Column("user_api_key_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) - api_key = Column("api_key", String(255, convert_unicode=False), nullable=False, unique=True) - description = Column('description', UnicodeText(1024)) - expires = Column('expires', Float(53), nullable=False) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + user_api_key_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) + api_key = Column(String(255, convert_unicode=False), nullable=False, unique=True) + description = Column(UnicodeText(1024)) + expires = Column(Float(53), nullable=False) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) user = relationship('User') @@ -704,8 +724,8 @@ ) __mapper_args__ = {} - email_id = Column("email_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) + email_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) _email = Column("email", String(255, convert_unicode=False), nullable=True, unique=False, default=None) user = relationship('User') @@ -735,10 +755,10 @@ ) __mapper_args__ = {} - ip_id = Column("ip_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) - ip_addr = Column("ip_addr", String(255, convert_unicode=False), nullable=True, unique=False, default=None) - active = Column("active", Boolean(), nullable=True, unique=None, default=True) + ip_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) + ip_addr = Column(String(255, convert_unicode=False), nullable=True, unique=False, default=None) + active = Column(Boolean(), nullable=True, unique=None, default=True) user = relationship('User') @classmethod @@ -763,14 +783,14 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) - user_log_id = Column("user_log_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) - username = Column("username", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) - repository_name = Column("repository_name", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - user_ip = Column("user_ip", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - action = Column("action", UnicodeText(1200000, convert_unicode=False), nullable=True, unique=None, default=None) - action_date = Column("action_date", DateTime(timezone=False), nullable=True, unique=None, default=None) + user_log_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) + username = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=True) + repository_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + user_ip = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + action = Column(UnicodeText(1200000, convert_unicode=False), nullable=True, unique=None, default=None) + action_date = Column(DateTime(timezone=False), nullable=True, unique=None, default=None) def __unicode__(self): return u"<%s('id:%s:%s')>" % (self.__class__.__name__, @@ -792,13 +812,13 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) - users_group_id = Column("users_group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - users_group_name = Column("users_group_name", String(255, convert_unicode=False), nullable=False, unique=True, default=None) - user_group_description = Column("user_group_description", String(10000, convert_unicode=False), nullable=True, unique=None, default=None) - users_group_active = Column("users_group_active", Boolean(), nullable=True, unique=None, default=None) + users_group_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + users_group_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None) + user_group_description = Column(String(10000, convert_unicode=False), nullable=True, unique=None, default=None) + users_group_active = Column(Boolean(), nullable=True, unique=None, default=None) inherit_default_permissions = Column("users_group_inherit_default_permissions", Boolean(), nullable=False, unique=None, default=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) _group_data = Column("group_data", LargeBinary(), nullable=True) # JSON data members = relationship('UserGroupMember', cascade="all, delete-orphan") @@ -882,9 +902,9 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) - users_group_member_id = Column("users_group_member_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + users_group_member_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) user = relationship('User') users_group = relationship('UserGroup') @@ -903,14 +923,14 @@ ) PREFIX = 'ex_' # prefix used in form to not conflict with already existing fields - repo_field_id = Column("repo_field_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) - field_key = Column("field_key", String(250, convert_unicode=False)) - field_label = Column("field_label", String(1024, convert_unicode=False), nullable=False) - field_value = Column("field_value", String(10000, convert_unicode=False), nullable=False) - field_desc = Column("field_desc", String(1024, convert_unicode=False), nullable=False) - field_type = Column("field_type", String(255), nullable=False, unique=None) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + repo_field_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) + field_key = Column(String(250, convert_unicode=False)) + field_label = Column(String(1024, convert_unicode=False), nullable=False) + field_value = Column(String(10000, convert_unicode=False), nullable=False) + field_desc = Column(String(1024, convert_unicode=False), nullable=False) + field_type = Column(String(255), nullable=False, unique=None) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) repository = relationship('Repository') @@ -947,26 +967,26 @@ STATE_PENDING = 'repo_state_pending' STATE_ERROR = 'repo_state_error' - repo_id = Column("repo_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - repo_name = Column("repo_name", String(255, convert_unicode=False), nullable=False, unique=True, default=None) - repo_state = Column("repo_state", String(255), nullable=True) - - clone_uri = Column("clone_uri", String(255, convert_unicode=False), nullable=True, unique=False, default=None) - repo_type = Column("repo_type", String(255, convert_unicode=False), nullable=False, unique=False, default=None) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) - private = Column("private", Boolean(), nullable=True, unique=None, default=None) + repo_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + repo_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None) + repo_state = Column(String(255), nullable=True) + + clone_uri = Column(String(255, convert_unicode=False), nullable=True, unique=False, default=None) + repo_type = Column(String(255, convert_unicode=False), nullable=False, unique=False, default=None) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) + private = Column(Boolean(), nullable=True, unique=None, default=None) enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True) enable_downloads = Column("downloads", Boolean(), nullable=True, unique=None, default=True) - description = Column("description", String(10000, convert_unicode=False), nullable=True, unique=None, default=None) - created_on = Column('created_on', DateTime(timezone=False), nullable=True, unique=None, default=datetime.datetime.now) - updated_on = Column('updated_on', DateTime(timezone=False), nullable=True, unique=None, default=datetime.datetime.now) + description = Column(String(10000, convert_unicode=False), nullable=True, unique=None, default=None) + created_on = Column(DateTime(timezone=False), nullable=False, unique=None, default=datetime.datetime.now) + updated_on = Column(DateTime(timezone=False), nullable=False, unique=None, default=datetime.datetime.now) _landing_revision = Column("landing_revision", String(255, convert_unicode=False), nullable=False, unique=False, default=None) - enable_locking = Column("enable_locking", Boolean(), nullable=False, unique=None, default=False) + enable_locking = Column(Boolean(), nullable=False, unique=None, default=False) _locked = Column("locked", String(255, convert_unicode=False), nullable=True, unique=False, default=None) _changeset_cache = Column("changeset_cache", LargeBinary(), nullable=True) #JSON data - fork_id = Column("fork_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=False, default=None) - group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=False, default=None) + fork_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=False, default=None) + group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=True, unique=False, default=None) user = relationship('User') fork = relationship('Repository', remote_side=repo_id) @@ -1030,14 +1050,12 @@ @hybrid_property def changeset_cache(self): - from kallithea.lib.vcs.backends.base import EmptyChangeset - dummy = EmptyChangeset().__json__() - if not self._changeset_cache: - return dummy try: - return json.loads(self._changeset_cache) - except TypeError: - return dummy + cs_cache = json.loads(self._changeset_cache) # might raise on bad data + cs_cache['raw_id'] # verify data, raise exception on error + return cs_cache + except (TypeError, KeyError, ValueError): + return EmptyChangeset().__json__() @changeset_cache.setter def changeset_cache(self, val): @@ -1280,7 +1298,7 @@ pass return get_clone_url(uri_tmpl=uri_tmpl, - qualifed_home_url=qualified_home_url, + qualified_home_url=qualified_home_url, repo_name=self.repo_name, repo_id=self.repo_id, **override) @@ -1331,15 +1349,15 @@ if (not self.changeset_cache or cs_cache['raw_id'] != self.changeset_cache['raw_id']): _default = datetime.datetime.fromtimestamp(0) last_change = cs_cache.get('date') or _default - log.debug('updated repo %s with new cs cache %s' - % (self.repo_name, cs_cache)) + log.debug('updated repo %s with new cs cache %s', + self.repo_name, cs_cache) self.updated_on = last_change self.changeset_cache = cs_cache Session().add(self) Session().commit() else: - log.debug('changeset_cache for %s already up to date with %s' - % (self.repo_name, cs_cache['raw_id'])) + log.debug('changeset_cache for %s already up to date with %s', + self.repo_name, cs_cache['raw_id']) @property def tip(self): @@ -1387,12 +1405,13 @@ grouped = {} for stat in statuses.all(): - pr_id = pr_repo = None + pr_id = pr_nice_id = pr_repo = None if stat.pull_request: pr_id = stat.pull_request.pull_request_id + pr_nice_id = PullRequest.make_nice_id(pr_id) pr_repo = stat.pull_request.other_repo.repo_name grouped[stat.revision] = [str(stat.status), stat.status_lbl, - pr_id, pr_repo] + pr_id, pr_repo, pr_nice_id] return grouped def _repo_size(self): @@ -1429,18 +1448,18 @@ valid = CacheInvalidation.test_and_set_valid(rn, None, valid_cache_keys=valid_cache_keys) if not valid: - log.debug('Cache for %s invalidated, getting new object' % (rn)) + log.debug('Cache for %s invalidated, getting new object', rn) region_invalidate(_c, None, rn) else: - log.debug('Getting scm_instance of %s from cache' % (rn)) + log.debug('Getting scm_instance of %s from cache', rn) return _c(rn) def __get_instance(self): repo_full_path = self.repo_full_path alias = get_scm(repo_full_path)[0] - log.debug('Creating instance of %s repository from %s' - % (alias, repo_full_path)) + log.debug('Creating instance of %s repository from %s', + alias, repo_full_path) backend = get_backend(alias) if alias == 'hg': @@ -1466,13 +1485,13 @@ SEP = ' » ' - group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - group_name = Column("group_name", String(255, convert_unicode=False), nullable=False, unique=True, default=None) - group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None) - group_description = Column("group_description", String(10000, convert_unicode=False), nullable=True, unique=None, default=None) - enable_locking = Column("enable_locking", Boolean(), nullable=False, unique=None, default=False) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + group_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + group_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None) + group_parent_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None) + group_description = Column(String(10000, convert_unicode=False), nullable=True, unique=None, default=None) + enable_locking = Column(Boolean(), nullable=False, unique=None, default=False) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) repo_group_to_perm = relationship('UserRepoGroupToPerm', cascade='all', order_by='UserRepoGroupToPerm.group_to_perm_id') users_group_to_perm = relationship('UserGroupRepoGroupToPerm', cascade='all') @@ -1489,23 +1508,17 @@ @classmethod def _generate_choice(cls, repo_group): - from webhelpers.html import literal as _literal - _name = lambda k: _literal(cls.SEP.join(k)) - return repo_group.group_id, _name(repo_group.full_path_splitted) + """Return tuple with group_id and name as html literal""" + from webhelpers.html import literal + if repo_group is None: + return (-1, u'-- %s --' % _('top level')) + return repo_group.group_id, literal(cls.SEP.join(repo_group.full_path_splitted)) @classmethod - def groups_choices(cls, groups=None, show_empty_group=True): - if not groups: - groups = cls.query().all() - - repo_groups = [] - if show_empty_group: - repo_groups = [('-1', u'-- %s --' % _('top level'))] - - repo_groups.extend([cls._generate_choice(x) for x in groups]) - - repo_groups = sorted(repo_groups, key=lambda t: t[1].split(cls.SEP)[0]) - return repo_groups + def groups_choices(cls, groups): + """Return tuples with group_id and name as html literal.""" + return sorted((cls._generate_choice(g) for g in groups), + key=lambda c: c[1].split(cls.SEP)) @classmethod def url_sep(cls): @@ -1651,29 +1664,29 @@ PERMS = [ ('hg.admin', _('Kallithea Administrator')), - ('repository.none', _('Default user has no access to new Repositories')), - ('repository.read', _('Default user has read access to new Repositories')), - ('repository.write', _('Default user has write access to new Repositories')), - ('repository.admin', _('Default user has admin access to new Repositories')), - - ('group.none', _('Default user has no access to new Repository Groups')), - ('group.read', _('Default user has read access to new Repository Groups')), - ('group.write', _('Default user has write access to new Repository Groups')), - ('group.admin', _('Default user has admin access to new Repository Groups')), - - ('usergroup.none', _('Default user has no access to new User Groups')), - ('usergroup.read', _('Default user has read access to new User Groups')), - ('usergroup.write', _('Default user has write access to new User Groups')), - ('usergroup.admin', _('Default user has admin access to new User Groups')), - - ('hg.repogroup.create.false', _('Only admins can create Repository Groups')), - ('hg.repogroup.create.true', _('Non-admins can create Repository Groups')), - - ('hg.usergroup.create.false', _('Only admins can create User Groups')), - ('hg.usergroup.create.true', _('Non-admins can create User Groups')), - - ('hg.create.none', _('Only admins can create top level Repositories')), - ('hg.create.repository', _('Non-admins can create top level Repositories')), + ('repository.none', _('Default user has no access to new repositories')), + ('repository.read', _('Default user has read access to new repositories')), + ('repository.write', _('Default user has write access to new repositories')), + ('repository.admin', _('Default user has admin access to new repositories')), + + ('group.none', _('Default user has no access to new repository groups')), + ('group.read', _('Default user has read access to new repository groups')), + ('group.write', _('Default user has write access to new repository groups')), + ('group.admin', _('Default user has admin access to new repository groups')), + + ('usergroup.none', _('Default user has no access to new user groups')), + ('usergroup.read', _('Default user has read access to new user groups')), + ('usergroup.write', _('Default user has write access to new user groups')), + ('usergroup.admin', _('Default user has admin access to new user groups')), + + ('hg.repogroup.create.false', _('Only admins can create repository groups')), + ('hg.repogroup.create.true', _('Non-admins can create repository groups')), + + ('hg.usergroup.create.false', _('Only admins can create user groups')), + ('hg.usergroup.create.true', _('Non-admins can create user groups')), + + ('hg.create.none', _('Only admins can create top level repositories')), + ('hg.create.repository', _('Non-admins can create top level repositories')), ('hg.create.write_on_repogroup.true', _('Repository creation enabled with write permission to a repository group')), ('hg.create.write_on_repogroup.false', _('Repository creation disabled with write permission to a repository group')), @@ -1682,8 +1695,8 @@ ('hg.fork.repository', _('Non-admins can can fork repositories')), ('hg.register.none', _('Registration disabled')), - ('hg.register.manual_activate', _('User Registration with manual account activation')), - ('hg.register.auto_activate', _('User Registration with automatic account activation')), + ('hg.register.manual_activate', _('User registration with manual account activation')), + ('hg.register.auto_activate', _('User registration with automatic account activation')), ('hg.extern_activate.manual', _('Manual activation of external account')), ('hg.extern_activate.auto', _('Automatic activation of external account')), @@ -1719,6 +1732,7 @@ 'usergroup.read': 1, 'usergroup.write': 3, 'usergroup.admin': 4, + 'hg.repogroup.create.false': 0, 'hg.repogroup.create.true': 1, @@ -1727,13 +1741,14 @@ 'hg.fork.none': 0, 'hg.fork.repository': 1, + 'hg.create.none': 0, 'hg.create.repository': 1 } - permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - permission_name = Column("permission_name", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - permission_longname = Column("permission_longname", String(255, convert_unicode=False), nullable=True, unique=None, default=None) + permission_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + permission_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) + permission_longname = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None) def __unicode__(self): return u"<%s('%s:%s')>" % ( @@ -1779,10 +1794,10 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) - repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) + repo_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) user = relationship('User') repository = relationship('Repository') @@ -1808,10 +1823,10 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - user_user_group_to_perm_id = Column("user_user_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) - user_group_id = Column("user_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + user_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) user = relationship('User') user_group = relationship('UserGroup') @@ -1837,9 +1852,9 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - user_to_perm_id = Column("user_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + user_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) user = relationship('User') permission = relationship('Permission') @@ -1855,10 +1870,10 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) - repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) + users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) users_group = relationship('UserGroup') permission = relationship('Permission') @@ -1885,10 +1900,10 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - user_group_user_group_to_perm_id = Column("user_group_user_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - target_user_group_id = Column("target_user_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) - user_group_id = Column("user_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + user_group_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + target_user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) target_user_group = relationship('UserGroup', primaryjoin='UserGroupUserGroupToPerm.target_user_group_id==UserGroup.users_group_id') user_group = relationship('UserGroup', primaryjoin='UserGroupUserGroupToPerm.user_group_id==UserGroup.users_group_id') @@ -1914,9 +1929,9 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) users_group = relationship('UserGroup') permission = relationship('Permission') @@ -1930,10 +1945,10 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) - group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) user = relationship('User') group = relationship('RepoGroup') @@ -1957,10 +1972,10 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) - group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) - permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + users_group_repo_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) + permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) users_group = relationship('UserGroup') permission = relationship('Permission') @@ -1983,12 +1998,12 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - stat_id = Column("stat_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None) - stat_on_revision = Column("stat_on_revision", Integer(), nullable=False) - commit_activity = Column("commit_activity", LargeBinary(1000000), nullable=False)#JSON data - commit_activity_combined = Column("commit_activity_combined", LargeBinary(), nullable=False)#JSON data - languages = Column("languages", LargeBinary(1000000), nullable=False)#JSON data + stat_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None) + stat_on_revision = Column(Integer(), nullable=False) + commit_activity = Column(LargeBinary(1000000), nullable=False)#JSON data + commit_activity_combined = Column(LargeBinary(), nullable=False)#JSON data + languages = Column(LargeBinary(1000000), nullable=False)#JSON data repository = relationship('Repository', single_parent=True) @@ -2002,11 +2017,11 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) + user_following_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=None, default=None) - follows_user_id = Column("follows_user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) - follows_from = Column('follows_from', DateTime(timezone=False), nullable=True, unique=None, default=datetime.datetime.now) + follows_user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) + follows_from = Column(DateTime(timezone=False), nullable=True, unique=None, default=datetime.datetime.now) user = relationship('User', primaryjoin='User.user_id==UserFollowing.user_id') @@ -2027,14 +2042,14 @@ 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) # cache_id, not used - cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) + cache_id = Column(Integer(), nullable=False, unique=True, primary_key=True) # cache_key as created by _get_cache_key - cache_key = Column("cache_key", String(255, convert_unicode=False), nullable=True, unique=None, default=None) + cache_key = Column(String(255, convert_unicode=False)) # cache_args is a repo_name - cache_args = Column("cache_args", String(255, convert_unicode=False), nullable=True, unique=None, default=None) - # instance sets cache_active True when it is caching, - # other instances set cache_active to False to indicate that this cache is invalid - cache_active = Column("cache_active", Boolean(), nullable=True, unique=None, default=False) + cache_args = Column(String(255, convert_unicode=False)) + # instance sets cache_active True when it is caching, other instances set + # cache_active to False to indicate that this cache is invalid + cache_active = Column(Boolean(), nullable=True, unique=None, default=False) def __init__(self, cache_key, repo_name=''): self.cache_key = cache_key @@ -2042,8 +2057,9 @@ self.cache_active = False def __unicode__(self): - return u"<%s('%s:%s[%s]')>" % (self.__class__.__name__, - self.cache_id, self.cache_key, self.cache_active) + return u"<%s('%s:%s[%s]')>" % ( + self.__class__.__name__, + self.cache_id, self.cache_key, self.cache_active) def _cache_key_partition(self): prefix, repo_name, suffix = self.cache_key.partition(self.cache_args) @@ -2092,12 +2108,12 @@ Mark all caches of a repo as invalid in the database. """ inv_objs = Session().query(cls).filter(cls.cache_args == repo_name).all() - log.debug('for repo %s got %s invalidation objects' - % (safe_str(repo_name), inv_objs)) + log.debug('for repo %s got %s invalidation objects', + safe_str(repo_name), inv_objs) for inv_obj in inv_objs: - log.debug('marking %s key for invalidation based on repo_name=%s' - % (inv_obj, safe_str(repo_name))) + log.debug('marking %s key for invalidation based on repo_name=%s', + inv_obj, safe_str(repo_name)) if delete: Session().delete(inv_obj) else: @@ -2146,24 +2162,24 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) - comment_id = Column('comment_id', Integer(), nullable=False, primary_key=True) - repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) - revision = Column('revision', String(40), nullable=True) - pull_request_id = Column("pull_request_id", Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=True) - line_no = Column('line_no', Unicode(10), nullable=True) - hl_lines = Column('hl_lines', Unicode(512), nullable=True) - f_path = Column('f_path', Unicode(1000), nullable=True) - user_id = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=False) - text = Column('text', UnicodeText(25000), nullable=False) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) - modified_at = Column('modified_at', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + comment_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) + revision = Column(String(40)) + pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id')) + line_no = Column(Unicode(10)) + f_path = Column(Unicode(1000)) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) + text = Column(UnicodeText(25000), nullable=False) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + modified_at = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) author = relationship('User') repo = relationship('Repository') # status_change is frequently used directly in templates - make it a lazy # join to avoid fetching each related ChangesetStatus on demand. # There will only be one ChangesetStatus referencing each comment so the join will not explode. - status_change = relationship('ChangesetStatus', cascade="all, delete-orphan", lazy='joined') + status_change = relationship('ChangesetStatus', + cascade="all, delete-orphan", lazy='joined') pull_request = relationship('PullRequest') @classmethod @@ -2183,6 +2199,13 @@ q = q.filter(cls.pull_request_id == pull_request_id) return q.all() + def url(self): + anchor = "comment-%s" % self.comment_id + import kallithea.lib.helpers as h + if self.revision: + return h.url('changeset_home', repo_name=self.repo.repo_name, revision=self.revision, anchor=anchor) + elif self.pull_request_id is not None: + return self.pull_request.url(anchor=anchor) class ChangesetStatus(Base, BaseModel): __tablename__ = 'changeset_statuses' @@ -2202,21 +2225,21 @@ STATUS_UNDER_REVIEW = 'under_review' STATUSES = [ - (STATUS_NOT_REVIEWED, _("Not Reviewed")), # (no icon) and default + (STATUS_NOT_REVIEWED, _("Not reviewed")), # (no icon) and default (STATUS_APPROVED, _("Approved")), (STATUS_REJECTED, _("Rejected")), - (STATUS_UNDER_REVIEW, _("Under Review")), + (STATUS_UNDER_REVIEW, _("Under review")), ] - changeset_status_id = Column('changeset_status_id', Integer(), nullable=False, primary_key=True) - repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None) - revision = Column('revision', String(40), nullable=False) - status = Column('status', String(128), nullable=False, default=DEFAULT) - changeset_comment_id = Column('changeset_comment_id', Integer(), ForeignKey('changeset_comments.comment_id')) - modified_at = Column('modified_at', DateTime(), nullable=False, default=datetime.datetime.now) - version = Column('version', Integer(), nullable=False, default=0) - pull_request_id = Column("pull_request_id", Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=True) + changeset_status_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None) + revision = Column(String(40), nullable=False) + status = Column(String(128), nullable=False, default=DEFAULT) + changeset_comment_id = Column(Integer(), ForeignKey('changeset_comments.comment_id'), nullable=False) + modified_at = Column(DateTime(), nullable=False, default=datetime.datetime.now) + version = Column(Integer(), nullable=False, default=0) + pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=True) author = relationship('User') repo = relationship('Repository') @@ -2251,18 +2274,18 @@ STATUS_NEW = u'new' STATUS_CLOSED = u'closed' - pull_request_id = Column('pull_request_id', Integer(), nullable=False, primary_key=True) - title = Column('title', Unicode(255), nullable=True) - description = Column('description', UnicodeText(10240), nullable=True) - status = Column('status', Unicode(255), nullable=False, default=STATUS_NEW) # only for closedness, not approve/reject/etc - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) - updated_on = Column('updated_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None) + pull_request_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + title = Column(Unicode(255), nullable=True) + description = Column(UnicodeText(10240)) + status = Column(Unicode(255), nullable=False, default=STATUS_NEW) # only for closedness, not approve/reject/etc + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + updated_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None) _revisions = Column('revisions', UnicodeText(20500)) # 500 revisions max - org_repo_id = Column('org_repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) - org_ref = Column('org_ref', Unicode(255), nullable=False) - other_repo_id = Column('other_repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) - other_ref = Column('other_ref', Unicode(255), nullable=False) + org_repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) + org_ref = Column(Unicode(255), nullable=False) + other_repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) + other_ref = Column(Unicode(255), nullable=False) @hybrid_property def revisions(self): @@ -2280,7 +2303,7 @@ def other_ref_parts(self): return self.other_ref.split(':') - author = relationship('User') + owner = relationship('User') reviewers = relationship('PullRequestReviewers', cascade="all, delete-orphan") org_repo = relationship('Repository', primaryjoin='PullRequest.org_repo_id==Repository.repo_id') @@ -2292,10 +2315,6 @@ def is_closed(self): return self.status == self.STATUS_CLOSED - @property - def last_review_status(self): - return str(self.statuses[-1].status) if self.statuses else '' - def user_review_status(self, user_id): """Return the user's latest status votes on PR""" # note: no filtering on repo - that would be redundant @@ -2306,6 +2325,15 @@ .first() return str(status.status) if status else '' + @classmethod + def make_nice_id(cls, pull_request_id): + '''Return pull request id nicely formatted for displaying''' + return '#%s' % pull_request_id + + def nice_id(self): + '''Return the id of this pull request, nicely formatted for displaying''' + return self.make_nice_id(self.pull_request_id) + def __json__(self): return dict( revisions=self.revisions @@ -2337,9 +2365,9 @@ self.user = user self.pull_request = pull_request - pull_requests_reviewers_id = Column('pull_requests_reviewers_id', Integer(), nullable=False, primary_key=True) - pull_request_id = Column("pull_request_id", Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=False) - user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True) + pull_requests_reviewers_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=False) + user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True) user = relationship('User') pull_request = relationship('PullRequest') @@ -2360,11 +2388,11 @@ TYPE_PULL_REQUEST = u'pull_request' TYPE_PULL_REQUEST_COMMENT = u'pull_request_comment' - notification_id = Column('notification_id', Integer(), nullable=False, primary_key=True) - subject = Column('subject', Unicode(512), nullable=True) - body = Column('body', UnicodeText(50000), nullable=True) - created_by = Column("created_by", Integer(), ForeignKey('users.user_id'), nullable=True) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + notification_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + subject = Column(Unicode(512), nullable=True) + body = Column(UnicodeText(50000), nullable=True) + created_by = Column(Integer(), ForeignKey('users.user_id'), nullable=True) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) type_ = Column('type', Unicode(255)) created_by_user = relationship('User') @@ -2372,8 +2400,8 @@ @property def recipients(self): - return [x.user for x in UserNotification.query()\ - .filter(UserNotification.notification == self)\ + return [x.user for x in UserNotification.query() + .filter(UserNotification.notification == self) .order_by(UserNotification.user_id.asc()).all()] @classmethod @@ -2410,10 +2438,10 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True} ) - user_id = Column('user_id', Integer(), ForeignKey('users.user_id'), primary_key=True) - notification_id = Column("notification_id", Integer(), ForeignKey('notifications.notification_id'), primary_key=True) - read = Column('read', Boolean, default=False) - sent_on = Column('sent_on', DateTime(timezone=False), nullable=True, unique=None) + user_id = Column(Integer(), ForeignKey('users.user_id'), primary_key=True) + notification_id = Column(Integer(), ForeignKey('notifications.notification_id'), primary_key=True) + read = Column(Boolean, default=False) + sent_on = Column(DateTime(timezone=False), nullable=True, unique=None) user = relationship('User') notification = relationship('Notification') @@ -2435,14 +2463,14 @@ GIST_PRIVATE = u'private' DEFAULT_FILENAME = u'gistfile1.txt' - gist_id = Column('gist_id', Integer(), primary_key=True) - gist_access_id = Column('gist_access_id', Unicode(250)) - gist_description = Column('gist_description', UnicodeText(1024)) + gist_id = Column(Integer(), nullable=False, unique=True, primary_key=True) + gist_access_id = Column(Unicode(250)) + gist_description = Column(UnicodeText(1024)) gist_owner = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=True) - gist_expires = Column('gist_expires', Float(53), nullable=False) - gist_type = Column('gist_type', Unicode(128), nullable=False) - created_on = Column('created_on', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) - modified_at = Column('modified_at', DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + gist_expires = Column(Float(53), nullable=False) + gist_type = Column(Unicode(128), nullable=False) + created_on = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) + modified_at = Column(DateTime(timezone=False), nullable=False, default=datetime.datetime.now) owner = relationship('User') @@ -2452,7 +2480,7 @@ @classmethod def get_or_404(cls, id_): res = cls.query().filter(cls.gist_access_id == id_).scalar() - if not res: + if res is None: raise HTTPNotFound return res @@ -2519,6 +2547,6 @@ {'extend_existing': True, 'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8', 'sqlite_autoincrement': True}, ) - repository_id = Column('repository_id', String(250), primary_key=True) - repository_path = Column('repository_path', Text) - version = Column('version', Integer) + repository_id = Column(String(250), nullable=False, unique=True, primary_key=True) + repository_path = Column(Text) + version = Column(Integer) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/forms.py --- a/kallithea/model/forms.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/forms.py Sun Sep 06 23:36:05 2015 +0200 @@ -54,8 +54,8 @@ min=1, not_empty=True, messages={ - 'empty': _(u'Please enter a login'), - 'tooShort': _(u'Enter a value %(min)i characters long or more')} + 'empty': _('Please enter a login'), + 'tooShort': _('Enter a value %(min)i characters long or more')} ) password = v.UnicodeString( @@ -63,8 +63,8 @@ min=3, not_empty=True, messages={ - 'empty': _(u'Please enter a password'), - 'tooShort': _(u'Enter %(min)i characters or more')} + 'empty': _('Please enter a password'), + 'tooShort': _('Enter %(min)i characters or more')} ) remember = v.StringBoolean(if_missing=False) @@ -102,6 +102,8 @@ v.UnicodeString(strip=False, min=6, not_empty=False), ) admin = v.StringBoolean(if_missing=False) + chained_validators = [v.ValidPasswordsMatch('new_password', + 'password_confirmation')] else: password = All( v.ValidPassword(), @@ -111,14 +113,15 @@ v.ValidPassword(), v.UnicodeString(strip=False, min=6, not_empty=False) ) + chained_validators = [v.ValidPasswordsMatch('password', + 'password_confirmation')] active = v.StringBoolean(if_missing=False) firstname = v.UnicodeString(strip=True, min=1, not_empty=False) lastname = v.UnicodeString(strip=True, min=1, not_empty=False) email = All(v.Email(not_empty=True), v.UniqSystemEmail(old_data)) - extern_name = v.UnicodeString(strip=True) - extern_type = v.UnicodeString(strip=True) - chained_validators = [v.ValidPasswordsMatch()] + extern_name = v.UnicodeString(strip=True, if_missing=None) + extern_type = v.UnicodeString(strip=True, if_missing=None) return _UserForm @@ -145,8 +148,9 @@ return _UserGroupForm -def RepoGroupForm(edit=False, old_data={}, available_groups=[], +def RepoGroupForm(edit=False, old_data={}, repo_groups=[], can_create_in_root=False): + repo_group_ids = [rg[0] for rg in repo_groups] class _RepoGroupForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False @@ -162,10 +166,12 @@ #FIXME: do a special check that we cannot move a group to one of #its children pass + group_parent_id = All(v.CanCreateGroup(can_create_in_root), - v.OneOf(available_groups, hideList=False, + v.OneOf(repo_group_ids, hideList=False, testValueList=True, - if_missing=None, not_empty=True)) + if_missing=None, not_empty=True), + v.Int(min=-1, not_empty=True)) enable_locking = v.StringBoolean(if_missing=False) chained_validators = [v.ValidRepoGroup(edit, old_data)] @@ -193,28 +199,45 @@ lastname = v.UnicodeString(strip=True, min=1, not_empty=False) email = All(v.Email(not_empty=True), v.UniqSystemEmail(old_data)) - chained_validators = [v.ValidPasswordsMatch()] + chained_validators = [v.ValidPasswordsMatch('password', + 'password_confirmation')] return _RegisterForm -def PasswordResetForm(): - class _PasswordResetForm(formencode.Schema): +def PasswordResetRequestForm(): + class _PasswordResetRequestForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True email = v.Email(not_empty=True) - return _PasswordResetForm + return _PasswordResetRequestForm + +def PasswordResetConfirmationForm(): + class _PasswordResetConfirmationForm(formencode.Schema): + allow_extra_fields = True + filter_extra_fields = True + email = v.UnicodeString(strip=True, not_empty=True) + timestamp = v.Number(strip=True, not_empty=True) + token = v.UnicodeString(strip=True, not_empty=True) + password = All(v.ValidPassword(), v.UnicodeString(strip=False, min=6)) + password_confirm = All(v.ValidPassword(), v.UnicodeString(strip=False, min=6)) + + chained_validators = [v.ValidPasswordsMatch('password', + 'password_confirm')] + return _PasswordResetConfirmationForm def RepoForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(), repo_groups=[], landing_revs=[]): + repo_group_ids = [rg[0] for rg in repo_groups] class _RepoForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True), v.SlugifyName()) repo_group = All(v.CanWriteGroup(old_data), - v.OneOf(repo_groups, hideList=True)) + v.OneOf(repo_group_ids, hideList=True), + v.Int(min=-1, not_empty=True)) repo_type = v.OneOf(supported_backends, required=False, if_missing=old_data.get('repo_type')) repo_description = v.UnicodeString(strip=True, min=1, not_empty=False) @@ -230,7 +253,8 @@ if edit: #this is repo owner user = All(v.UnicodeString(not_empty=True), v.ValidRepoUser()) - clone_uri_change = v.UnicodeString(not_empty=False, if_missing=v.Missing) + # Not a real field - just for reference for validation: + # clone_uri_hidden = v.UnicodeString(if_missing='') chained_validators = [v.ValidCloneUri(), v.ValidRepoName(edit, old_data)] @@ -280,13 +304,15 @@ def RepoForkForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(), repo_groups=[], landing_revs=[]): + repo_group_ids = [rg[0] for rg in repo_groups] class _RepoForkForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True), v.SlugifyName()) repo_group = All(v.CanWriteGroup(), - v.OneOf(repo_groups, hideList=True)) + v.OneOf(repo_group_ids, hideList=True), + v.Int(min=-1, not_empty=True)) repo_type = All(v.ValidForkType(old_data), v.OneOf(supported_backends)) description = v.UnicodeString(strip=True, min=1, not_empty=True) private = v.StringBoolean(if_missing=False) @@ -506,6 +532,8 @@ pullrequest_desc = v.UnicodeString(strip=True, required=False) review_members = v.Set() updaterev = v.UnicodeString(strip=True, required=False, if_missing=None) + owner = All(v.UnicodeString(strip=True, required=True), + v.ValidRepoUser()) return _PullRequestPostForm diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/gist.py --- a/kallithea/model/gist.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/gist.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import time import logging @@ -33,7 +32,7 @@ import shutil from kallithea.lib.utils2 import safe_unicode, unique_id, safe_int, \ - time_to_datetime, safe_str, AttributeDict + time_to_datetime, AttributeDict from kallithea.lib.compat import json from kallithea.model import BaseModel from kallithea.model.db import Gist @@ -65,7 +64,7 @@ """ root_path = RepoModel().repos_path rm_path = os.path.join(root_path, GIST_STORE_LOC, gist.gist_access_id) - log.info("Removing %s" % (rm_path,)) + log.info("Removing %s", rm_path) shutil.rmtree(rm_path) def _store_metadata(self, repo, gist_id, gist_access_id, user_id, gist_type, @@ -113,9 +112,9 @@ gist_id = safe_unicode(unique_id(20)) lifetime = safe_int(lifetime, -1) gist_expires = time.time() + (lifetime * 60) if lifetime != -1 else -1 - log.debug('set GIST expiration date to: %s' - % (time_to_datetime(gist_expires) - if gist_expires != -1 else 'forever')) + log.debug('set GIST expiration date to: %s', + time_to_datetime(gist_expires) + if gist_expires != -1 else 'forever') #create the Database version gist = Gist() gist.gist_description = description @@ -132,7 +131,7 @@ self.sa.add(gist) gist_repo_path = os.path.join(GIST_STORE_LOC, gist_id) - log.debug('Creating new %s GIST repo in %s' % (gist_type, gist_repo_path)) + log.debug('Creating new %s GIST repo in %s', gist_type, gist_repo_path) repo = RepoModel()._create_filesystem_repo( repo_name=gist_id, repo_type='hg', repo_group=GIST_STORE_LOC) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/notification.py --- a/kallithea/model/notification.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/notification.py Sun Sep 06 23:36:05 2015 +0200 @@ -53,7 +53,7 @@ elif isinstance(notification, (int, long)): return Notification.get(notification) else: - if notification: + if notification is not None: raise Exception('notification must be int, long or Instance' ' of Notification got %s' % type(notification)) @@ -85,20 +85,20 @@ if recipients: for u in recipients: obj = self._get_user(u) - if obj: + if obj is not None: recipients_objs.append(obj) else: # TODO: inform user that requested operation couldn't be completed log.error('cannot email unknown user %r', u) recipients_objs = set(recipients_objs) - log.debug('sending notifications %s to %s' % ( - type_, recipients_objs) + log.debug('sending notifications %s to %s', + type_, recipients_objs ) elif recipients is None: # empty recipients means to all admins recipients_objs = User.query().filter(User.admin == True).all() - log.debug('sending notifications %s to admins: %s' % ( - type_, recipients_objs) + log.debug('sending notifications %s to admins: %s', + type_, recipients_objs ) #else: silently skip notification mails? @@ -145,7 +145,7 @@ .get_email_tmpl(type_, 'html', **html_kwargs) run_task(tasks.send_email, [rec.email], email_subject, email_txt_body, - email_html_body, headers) + email_html_body, headers, author=created_by_obj) return notif @@ -248,25 +248,31 @@ """ #alias _n = notification - _map = { - _n.TYPE_CHANGESET_COMMENT: _('%(user)s commented on changeset at %(when)s'), - _n.TYPE_MESSAGE: _('%(user)s sent message at %(when)s'), - _n.TYPE_MENTION: _('%(user)s mentioned you at %(when)s'), - _n.TYPE_REGISTRATION: _('%(user)s registered in Kallithea at %(when)s'), - _n.TYPE_PULL_REQUEST: _('%(user)s opened new pull request at %(when)s'), - _n.TYPE_PULL_REQUEST_COMMENT: _('%(user)s commented on pull request at %(when)s') - } - tmpl = _map[notification.type_] if show_age: - when = h.age(notification.created_on) + return { + _n.TYPE_CHANGESET_COMMENT: _('%(user)s commented on changeset %(age)s'), + _n.TYPE_MESSAGE: _('%(user)s sent message %(age)s'), + _n.TYPE_MENTION: _('%(user)s mentioned you %(age)s'), + _n.TYPE_REGISTRATION: _('%(user)s registered in Kallithea %(age)s'), + _n.TYPE_PULL_REQUEST: _('%(user)s opened new pull request %(age)s'), + _n.TYPE_PULL_REQUEST_COMMENT: _('%(user)s commented on pull request %(age)s'), + }[notification.type_] % dict( + user=notification.created_by_user.username, + age=h.age(notification.created_on), + ) else: - when = h.fmt_date(notification.created_on) - - return tmpl % dict( - user=notification.created_by_user.username, - when=when, - ) + return { + _n.TYPE_CHANGESET_COMMENT: _('%(user)s commented on changeset at %(when)s'), + _n.TYPE_MESSAGE: _('%(user)s sent message at %(when)s'), + _n.TYPE_MENTION: _('%(user)s mentioned you at %(when)s'), + _n.TYPE_REGISTRATION: _('%(user)s registered in Kallithea at %(when)s'), + _n.TYPE_PULL_REQUEST: _('%(user)s opened new pull request at %(when)s'), + _n.TYPE_PULL_REQUEST_COMMENT: _('%(user)s commented on pull request at %(when)s'), + }[notification.type_] % dict( + user=notification.created_by_user.username, + when=h.fmt_date(notification.created_on), + ) class EmailNotificationModel(BaseModel): @@ -293,13 +299,13 @@ self.TYPE_PULL_REQUEST_COMMENT: 'pull_request_comment', } self._subj_map = { - self.TYPE_CHANGESET_COMMENT: _('Comment on %(repo_name)s changeset %(short_id)s on %(branch)s by %(comment_username)s'), + self.TYPE_CHANGESET_COMMENT: _('[Comment] %(repo_name)s changeset %(short_id)s on %(branch)s'), self.TYPE_MESSAGE: 'Test Message', # self.TYPE_PASSWORD_RESET self.TYPE_REGISTRATION: _('New user %(new_username)s registered'), # self.TYPE_DEFAULT - self.TYPE_PULL_REQUEST: _('Review request on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(pr_username)s'), - self.TYPE_PULL_REQUEST_COMMENT: _('Comment on %(repo_name)s pull request #%(pr_id)s from %(ref)s by %(comment_username)s'), + self.TYPE_PULL_REQUEST: _('[Added] %(repo_name)s pull request %(pr_nice_id)s from %(ref)s'), + self.TYPE_PULL_REQUEST_COMMENT: _('[Comment] %(repo_name)s pull request %(pr_nice_id)s from %(ref)s'), } def get_email_description(self, type_, **kwargs): @@ -309,12 +315,15 @@ tmpl = self._subj_map[type_] try: subj = tmpl % kwargs - except KeyError, e: + except KeyError as e: log.error('error generating email subject for %r from %s: %s', type_, ','.join(self._subj_map.keys()), e) raise l = [safe_unicode(x) for x in [kwargs.get('status_change'), kwargs.get('closing_pr') and _('Closing')] if x] if l: - subj += ' (%s)' % (', '.join(l)) + if subj.startswith('['): + subj = '[' + ', '.join(l) + ': ' + subj[1:] + else: + subj = '[' + ', '.join(l) + '] ' + subj return subj def get_email_tmpl(self, type_, content_type, **kwargs): @@ -329,5 +338,5 @@ 'h': h, 'c': c} _kwargs.update(kwargs) - log.debug('rendering tmpl %s with kwargs %s' % (base, _kwargs)) + log.debug('rendering tmpl %s with kwargs %s', base, _kwargs) return email_template.render(**_kwargs) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/permission.py --- a/kallithea/model/permission.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/permission.py Sun Sep 06 23:36:05 2015 +0200 @@ -79,7 +79,7 @@ perms = UserToPerm.query().filter(UserToPerm.user == user).all() defined_perms_groups = map(_get_group, (x.permission.permission_name for x in perms)) - log.debug('GOT ALREADY DEFINED:%s' % perms) + log.debug('GOT ALREADY DEFINED:%s', perms) DEFAULT_PERMS = Permission.DEFAULT_USER_PERMISSIONS if force: @@ -92,8 +92,8 @@ for perm_name in DEFAULT_PERMS: gr = _get_group(perm_name) if gr not in defined_perms_groups: - log.debug('GR:%s not found, creating permission %s' - % (gr, perm_name)) + log.debug('GR:%s not found, creating permission %s', + gr, perm_name) new_perm = _make_perm(perm_name) self.sa.add(new_perm) @@ -108,7 +108,7 @@ # stage 2 reset defaults and set them from form data def _make_new(usr, perm_name): - log.debug('Creating new permission:%s' % (perm_name)) + log.debug('Creating new permission:%s', perm_name) new = UserToPerm() new.user = usr new.permission = Permission.get_by_key(perm_name) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/pull_request.py --- a/kallithea/model/pull_request.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/pull_request.py Sun Sep 06 23:36:05 2015 +0200 @@ -32,6 +32,7 @@ from kallithea.model.meta import Session from kallithea.lib import helpers as h +from kallithea.lib.exceptions import UserInvalidException from kallithea.model import BaseModel from kallithea.model.db import PullRequest, PullRequestReviewers, Notification,\ ChangesetStatus, User @@ -86,23 +87,24 @@ new.revisions = revisions new.title = title new.description = description - new.author = created_by_user + new.owner = created_by_user Session().add(new) Session().flush() #reset state to under-review from kallithea.model.comment import ChangesetCommentsModel comment = ChangesetCommentsModel().create( - text=u'Auto status change to %s' % (ChangesetStatus.get_status_lbl(ChangesetStatus.STATUS_UNDER_REVIEW)), + text=u'', repo=org_repo, - user=new.author, + user=new.owner, pull_request=new, - send_email=False + send_email=False, + status_change=ChangesetStatus.STATUS_UNDER_REVIEW, ) ChangesetStatusModel().set_status( org_repo, ChangesetStatus.STATUS_UNDER_REVIEW, - new.author, + new.owner, comment, pull_request=new ) @@ -117,6 +119,8 @@ #members for member in set(reviewers): _usr = self._get_user(member) + if _usr is None: + raise UserInvalidException(member) reviewer = PullRequestReviewers(_usr, pr) Session().add(reviewer) @@ -130,29 +134,29 @@ h.canonical_hostname())] subject = safe_unicode( h.link_to( - _('%(user)s wants you to review pull request #%(pr_id)s: %(pr_title)s') % \ - {'user': pr.author.username, + _('%(user)s wants you to review pull request %(pr_nice_id)s: %(pr_title)s') % \ + {'user': pr.owner.username, 'pr_title': pr.title, - 'pr_id': pr.pull_request_id}, + 'pr_nice_id': pr.nice_id()}, pr_url) ) body = pr.description _org_ref_type, org_ref_name, _org_rev = pr.org_ref.split(':') email_kwargs = { 'pr_title': pr.title, - 'pr_user_created': h.person(pr.author), + 'pr_user_created': h.person(pr.owner), 'pr_repo_url': h.canonical_url('summary_home', repo_name=pr.other_repo.repo_name), 'pr_url': pr_url, 'pr_revisions': revision_data, 'repo_name': pr.other_repo.repo_name, - 'pr_id': pr.pull_request_id, + 'pr_nice_id': pr.nice_id(), 'ref': org_ref_name, - 'pr_username': pr.author.username, + 'pr_username': pr.owner.username, 'threading': threading, 'is_mention': False, } if reviewers: - NotificationModel().create(created_by=pr.author, subject=subject, body=body, + NotificationModel().create(created_by=pr.owner, subject=subject, body=body, recipients=reviewers, type_=Notification.TYPE_PULL_REQUEST, email_kwargs=email_kwargs) @@ -163,8 +167,7 @@ if mention_recipients: email_kwargs['is_mention'] = True subject = _('[Mention]') + ' ' + subject - - NotificationModel().create(created_by=pr.author, subject=subject, body=body, + NotificationModel().create(created_by=pr.owner, subject=subject, body=body, recipients=mention_recipients, type_=Notification.TYPE_PULL_REQUEST, email_kwargs=email_kwargs) @@ -175,7 +178,7 @@ mention_recipients.difference_update(User.get_by_username(username, case_insensitive=True) for username in extract_mentioned_users(old_description)) - log.debug("Mentioning %s" % mention_recipients) + log.debug("Mentioning %s", mention_recipients) self.__add_reviewers(pr, [], mention_recipients) def update_reviewers(self, pull_request, reviewers_ids): @@ -190,10 +193,10 @@ to_add = reviewers_ids.difference(current_reviewers_ids) to_remove = current_reviewers_ids.difference(reviewers_ids) - log.debug("Adding %s reviewers" % to_add) + log.debug("Adding %s reviewers", to_add) self.__add_reviewers(pull_request, to_add) - log.debug("Removing %s reviewers" % to_remove) + log.debug("Removing %s reviewers", to_remove) for uid in to_remove: reviewer = PullRequestReviewers.query()\ .filter(PullRequestReviewers.user_id==uid, diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/repo.py --- a/kallithea/model/repo.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/repo.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,7 +26,6 @@ """ -from __future__ import with_statement import os import shutil import logging @@ -45,8 +44,7 @@ from kallithea.model import BaseModel from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \ UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, \ - Statistics, UserGroup, UserGroupMember, Ui, RepoGroup, \ - Setting, RepositoryField + Statistics, UserGroup, Ui, RepoGroup, RepositoryField from kallithea.lib import helpers as h from kallithea.lib.auth import HasRepoPermissionAny, HasUserGroupPermissionAny @@ -209,10 +207,7 @@ cs_cache.get('message')) def desc(desc): - if c.visual.stylify_metatags: - return h.urlify_text(h.desc_stylize(h.html_escape(h.truncate(desc, 60)))) - else: - return h.urlify_text(h.html_escape(h.truncate(desc, 60))) + return h.urlify_text(desc, truncate=60, stylize=c.visual.stylify_metatags) def state(repo_state): return _render("repo_state", repo_state) @@ -327,26 +322,19 @@ if 'repo_group' in kwargs: cur_repo.group = RepoGroup.get(kwargs['repo_group']) - log.debug('Updating repo %s with params:%s' % (cur_repo, kwargs)) - for strip, k in [(1, 'repo_enable_downloads'), - (1, 'repo_description'), - (1, 'repo_enable_locking'), - (1, 'repo_landing_rev'), - (1, 'repo_private'), - (1, 'repo_enable_statistics'), - (0, 'clone_uri'),]: + log.debug('Updating repo %s with params:%s', cur_repo, kwargs) + for k in ['repo_enable_downloads', + 'repo_description', + 'repo_enable_locking', + 'repo_landing_rev', + 'repo_private', + 'repo_enable_statistics', + ]: if k in kwargs: - val = kwargs[k] - if strip: - k = remove_prefix(k, 'repo_') - if k == 'clone_uri': - from kallithea.model.validators import Missing - _change = kwargs.get('clone_uri_change') - if _change == Missing: - # we don't change the value, so use original one - val = cur_repo.clone_uri - - setattr(cur_repo, k, val) + setattr(cur_repo, remove_prefix(k, 'repo_'), kwargs[k]) + clone_uri = kwargs.get('clone_uri') + if clone_uri is not None and clone_uri != cur_repo.clone_uri_hidden: + cur_repo.clone_uri = clone_uri new_name = cur_repo.get_new_name(kwargs['repo_name']) cur_repo.repo_name = new_name @@ -545,7 +533,7 @@ if not cur_user: cur_user = getattr(get_current_authuser(), 'username', None) repo = self._get_repo(repo) - if repo: + if repo is not None: if forks == 'detach': for r in repo.forks: r.fork = None @@ -594,7 +582,7 @@ obj.user = user obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, user, repo)) + log.debug('Granted perm %s to %s on %s', perm, user, repo) return obj def revoke_user_permission(self, repo, user): @@ -612,9 +600,9 @@ .filter(UserRepoToPerm.repository == repo) \ .filter(UserRepoToPerm.user == user) \ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm on %s on %s' % (repo, user)) + log.debug('Revoked perm on %s on %s', repo, user) def grant_user_group_permission(self, repo, group_name, perm): """ @@ -644,7 +632,7 @@ obj.users_group = group_name obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, group_name, repo)) + log.debug('Granted perm %s to %s on %s', perm, group_name, repo) return obj def revoke_user_group_permission(self, repo, group_name): @@ -662,9 +650,9 @@ .filter(UserGroupRepoToPerm.repository == repo) \ .filter(UserGroupRepoToPerm.users_group == group_name) \ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm to %s on %s' % (repo, group_name)) + log.debug('Revoked perm to %s on %s', repo, group_name) def delete_stats(self, repo_name): """ @@ -676,7 +664,7 @@ try: obj = self.sa.query(Statistics) \ .filter(Statistics.repository == repo).scalar() - if obj: + if obj is not None: self.sa.delete(obj) except Exception: log.error(traceback.format_exc()) @@ -720,9 +708,9 @@ if is_valid_repo_group(repo_path, self.repos_path): raise Exception('This path %s is a valid group' % repo_path) - log.info('creating repo %s in %s from url: `%s`' % ( + log.info('creating repo %s in %s from url: `%s`', repo_name, safe_unicode(repo_path), - obfuscate_url_pw(clone_uri))) + obfuscate_url_pw(clone_uri)) backend = get_backend(repo_type) @@ -737,12 +725,12 @@ elif repo_type == 'git': repo = backend(repo_path, create=True, src_url=clone_uri, bare=True) # add kallithea hook into this repo - ScmModel().install_git_hook(repo=repo) + ScmModel().install_git_hooks(repo=repo) else: raise Exception('Not supported repo_type %s expected hg/git' % repo_type) - log.debug('Created repo %s with %s backend' - % (safe_unicode(repo_name), safe_unicode(repo_type))) + log.debug('Created repo %s with %s backend', + safe_unicode(repo_name), safe_unicode(repo_type)) return repo def _rename_filesystem_repo(self, old, new): @@ -752,7 +740,7 @@ :param old: old name :param new: new name """ - log.info('renaming repo from %s to %s' % (old, new)) + log.info('renaming repo from %s to %s', old, new) old_path = os.path.join(self.repos_path, old) new_path = os.path.join(self.repos_path, new) @@ -771,7 +759,7 @@ :param repo: repo object """ rm_path = os.path.join(self.repos_path, repo.repo_name) - log.info("Removing %s" % (rm_path)) + log.info("Removing %s", rm_path) _now = datetime.now() _ms = str(_now.microsecond).rjust(6, '0') diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/repo_group.py --- a/kallithea/model/repo_group.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/repo_group.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,7 +12,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.user_group +kallithea.model.repo_group ~~~~~~~~~~~~~~~~~~~~~~~~~~ repo group model for Kallithea @@ -87,13 +87,13 @@ """ create_path = os.path.join(self.repos_path, group_name) - log.debug('creating new group in %s' % create_path) + log.debug('creating new group in %s', create_path) if os.path.isdir(create_path): raise Exception('That directory already exists !') os.makedirs(create_path) - log.debug('Created group in %s' % create_path) + log.debug('Created group in %s', create_path) def _rename_group(self, old, new): """ @@ -106,12 +106,12 @@ log.debug('skipping group rename') return - log.debug('renaming repository group from %s to %s' % (old, new)) + log.debug('renaming repository group from %s to %s', old, new) old_path = os.path.join(self.repos_path, old) new_path = os.path.join(self.repos_path, new) - log.debug('renaming repos paths from %s to %s' % (old_path, new_path)) + log.debug('renaming repos paths from %s to %s', old_path, new_path) if os.path.isdir(new_path): raise Exception('Was trying to rename to already ' @@ -129,7 +129,7 @@ paths = os.sep.join(paths) rm_path = os.path.join(self.repos_path, paths) - log.info("Removing group %s" % (rm_path)) + log.info("Removing group %s", rm_path) # delete only if that path really exists if os.path.isdir(rm_path): if force_delete: @@ -235,8 +235,8 @@ # start updates updates = [] - log.debug('Now updating permissions for %s in recursive mode:%s' - % (repo_group, recursive)) + log.debug('Now updating permissions for %s in recursive mode:%s', + repo_group, recursive) for obj in repo_group.recursive_groups_and_repos(): # iterated obj is an instance of a repos group or repository in @@ -336,7 +336,7 @@ self.sa.delete(repo_group) self._delete_group(repo_group, force_delete) except Exception: - log.error('Error removing repo_group %s' % repo_group) + log.error('Error removing repo_group %s', repo_group) raise def add_permission(self, repo_group, obj, obj_type, perm, recursive): @@ -466,7 +466,7 @@ obj.user = user obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, user, repo_group)) + log.debug('Granted perm %s to %s on %s', perm, user, repo_group) return obj def revoke_user_permission(self, repo_group, user): @@ -485,9 +485,9 @@ .filter(UserRepoGroupToPerm.user == user)\ .filter(UserRepoGroupToPerm.group == repo_group)\ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm on %s on %s' % (repo_group, user)) + log.debug('Revoked perm on %s on %s', repo_group, user) def grant_user_group_permission(self, repo_group, group_name, perm): """ @@ -518,7 +518,7 @@ obj.users_group = group_name obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, group_name, repo_group)) + log.debug('Granted perm %s to %s on %s', perm, group_name, repo_group) return obj def revoke_user_group_permission(self, repo_group, group_name): @@ -537,6 +537,6 @@ .filter(UserGroupRepoGroupToPerm.group == repo_group)\ .filter(UserGroupRepoGroupToPerm.users_group == group_name)\ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm to %s on %s' % (repo_group, group_name)) + log.debug('Revoked perm to %s on %s', repo_group, group_name) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/repo_permission.py --- a/kallithea/model/repo_permission.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/repo_permission.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.users_group -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.model.repo_permission +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ repository permission model for Kallithea diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/scm.py --- a/kallithea/model/scm.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/scm.py Sun Sep 06 23:36:05 2015 +0200 @@ -25,7 +25,6 @@ :license: GPLv3, see LICENSE.md for more details. """ -from __future__ import with_statement import os import re import time @@ -50,7 +49,7 @@ from kallithea.lib.utils2 import safe_str, safe_unicode, get_server_url,\ _set_extras from kallithea.lib.auth import HasRepoPermissionAny, HasRepoGroupPermissionAny,\ - HasUserGroupPermissionAny + HasUserGroupPermissionAny, HasPermissionAny, HasPermissionAll from kallithea.lib.utils import get_filesystem_repos, make_ui, \ action_logger from kallithea.model import BaseModel @@ -247,7 +246,7 @@ return cls.get(instance) elif isinstance(instance, basestring): return cls.get_by_repo_name(instance) - elif instance: + elif instance is not None: raise Exception('given object must be int, basestr or Instance' ' of %s got %s' % (type(cls), type(instance))) @@ -272,7 +271,7 @@ if repos_path is None: repos_path = self.repos_path - log.info('scanning for repositories in %s' % repos_path) + log.info('scanning for repositories in %s', repos_path) baseui = make_ui('db') repos = {} @@ -297,7 +296,7 @@ repos[name] = klass(path[1]) except OSError: continue - log.debug('found %s paths with repositories' % (len(repos))) + log.debug('found %s paths with repositories', len(repos)) return repos def get_repos(self, all_repos=None, sort_key=None, simple=False): @@ -340,7 +339,7 @@ """ CacheInvalidation.set_invalidate(repo_name, delete=delete) repo = Repository.get_by_repo_name(repo_name) - if repo: + if repo is not None: repo.update_changeset_cache() def toggle_following_repo(self, follow_repo_id, user_id): @@ -505,6 +504,9 @@ % (scm_type,)) def pull_changes(self, repo, username): + """ + Pull from "clone URL". + """ dbrepo = self.__get_repo(repo) clone_uri = dbrepo.clone_uri if not clone_uri: @@ -536,10 +538,9 @@ def commit_change(self, repo, repo_name, cs, user, author, message, content, f_path): """ - Commits changes + Commit a change to a single file - :param repo: SCM instance - + :param repo: a db_repo.scm_instance """ user = self._get_user(user) IMC = self._get_IMC_module(repo.alias) @@ -557,7 +558,7 @@ try: tip = imc.commit(message=message, author=author, parents=[cs], branch=cs.branch) - except Exception, e: + except Exception as e: log.error(traceback.format_exc()) raise IMCCommitError(str(e)) finally: @@ -677,6 +678,9 @@ def update_nodes(self, user, repo, message, nodes, parent_cs=None, author=None, trigger_push_hook=True): + """ + Commits specified nodes to repo. Again. + """ user = self._get_user(user) scm_instance = repo.scm_instance_no_cache() @@ -807,7 +811,7 @@ repo = self.__get_repo(repo) hist_l.append(['rev:tip', _('latest tip')]) choices.append('rev:tip') - if not repo: + if repo is None: return choices, hist_l repo = repo.scm_instance @@ -830,7 +834,7 @@ return choices, hist_l - def install_git_hook(self, repo, force_create=False): + def install_git_hooks(self, repo, force_create=False): """ Creates a kallithea hook inside a git repository @@ -854,7 +858,7 @@ for h_type, tmpl in [('pre', tmpl_pre), ('post', tmpl_post)]: _hook_file = jn(loc, '%s-receive' % h_type) has_hook = False - log.debug('Installing git hook in repo %s' % repo) + log.debug('Installing git hook in repo %s', repo) if os.path.exists(_hook_file): # let's take a look at this hook, maybe it's kallithea ? log.debug('hook exists, checking if it is from kallithea') @@ -865,7 +869,7 @@ if matches: try: ver = matches.groups()[0] - log.debug('got %s it is kallithea' % (ver)) + log.debug('got %s it is kallithea', ver) has_hook = True except Exception: log.error(traceback.format_exc()) @@ -874,13 +878,31 @@ has_hook = True if has_hook or force_create: - log.debug('writing %s hook file !' % (h_type,)) + log.debug('writing %s hook file !', h_type) try: with open(_hook_file, 'wb') as f: tmpl = tmpl.replace('_TMPL_', kallithea.__version__) f.write(tmpl) os.chmod(_hook_file, 0755) - except IOError, e: - log.error('error writing %s: %s' % (_hook_file, e)) + except IOError as e: + log.error('error writing %s: %s', _hook_file, e) else: log.debug('skipping writing hook file') + +def AvailableRepoGroupChoices(top_perms, repo_group_perms, extras=()): + """Return group_id,string tuples with choices for all the repo groups where + the user has the necessary permissions. + + Top level is -1. + """ + groups = RepoGroup.query().all() + if HasPermissionAll('hg.admin')('available repo groups'): + groups.append(None) + else: + groups = list(RepoGroupList(groups, perm_set=repo_group_perms)) + if top_perms and HasPermissionAny(*top_perms)('available repo groups'): + groups.append(None) + for extra in extras: + if not any(rg == extra for rg in groups): + groups.append(extra) + return RepoGroup.groups_choices(groups=groups) diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/user.py --- a/kallithea/model/user.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/user.py Sun Sep 06 23:36:05 2015 +0200 @@ -26,8 +26,13 @@ """ +import hashlib +import hmac import logging +import time import traceback + +from pylons import config from pylons.i18n.translation import _ from sqlalchemy.exc import DatabaseError @@ -47,6 +52,8 @@ class UserModel(BaseModel): + password_reset_token_lifetime = 86400 # 24 hours + cls = User def get(self, user_id, cache=False): @@ -59,34 +66,21 @@ def get_user(self, user): return self._get_user(user) - def get_by_username(self, username, cache=False, case_insensitive=False): - - if case_insensitive: - user = self.sa.query(User).filter(User.username.ilike(username)) - else: - user = self.sa.query(User)\ - .filter(User.username == username) - if cache: - user = user.options(FromCache("sql_cache_short", - "get_user_%s" % username)) - return user.scalar() - - def get_by_email(self, email, cache=False, case_insensitive=False): - return User.get_by_email(email, case_insensitive, cache) - - def get_by_api_key(self, api_key, cache=False): - return User.get_by_api_key(api_key, cache) - def create(self, form_data, cur_user=None): if not cur_user: cur_user = getattr(get_current_authuser(), 'username', None) - from kallithea.lib.hooks import log_create_user, check_allowed_create_user + from kallithea.lib.hooks import log_create_user, \ + check_allowed_create_user _fd = form_data user_data = { - 'username': _fd['username'], 'password': _fd['password'], - 'email': _fd['email'], 'firstname': _fd['firstname'], 'lastname': _fd['lastname'], - 'active': _fd['active'], 'admin': False + 'username': _fd['username'], + 'password': _fd['password'], + 'email': _fd['email'], + 'firstname': _fd['firstname'], + 'lastname': _fd['lastname'], + 'active': _fd['active'], + 'admin': False } # raises UserCreationError if it's not allowed check_allowed_create_user(user_data, cur_user) @@ -128,7 +122,8 @@ cur_user = getattr(get_current_authuser(), 'username', None) from kallithea.lib.auth import get_crypt_password, check_password - from kallithea.lib.hooks import log_create_user, check_allowed_create_user + from kallithea.lib.hooks import log_create_user, \ + check_allowed_create_user user_data = { 'username': username, 'password': password, 'email': email, 'firstname': firstname, 'lastname': lastname, @@ -137,14 +132,14 @@ # raises UserCreationError if it's not allowed check_allowed_create_user(user_data, cur_user) - log.debug('Checking for %s account in Kallithea database' % username) + log.debug('Checking for %s account in Kallithea database', username) user = User.get_by_username(username, case_insensitive=True) if user is None: - log.debug('creating new user %s' % username) + log.debug('creating new user %s', username) new_user = User() edit = False else: - log.debug('updating user %s' % username) + log.debug('updating user %s', username) new_user = user edit = True @@ -153,8 +148,10 @@ new_user.admin = admin new_user.email = email new_user.active = active - new_user.extern_name = safe_unicode(extern_name) if extern_name else None - new_user.extern_type = safe_unicode(extern_type) if extern_type else None + new_user.extern_name = safe_unicode(extern_name) \ + if extern_name else None + new_user.extern_type = safe_unicode(extern_type) \ + if extern_type else None new_user.name = firstname new_user.lastname = lastname @@ -162,12 +159,13 @@ new_user.api_key = generate_api_key() # set password only if creating an user or password is changed - password_change = new_user.password and not check_password(password, - new_user.password) + password_change = new_user.password and \ + not check_password(password, new_user.password) if not edit or password_change: reason = 'new password' if edit else 'new user' - log.debug('Updating password reason=>%s' % (reason,)) - new_user.password = get_crypt_password(password) if password else None + log.debug('Updating password reason=>%s', reason) + new_user.password = get_crypt_password(password) \ + if password else None self.sa.add(new_user) @@ -192,14 +190,17 @@ # notification to admins subject = _('New user registration') - body = ('New user registration\n' - '---------------------\n' - '- Username: %s\n' - '- Full Name: %s\n' - '- Email: %s\n') - body = body % (new_user.username, new_user.full_name, new_user.email) + body = ( + 'New user registration\n' + '---------------------\n' + '- Username: {user.username}\n' + '- Full Name: {user.full_name}\n' + '- Email: {user.email}\n' + ).format(user=new_user) edit_url = h.canonical_url('edit_user', id=new_user.user_id) - email_kwargs = {'registered_user_url': edit_url, 'new_username': new_user.username} + email_kwargs = { + 'registered_user_url': edit_url, + 'new_username': new_user.username} NotificationModel().create(created_by=new_user, subject=subject, body=body, recipients=None, type_=Notification.TYPE_REGISTRATION, @@ -211,7 +212,7 @@ user = self.get(user_id, cache=False) if user.username == User.DEFAULT_USER: raise DefaultUserException( - _("You can't Edit this user since it's " + _("You can't edit this user since it's " "crucial for entire application")) for k, v in form_data.items(): @@ -233,7 +234,7 @@ user = self._get_user(user) if user.username == User.DEFAULT_USER: raise DefaultUserException( - _("You can't Edit this user since it's" + _("You can't edit this user since it's" " crucial for entire application") ) @@ -246,122 +247,170 @@ return user def delete(self, user, cur_user=None): - if not cur_user: + if cur_user is None: cur_user = getattr(get_current_authuser(), 'username', None) user = self._get_user(user) if user.username == User.DEFAULT_USER: raise DefaultUserException( - _(u"You can't remove this user since it's" - " crucial for entire application") - ) + _("You can't remove this user since it is" + " crucial for the entire application")) if user.repositories: repos = [x.repo_name for x in user.repositories] raise UserOwnsReposException( - _(u'User "%s" still owns %s repositories and cannot be ' + _('User "%s" still owns %s repositories and cannot be ' 'removed. Switch owners or remove those repositories: %s') - % (user.username, len(repos), ', '.join(repos)) - ) + % (user.username, len(repos), ', '.join(repos))) if user.repo_groups: repogroups = [x.group_name for x in user.repo_groups] - raise UserOwnsReposException( - _(u'User "%s" still owns %s repository groups and cannot be ' - 'removed. Switch owners or remove those repository groups: %s') - % (user.username, len(repogroups), ', '.join(repogroups)) - ) + raise UserOwnsReposException(_( + 'User "%s" still owns %s repository groups and cannot be ' + 'removed. Switch owners or remove those repository groups: %s') + % (user.username, len(repogroups), ', '.join(repogroups))) if user.user_groups: usergroups = [x.users_group_name for x in user.user_groups] raise UserOwnsReposException( - _(u'User "%s" still owns %s user groups and cannot be ' + _('User "%s" still owns %s user groups and cannot be ' 'removed. Switch owners or remove those user groups: %s') - % (user.username, len(usergroups), ', '.join(usergroups)) - ) + % (user.username, len(usergroups), ', '.join(usergroups))) self.sa.delete(user) from kallithea.lib.hooks import log_delete_user log_delete_user(user.get_dict(), cur_user) - def reset_password_link(self, data): + def get_reset_password_token(self, user, timestamp, session_id): + """ + The token is a 40-digit hexstring, calculated as a HMAC-SHA1. + + In a traditional HMAC scenario, an attacker is unable to know or + influence the secret key, but can know or influence the message + and token. This scenario is slightly different (in particular + since the message sender is also the message recipient), but + sufficiently similar to use an HMAC. Benefits compared to a plain + SHA1 hash includes resistance against a length extension attack. + + The HMAC key consists of the following values (known only to the + server and authorized users): + + * per-application secret (the `app_instance_uuid` setting), without + which an attacker cannot counterfeit tokens + * hashed user password, invalidating the token upon password change + + The HMAC message consists of the following values (potentially known + to an attacker): + + * session ID (the anti-CSRF token), requiring an attacker to have + access to the browser session in which the token was created + * numeric user ID, limiting the token to a specific user (yet allowing + users to be renamed) + * user email address + * time of token issue (a Unix timestamp, to enable token expiration) + + The key and message values are separated by NUL characters, which are + guaranteed not to occur in any of the values. + """ + app_secret = config.get('app_instance_uuid') + return hmac.HMAC( + key=u'\0'.join([app_secret, user.password]).encode('utf-8'), + msg=u'\0'.join([session_id, str(user.user_id), user.email, str(timestamp)]).encode('utf-8'), + digestmod=hashlib.sha1, + ).hexdigest() + + def send_reset_password_email(self, data): + """ + Sends email with a password reset token and link to the password + reset confirmation page with all information (including the token) + pre-filled. Also returns URL of that page, only without the token, + allowing users to copy-paste or manually enter the token from the + email. + """ from kallithea.lib.celerylib import tasks, run_task from kallithea.model.notification import EmailNotificationModel import kallithea.lib.helpers as h user_email = data['email'] user = User.get_by_email(user_email) - if user: - log.debug('password reset user found %s' % user) - link = h.canonical_url('reset_password_confirmation', key=user.api_key) + timestamp = int(time.time()) + if user is not None: + log.debug('password reset user %s found', user) + token = self.get_reset_password_token(user, + timestamp, + h.authentication_token()) + # URL must be fully qualified; but since the token is locked to + # the current browser session, we must provide a URL with the + # current scheme and hostname, rather than the canonical_url. + link = h.url('reset_password_confirmation', qualified=True, + email=user_email, + timestamp=timestamp, + token=token) + reg_type = EmailNotificationModel.TYPE_PASSWORD_RESET - body = EmailNotificationModel().get_email_tmpl(reg_type, - 'txt', - user=user.short_contact, - reset_url=link) - html_body = EmailNotificationModel().get_email_tmpl(reg_type, - 'html', - user=user.short_contact, - reset_url=link) + body = EmailNotificationModel().get_email_tmpl( + reg_type, 'txt', + user=user.short_contact, + reset_token=token, + reset_url=link) + html_body = EmailNotificationModel().get_email_tmpl( + reg_type, 'html', + user=user.short_contact, + reset_token=token, + reset_url=link) log.debug('sending email') run_task(tasks.send_email, [user_email], _("Password reset link"), body, html_body) - log.info('send new password mail to %s' % user_email) + log.info('send new password mail to %s', user_email) else: - log.debug("password reset email %s not found" % user_email) + log.debug("password reset email %s not found", user_email) - return True + return h.url('reset_password_confirmation', + email=user_email, + timestamp=timestamp) - def reset_password(self, data): + def verify_reset_password_token(self, email, timestamp, token): from kallithea.lib.celerylib import tasks, run_task from kallithea.lib import auth - user_email = data['email'] + import kallithea.lib.helpers as h + user = User.get_by_email(email) + if user is None: + log.debug("user with email %s not found", email) + return False + + token_age = int(time.time()) - int(timestamp) + + if token_age < 0: + log.debug('timestamp is from the future') + return False + + if token_age > UserModel.password_reset_token_lifetime: + log.debug('password reset token expired') + return False + + expected_token = self.get_reset_password_token(user, + timestamp, + h.authentication_token()) + log.debug('computed password reset token: %s', expected_token) + log.debug('received password reset token: %s', token) + return expected_token == token + + def reset_password(self, user_email, new_passwd): + from kallithea.lib.celerylib import tasks, run_task + from kallithea.lib import auth user = User.get_by_email(user_email) - new_passwd = auth.PasswordGenerator().gen_password(8, - auth.PasswordGenerator.ALPHABETS_BIG_SMALL) - if user: + if user is not None: user.password = auth.get_crypt_password(new_passwd) Session().add(user) Session().commit() - log.info('change password for %s' % user_email) + log.info('change password for %s', user_email) if new_passwd is None: - raise Exception('unable to generate new password') + raise Exception('unable to set new password') run_task(tasks.send_email, [user_email], - _('Your new password'), - _('Your new Kallithea password:%s') % (new_passwd,)) - log.info('send new password mail to %s' % user_email) + _('Password reset notification'), + _('The password to your account %s has been changed using password reset form.') % (user.username,)) + log.info('send password reset mail to %s', user_email) return True - def fill_data(self, auth_user, user_id=None, api_key=None, username=None): - """ - Fetches auth_user by user_id,or api_key if present. - Fills auth_user attributes with those taken from database. - Additionally sets is_authenticated if lookup fails - present in database - - :param auth_user: instance of user to set attributes - :param user_id: user id to fetch by - :param api_key: api key to fetch by - :param username: username to fetch by - """ - if user_id is None and api_key is None and username is None: - raise Exception('You need to pass user_id, api_key or username') - - dbuser = None - if user_id is not None: - dbuser = self.get(user_id) - elif api_key is not None: - dbuser = self.get_by_api_key(api_key) - elif username is not None: - dbuser = self.get_by_username(username) - - if dbuser is not None and dbuser.active: - log.debug('filling %s data' % dbuser) - for k, v in dbuser.get_dict().iteritems(): - if k not in ['api_keys', 'permissions']: - setattr(auth_user, k, v) - return True - return False - def has_perm(self, user, perm): perm = self._get_perm(perm) user = self._get_user(user) @@ -401,12 +450,10 @@ user = self._get_user(user) perm = self._get_perm(perm) - obj = UserToPerm.query()\ - .filter(UserToPerm.user == user)\ - .filter(UserToPerm.permission == perm)\ - .scalar() - if obj: - self.sa.delete(obj) + UserToPerm.query().filter( + UserToPerm.user == user, + UserToPerm.permission == perm, + ).delete() def add_extra_email(self, user, email): """ @@ -435,12 +482,12 @@ """ user = self._get_user(user) obj = UserEmailMap.query().get(email_id) - if obj: + if obj is not None: self.sa.delete(obj) def add_extra_ip(self, user, ip): """ - Adds ip address to UserIpMap + Adds IP address to UserIpMap :param user: :param ip: @@ -458,7 +505,7 @@ def delete_extra_ip(self, user, ip_id): """ - Removes ip address from UserIpMap + Removes IP address from UserIpMap :param user: :param ip_id: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/user_group.py --- a/kallithea/model/user_group.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/user_group.py Sun Sep 06 23:36:05 2015 +0200 @@ -12,8 +12,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . """ -kallithea.model.users_group -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +kallithea.model.user_group +~~~~~~~~~~~~~~~~~~~~~~~~~~ user group model for Kallithea @@ -253,7 +253,7 @@ obj = UserGroupToPerm.query()\ .filter(UserGroupToPerm.users_group == user_group)\ .filter(UserGroupToPerm.permission == perm).scalar() - if obj: + if obj is not None: self.sa.delete(obj) def grant_user_permission(self, user_group, user, perm): @@ -283,7 +283,7 @@ obj.user = user obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, user, user_group)) + log.debug('Granted perm %s to %s on %s', perm, user, user_group) return obj def revoke_user_permission(self, user_group, user): @@ -302,9 +302,9 @@ .filter(UserUserGroupToPerm.user == user)\ .filter(UserUserGroupToPerm.user_group == user_group)\ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm on %s on %s' % (user_group, user)) + log.debug('Revoked perm on %s on %s', user_group, user) def grant_user_group_permission(self, target_user_group, user_group, perm): """ @@ -334,7 +334,7 @@ obj.target_user_group = target_user_group obj.permission = permission self.sa.add(obj) - log.debug('Granted perm %s to %s on %s' % (perm, target_user_group, user_group)) + log.debug('Granted perm %s to %s on %s', perm, target_user_group, user_group) return obj def revoke_user_group_permission(self, target_user_group, user_group): @@ -351,13 +351,13 @@ .filter(UserGroupUserGroupToPerm.target_user_group == target_user_group)\ .filter(UserGroupUserGroupToPerm.user_group == user_group)\ .scalar() - if obj: + if obj is not None: self.sa.delete(obj) - log.debug('Revoked perm on %s on %s' % (target_user_group, user_group)) + log.debug('Revoked perm on %s on %s', target_user_group, user_group) def enforce_groups(self, user, groups, extern_type=None): user = self._get_user(user) - log.debug('Enforcing groups %s on user %s' % (user, groups)) + log.debug('Enforcing groups %s on user %s', user, groups) current_groups = user.group_member # find the external created groups externals = [x.users_group for x in current_groups @@ -367,7 +367,7 @@ # externals that are not in groups for gr in externals: if gr.users_group_name not in groups: - log.debug('Removing user %s from user group %s' % (user, gr)) + log.debug('Removing user %s from user group %s', user, gr) self.remove_user_from_group(gr, user) # now we calculate in which groups user should be == groups params @@ -383,7 +383,7 @@ # we can only add users to special groups created via plugins managed = 'extern_type' in existing_group.group_data if managed: - log.debug('Adding user %s to user group %s' % (user, gr)) + log.debug('Adding user %s to user group %s', user, gr) UserGroupModel().add_user_to_group(existing_group, user) else: log.debug('Skipping addition to group %s since it is ' diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/model/validators.py --- a/kallithea/model/validators.py Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/model/validators.py Sun Sep 06 23:36:05 2015 +0200 @@ -31,9 +31,8 @@ from kallithea.lib.compat import OrderedSet from kallithea.lib import ipaddr from kallithea.lib.utils import repo_name_slug -from kallithea.lib.utils2 import safe_int, str2bool, aslist -from kallithea.model.db import RepoGroup, Repository, UserGroup, User,\ - ChangesetStatus +from kallithea.lib.utils2 import str2bool, aslist +from kallithea.model.db import RepoGroup, Repository, UserGroup, User from kallithea.lib.exceptions import LdapImportError from kallithea.config.routing import ADMIN_PREFIX from kallithea.lib.auth import HasRepoGroupPermissionAny, HasPermissionAny @@ -44,11 +43,6 @@ log = logging.getLogger(__name__) -class _Missing(object): - pass - -Missing = _Missing() - class StateObj(object): """ @@ -98,13 +92,13 @@ def ValidUsername(edit=False, old_data={}): class _validator(formencode.validators.FancyValidator): messages = { - 'username_exists': _(u'Username "%(username)s" already exists'), + 'username_exists': _('Username "%(username)s" already exists'), 'system_invalid_username': - _(u'Username "%(username)s" is forbidden'), + _('Username "%(username)s" cannot be used'), 'invalid_username': - _(u'Username may only contain alphanumeric characters ' - 'underscores, periods or dashes and must begin with ' - 'alphanumeric character or underscore') + _('Username may only contain alphanumeric characters ' + 'underscores, periods or dashes and must begin with an ' + 'alphanumeric character or underscore') } def validate_python(self, value, state): @@ -136,7 +130,7 @@ def ValidRepoUser(): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_username': _(u'Username %(username)s is not valid') + 'invalid_username': _('Username %(username)s is not valid') } def validate_python(self, value, state): @@ -155,10 +149,10 @@ def ValidUserGroup(edit=False, old_data={}): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_group': _(u'Invalid user group name'), - 'group_exist': _(u'User group "%(usergroup)s" already exists'), + 'invalid_group': _('Invalid user group name'), + 'group_exist': _('User group "%(usergroup)s" already exists'), 'invalid_usergroup_name': - _(u'user group name may only contain alphanumeric ' + _('user group name may only contain alphanumeric ' 'characters underscores, periods or dashes and must begin ' 'with alphanumeric character') } @@ -196,10 +190,10 @@ def ValidRepoGroup(edit=False, old_data={}): class _validator(formencode.validators.FancyValidator): messages = { - 'group_parent_id': _(u'Cannot assign this group as parent'), - 'group_exists': _(u'Group "%(group_name)s" already exists'), + 'group_parent_id': _('Cannot assign this group as parent'), + 'group_exists': _('Group "%(group_name)s" already exists'), 'repo_exists': - _(u'Repository with name "%(group_name)s" already exists') + _('Repository with name "%(group_name)s" already exists') } def validate_python(self, value, state): @@ -212,7 +206,7 @@ # check for parent of self parent_of_self = lambda: ( - old_data['group_id'] == int(group_parent_id) + old_data['group_id'] == group_parent_id if group_parent_id else False ) if edit and parent_of_self(): @@ -233,7 +227,7 @@ .filter(RepoGroup.group_parent_id == group_parent_id)\ .scalar() - if gr: + if gr is not None: msg = M(self, 'group_exists', state, group_name=slug) raise formencode.Invalid(msg, value, state, error_dict=dict(group_name=msg) @@ -244,7 +238,7 @@ .filter(Repository.repo_name == slug)\ .scalar() - if repo: + if repo is not None: msg = M(self, 'repo_exists', state, group_name=slug) raise formencode.Invalid(msg, value, state, error_dict=dict(group_name=msg) @@ -257,7 +251,7 @@ class _validator(formencode.validators.FancyValidator): messages = { 'invalid_password': - _(u'Invalid characters (non-ascii) in password') + _('Invalid characters (non-ascii) in password') } def validate_python(self, value, state): @@ -272,12 +266,12 @@ def ValidOldPassword(username): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_password': _(u'Invalid old password') + 'invalid_password': _('Invalid old password') } def validate_python(self, value, state): from kallithea.lib import auth_modules - if not auth_modules.authenticate(username, value, ''): + if auth_modules.authenticate(username, value, '') is None: msg = M(self, 'invalid_password', state) raise formencode.Invalid(msg, value, state, error_dict=dict(current_password=msg) @@ -285,19 +279,17 @@ return _validator -def ValidPasswordsMatch(passwd='new_password', passwd_confirmation='password_confirmation'): +def ValidPasswordsMatch(password_field, password_confirmation_field): class _validator(formencode.validators.FancyValidator): messages = { - 'password_mismatch': _(u'Passwords do not match'), + 'password_mismatch': _('Passwords do not match'), } def validate_python(self, value, state): - - pass_val = value.get('password') or value.get(passwd) - if pass_val != value[passwd_confirmation]: + if value.get(password_field) != value[password_confirmation_field]: msg = M(self, 'password_mismatch', state) raise formencode.Invalid(msg, value, state, - error_dict={passwd:msg, passwd_confirmation: msg} + error_dict={password_field:msg, password_confirmation_field: msg} ) return _validator @@ -305,9 +297,7 @@ def ValidAuth(): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_password': _(u'invalid password'), - 'invalid_username': _(u'invalid user name'), - 'disabled_account': _(u'Your account is disabled') + 'invalid_auth': _(u'Invalid username or password'), } def validate_python(self, value, state): @@ -316,20 +306,21 @@ password = value['password'] username = value['username'] - if not auth_modules.authenticate(username, password): + # authenticate returns unused dict but has called + # plugin._authenticate which has create_or_update'ed the username user in db + if auth_modules.authenticate(username, password) is None: user = User.get_by_username(username) if user and not user.active: - log.warning('user %s is disabled' % username) - msg = M(self, 'disabled_account', state) + log.warning('user %s is disabled', username) + msg = M(self, 'invalid_auth', state) raise formencode.Invalid(msg, value, state, - error_dict=dict(username=msg) + error_dict=dict(username=' ', password=msg) ) else: - log.warning('user %s failed to authenticate' % username) - msg = M(self, 'invalid_username', state) - msg2 = M(self, 'invalid_password', state) + log.warning('user %s failed to authenticate', username) + msg = M(self, 'invalid_auth', state) raise formencode.Invalid(msg, value, state, - error_dict=dict(username=msg, password=msg2) + error_dict=dict(username=' ', password=msg) ) return _validator @@ -337,7 +328,7 @@ def ValidAuthToken(): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_token': _(u'Token mismatch') + 'invalid_token': _('Token mismatch') } def validate_python(self, value, state): @@ -351,12 +342,12 @@ class _validator(formencode.validators.FancyValidator): messages = { 'invalid_repo_name': - _(u'Repository name %(repo)s is disallowed'), + _('Repository name %(repo)s is not allowed'), 'repository_exists': - _(u'Repository named %(repo)s already exists'), - 'repository_in_group_exists': _(u'Repository "%(repo)s" already ' + _('Repository named %(repo)s already exists'), + 'repository_in_group_exists': _('Repository "%(repo)s" already ' 'exists in group "%(group)s"'), - 'same_group_exists': _(u'Repository group with name "%(repo)s" ' + 'same_group_exists': _('Repository group with name "%(repo)s" ' 'already exists') } @@ -458,7 +449,7 @@ elif repo_type == 'git': from kallithea.lib.vcs.backends.git.repository import GitRepository - if url.startswith('http'): + if url.startswith('http') or url.startswith('git'): # initially check if it's at least the proper URL # or does it pass basic auth GitRepository._check_url(url) @@ -471,18 +462,16 @@ class _validator(formencode.validators.FancyValidator): messages = { - 'clone_uri': _(u'invalid clone URL'), - 'invalid_clone_uri': _(u'Invalid clone URL, provide a ' - 'valid clone http(s)/svn+http(s)/ssh URL') + 'clone_uri': _('Invalid repository URL'), + 'invalid_clone_uri': _('Invalid repository URL. It must be a ' + 'valid http, https, ssh, svn+http or svn+https URL'), } def validate_python(self, value, state): repo_type = value.get('repo_type') url = value.get('clone_uri') - if not url: - pass - else: + if url and url != value.get('clone_uri_hidden'): try: url_handler(repo_type, url, make_ui('db', clear_session=False)) except Exception: @@ -497,7 +486,7 @@ def ValidForkType(old_data={}): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_fork_type': _(u'Fork has to be the same type as parent') + 'invalid_fork_type': _('Fork has to be the same type as parent') } def validate_python(self, value, state): @@ -512,21 +501,22 @@ def CanWriteGroup(old_data=None): class _validator(formencode.validators.FancyValidator): messages = { - 'permission_denied': _(u"You don't have permissions " + 'permission_denied': _("You don't have permissions " "to create repository in this group"), - 'permission_denied_root': _(u"no permission to create repository " + 'permission_denied_root': _("no permission to create repository " "in root location") } def _to_python(self, value, state): #root location - if value in [-1, "-1"]: + if value == -1: return None return value def validate_python(self, value, state): gr = RepoGroup.get(value) - gr_name = gr.group_name if gr else None # None means ROOT location + gr_name = gr.group_name if gr is not None else None # None means ROOT location + # create repositories with write permission on group is set to true create_on_write = HasPermissionAny('hg.create.write_on_repogroup.true')() group_admin = HasRepoGroupPermissionAny('group.admin')(gr_name, @@ -537,7 +527,7 @@ can_create_repos = HasPermissionAny('hg.admin', 'hg.create.repository') gid = (old_data['repo_group'].get('group_id') if (old_data and 'repo_group' in old_data) else None) - value_changed = gid != safe_int(value) + value_changed = gid != value new = not old_data # do check if we changed the value, there's a case that someone got # revoked write permissions to a repository, he still created, we @@ -563,19 +553,19 @@ def CanCreateGroup(can_create_in_root=False): class _validator(formencode.validators.FancyValidator): messages = { - 'permission_denied': _(u"You don't have permissions " + 'permission_denied': _("You don't have permissions " "to create a group in this location") } def to_python(self, value, state): #root location - if value in [-1, "-1"]: + if value == -1: return None return value def validate_python(self, value, state): gr = RepoGroup.get(value) - gr_name = gr.group_name if gr else None # None means ROOT location + gr_name = gr.group_name if gr is not None else None # None means ROOT location if can_create_in_root and gr is None: #we can create in root, we're fine no validations required @@ -604,7 +594,7 @@ class _validator(formencode.validators.FancyValidator): messages = { 'perm_new_member_name': - _(u'This username or user group name is not valid') + _('This username or user group name is not valid') } def to_python(self, value, state): @@ -697,7 +687,7 @@ def ValidPath(): class _validator(formencode.validators.FancyValidator): messages = { - 'invalid_path': _(u'This is not a valid path') + 'invalid_path': _('This is not a valid path') } def validate_python(self, value, state): @@ -712,7 +702,7 @@ def UniqSystemEmail(old_data={}): class _validator(formencode.validators.FancyValidator): messages = { - 'email_taken': _(u'This e-mail address is already taken') + 'email_taken': _('This email address is already in use') } def _to_python(self, value, state): @@ -721,7 +711,7 @@ def validate_python(self, value, state): if (old_data.get('email') or '').lower() != value: user = User.get_by_email(value, case_insensitive=True) - if user: + if user is not None: msg = M(self, 'email_taken', state) raise formencode.Invalid(msg, value, state, error_dict=dict(email=msg) @@ -732,7 +722,7 @@ def ValidSystemEmail(): class _validator(formencode.validators.FancyValidator): messages = { - 'non_existing_email': _(u'e-mail "%(email)s" does not exist.') + 'non_existing_email': _('Email address "%(email)s" not found') } def _to_python(self, value, state): @@ -769,7 +759,7 @@ class _validator(formencode.validators.UnicodeString): messages = { 'invalid_cn': - _(u'The LDAP Login attribute of the CN must be specified - ' + _('The LDAP Login attribute of the CN must be specified - ' 'this is the name of the attribute that is equivalent ' 'to "username"') } @@ -778,43 +768,10 @@ return _validator -def NotReviewedRevisions(repo_id): - class _validator(formencode.validators.FancyValidator): - messages = { - 'rev_already_reviewed': - _(u'Revisions %(revs)s are already part of pull request ' - 'or have set status') - } - - def validate_python(self, value, state): - # check revisions if they are not reviewed, or a part of another - # pull request - statuses = ChangesetStatus.query()\ - .filter(ChangesetStatus.revision.in_(value))\ - .filter(ChangesetStatus.repo_id == repo_id)\ - .all() - - errors = [] - for cs in statuses: - if cs.pull_request_id: - errors.append(['pull_req', cs.revision[:12]]) - elif cs.status: - errors.append(['status', cs.revision[:12]]) - - if errors: - revs = ','.join([x[1] for x in errors]) - msg = M(self, 'rev_already_reviewed', state, revs=revs) - raise formencode.Invalid(msg, value, state, - error_dict=dict(revisions=revs) - ) - - return _validator - - def ValidIp(): class _validator(CIDR): messages = dict( - badFormat=_('Please enter a valid IPv4 or IpV6 address'), + badFormat=_('Please enter a valid IPv4 or IPv6 address'), illegalBits=_('The network size (bits) must be within the range' ' of 0-32 (not %(bits)r)') ) @@ -836,7 +793,7 @@ def validate_python(self, value, state): try: addr = value.strip() - #this raises an ValueError if address is not IpV4 or IpV6 + #this raises an ValueError if address is not IPv4 or IPv6 ipaddr.IPNetwork(address=addr) except ValueError: raise formencode.Invalid(self.message('badFormat', state), @@ -899,7 +856,7 @@ next_to_load=plugin_name) raise formencode.Invalid(msg, value, state) unique_names[plugin_name] = plugin - except (ImportError, AttributeError, TypeError), e: + except (ImportError, AttributeError, TypeError) as e: raise formencode.Invalid(str(e), value, state) return _validator diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/css/bootstrap.css --- a/kallithea/public/css/bootstrap.css Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/css/bootstrap.css Sun Sep 06 23:36:05 2015 +0200 @@ -6802,4 +6802,4 @@ td.hidden-print { display: none !important; } -} \ No newline at end of file +} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/css/contextbar.css --- a/kallithea/public/css/contextbar.css Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/css/contextbar.css Sun Sep 06 23:36:05 2015 +0200 @@ -10,7 +10,6 @@ min-height: 16px; margin: -2px 0 -4px 0; /* background-color: red; /* for debugging */ - } /* css classes for diff file status ... it'd be nice if css had a way to @@ -19,19 +18,19 @@ .icon-diff-M:before { font-family: 'kallithea'; - content: '\e805'; + content: '\22a1'; color: #d0b44c; } .icon-diff-D:before { font-family: 'kallithea'; - content: '\e807'; + content: '\229f'; color: #bd2c00; } .icon-diff-A:before { font-family: 'kallithea'; - content: '\e806'; + content: '\229e'; color: #6cc644; } @@ -134,11 +133,6 @@ #context-pages, #context-pages ul { background: #3b6998; /* Old browsers */ - background: -moz-linear-gradient(top, #577632 0%, #577632 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#577632), color-stop(100%,#577632)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #577632 0%, #577632 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #577632 0%, #577632 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #577632 0%, #577632 100%); /* IE10+ */ background: linear-gradient(to bottom, #577632 0%, #577632 100%); /* W3C */ } @@ -159,7 +153,7 @@ display: inline-block; float: right; border-radius: 4px; - background-image: linear-gradient(top, #577632 0%, #577632 100%); + background-image: linear-gradient(to bottom, #577632 0%, #577632 100%); } #content ul#context-actions li { @@ -193,11 +187,6 @@ #header #header-inner #quick li.current, #context-pages li.current { background: #6388ad; /* Old browsers */ - background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */ background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */ } @@ -279,7 +268,8 @@ #revision-changer:before, #context-pages a.childs:after, #context-pages a.dropdown:after { - content: ' \25BE'; + font-family: 'kallithea'; + content: ' \23f7'; } #context-pages a.childs { padding-right: 30px; diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/css/style.css --- a/kallithea/public/css/style.css Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/css/style.css Sun Sep 06 23:36:05 2015 +0200 @@ -162,54 +162,38 @@ div.rst-block pre, .CodeMirror .CodeMirror-code pre { font-size: 12px; - font-family: Consolas, Monaco, Inconsolata, Liberation Mono, monospace; + font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace; } .top-left-rounded-corner { - -webkit-border-top-left-radius: 8px; - -khtml-border-radius-topleft: 8px; border-top-left-radius: 8px; } .top-right-rounded-corner { - -webkit-border-top-right-radius: 8px; - -khtml-border-radius-topright: 8px; border-top-right-radius: 8px; } .bottom-left-rounded-corner { - -webkit-border-bottom-left-radius: 8px; - -khtml-border-radius-bottomleft: 8px; border-bottom-left-radius: 8px; } .bottom-right-rounded-corner { - -webkit-border-bottom-right-radius: 8px; - -khtml-border-radius-bottomright: 8px; border-bottom-right-radius: 8px; } .top-left-rounded-corner-mid { - -webkit-border-top-left-radius: 4px; - -khtml-border-radius-topleft: 4px; border-top-left-radius: 4px; } .top-right-rounded-corner-mid { - -webkit-border-top-right-radius: 4px; - -khtml-border-radius-topright: 4px; border-top-right-radius: 4px; } .bottom-left-rounded-corner-mid { - -webkit-border-bottom-left-radius: 4px; - -khtml-border-radius-bottomleft: 4px; border-bottom-left-radius: 4px; } .bottom-right-rounded-corner-mid { - -webkit-border-bottom-right-radius: 4px; - -khtml-border-radius-bottomright: 4px; border-bottom-right-radius: 4px; } @@ -233,7 +217,6 @@ } .truncate.autoexpand:hover { - text-overflow: none; overflow: visible; } @@ -253,7 +236,8 @@ h4:hover > a.permalink, h5:hover > a.permalink, h6:hover > a.permalink, -div:hover > a.permalink { +div:hover > a.permalink, +div:hover > span > a.permalink { visibility: visible; } @@ -277,18 +261,10 @@ #header ul#logged-user { margin-bottom: 5px !important; - -webkit-border-radius: 0px 0px 8px 8px; - -khtml-border-radius: 0px 0px 8px 8px; border-radius: 0px 0px 8px 8px; height: 37px; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) ); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient(top, #577632, #577632); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) ); - background-image: -webkit-linear-gradient(top, #577632, #577632); - background-image: -o-linear-gradient(top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } @@ -344,15 +320,11 @@ cursor: pointer; min-height: 10px; width: 100% !important; - -webkit-border-radius: 0px 0px 4px 4px; - -khtml-border-radius: 0px 0px 4px 4px; border-radius: 0px 0px 4px 4px; } #header-dd:hover { opacity: 0.2; - -webkit-transition: opacity 0.5s ease-in-out; - -moz-transition: opacity 0.5s ease-in-out; transition: opacity 0.5s ease-in-out; } @@ -362,37 +334,20 @@ position: relative; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) ); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient(top, #577632, #577632); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632),color-stop(100%, #577632) ); - background-image: -webkit-linear-gradient(top, #577632, #577632); - background-image: -o-linear-gradient(top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); margin: 0; padding: 0; display: block; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); - -webkit-border-radius: 0px 0px 4px 4px; - -khtml-border-radius: 0px 0px 4px 4px; border-radius: 0px 0px 4px 4px; } #header #header-inner.hover { width: 100% !important; - -webkit-border-radius: 0px 0px 0px 0px; - -khtml-border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px; position: fixed !important; z-index: 10000; } -.ie7 #header #header-inner.hover, -.ie8 #header #header-inner.hover, -.ie9 #header #header-inner.hover -{ - z-index: auto !important; -} - .header-pos-fix, .anchor { margin-top: -46px; padding-top: 46px; @@ -510,7 +465,7 @@ td.quick_repo_menu:before { font-family: "kallithea"; - content: "\e80f"; /* triangle-right */ + content: "\23f5"; /* triangle-right */ margin-left: 3px; padding-right: 3px; } @@ -523,7 +478,7 @@ td.quick_repo_menu.active:before { font-family: "kallithea"; - content: "\e80d"; /* triangle-down */ + content: "\23f7"; /* triangle-down */ margin-left: 1px; padding-right: 1px; } @@ -624,7 +579,6 @@ position: absolute; left: -1500px; } -.yui-dt-scrollable tbody { -moz-outline: 0 } .yui-skin-sam thead .yui-dt-sortable { cursor: pointer } .yui-skin-sam thead .yui-dt-draggable { cursor: move } .yui-dt-coltarget { @@ -642,7 +596,6 @@ cursor: col-resize; background-color: #CCC; opacity: 0; - filter: alpha(opacity=0); } .yui-dt-resizerproxy { visibility: hidden; @@ -650,7 +603,6 @@ z-index: 9000; background-color: #CCC; opacity: 0; - filter: alpha(opacity=0); } th.yui-dt-hidden .yui-dt-liner, td.yui-dt-hidden .yui-dt-liner, @@ -714,7 +666,6 @@ .yui-skin-sam .yui-dt-mask { background-color: #000; opacity: .25; - filter: alpha(opacity=25); } .yui-skin-sam .yui-dt-message { background-color: #FFF } .yui-skin-sam .yui-dt-scrollable table { border: 0 } @@ -735,12 +686,12 @@ .yui-skin-sam th.yui-dt-asc .yui-dt-liner:after { font-family: "kallithea"; - content: "\e810"; /* triangle-up */ + content: "\23f6"; /* triangle-up */ } .yui-skin-sam th.yui-dt-desc .yui-dt-liner:after { font-family: "kallithea"; - content: "\e80d"; /* triangle-down */ + content: "\23f7"; /* triangle-down */ } tbody .yui-dt-editable { cursor: pointer } @@ -758,25 +709,11 @@ padding-top: 6px; text-align: right; } -.yui-skin-sam tr.yui-dt-even { background-color: #FFF } -.yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff } -.yui-skin-sam tr.yui-dt-even td.yui-dt-asc, -.yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff } -.yui-skin-sam tr.yui-dt-odd td.yui-dt-asc, -.yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff } -.yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF } -.yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF } -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc, -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff } -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc, -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff } .yui-skin-sam th.yui-dt-highlighted, .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff } .yui-skin-sam tr.yui-dt-highlighted, .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc, -.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc, -.yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted, -.yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted { +.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc { cursor: pointer; background-color: #b2d2ff; } @@ -784,9 +721,7 @@ .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff } .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted, .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc, -.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc, -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted, -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted { +.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc { cursor: pointer; background-color: #b2d2ff; } @@ -798,11 +733,6 @@ background-color: #426fd9; color: #FFF; } -.yui-skin-sam tr.yui-dt-even td.yui-dt-selected, -.yui-skin-sam tr.yui-dt-odd td.yui-dt-selected { - background-color: #446cd7; - color: #FFF; -} .yui-skin-sam .yui-dt-list th.yui-dt-selected, .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 } .yui-skin-sam .yui-dt-list tr.yui-dt-selected td, @@ -811,11 +741,6 @@ background-color: #426fd9; color: #FFF; } -.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected, -.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected { - background-color: #446cd7; - color: #FFF; -} .yui-skin-sam .yui-dt-paginator { display: block; margin: 6px 0; @@ -854,8 +779,6 @@ background: #fff; margin: 0 0 10px; padding: 0 0 10px; - -webkit-border-radius: 4px 4px 4px 4px; - -khtml-border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } @@ -879,12 +802,6 @@ overflow: hidden; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) ); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient(top, #577632, #577632); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) ); - background-image: -webkit-linear-gradient(top, #577632, #577632); - background-image: -o-linear-gradient(top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); margin: 0 0 20px; padding: 0; @@ -1042,14 +959,7 @@ text-align: center; cursor: pointer; color: #666; - - background: -webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(64,96,128,0.1))); - background: -webkit-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1)); - background: -moz-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1)); - background: -o-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1)); - background: -ms-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1)); background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1)); - display: none; overflow: hidden; } @@ -1291,9 +1201,11 @@ padding: 7px 7px 6px; } +input[readonly], input.disabled { background-color: #F5F5F5 !important; } + #content div.box div.form div.fields div.field div.input input.small { width: 30%; } @@ -1407,7 +1319,6 @@ margin: 0; padding: 0; border: 1px solid #eee; - -webkit-border-radius: 4px; border-radius: 4px; } @@ -1739,8 +1650,6 @@ .metatag { display: inline-block; margin-right: 1px; - -webkit-border-radius: 4px 4px 4px 4px; - -khtml-border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px; border: solid 1px #9CF; @@ -1775,7 +1684,6 @@ .metatag[tag="license"] { border: solid 1px #9CF; background-color: #DEF; - target-new: tab !important; } .metatag[tag="see"] { border: solid 1px #CBD; @@ -1812,16 +1720,8 @@ #footer div#footer-inner { background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient( linear, left top, left bottom, from(#577632), to(#577632)); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient( top, #577632, #577632); - background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #577632), color-stop( 100%, #577632)); - background-image: -webkit-linear-gradient( top, #577632, #577632); - background-image: -o-linear-gradient( top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); - -webkit-border-radius: 4px 4px 4px 4px; - -khtml-border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px; } @@ -1847,12 +1747,6 @@ position: relative; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient( linear, left top, left bottom, from(#577632), to(#577632)); - background-image: -moz-linear-gradient( top, #577632, #577632); - background-image: -ms-linear-gradient( top, #577632, #577632); - background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #577632), color-stop( 100%, #577632)); - background-image: -webkit-linear-gradient( top, #577632, #577632); - background-image: -o-linear-gradient( top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); margin: 0 auto; padding: 0; @@ -1871,7 +1765,7 @@ padding: 20px; } -#login div.form div.fields div.field div.label { +#login div.form div.form-horizontal div.form-group > label { width: 173px; float: left; text-align: right; @@ -1879,7 +1773,7 @@ padding: 5px 0 0 5px; } -#login div.form div.fields div.field div.input input { +#login div.form div.form-horizontal div.form-group div input { background: #FFF; border-top: 1px solid #b3b3b3; border-left: 1px solid #b3b3b3; @@ -1891,20 +1785,16 @@ padding: 7px 7px 6px; } -#login div.form div.fields div.buttons { - clear: both; - overflow: hidden; - border-top: 1px solid #DDD; - text-align: right; - margin: 0; - padding: 10px 0 0; +#login div.form .buttons { + float: right; } #login div.form div.links { clear: both; overflow: hidden; margin: 10px 0 0; - padding: 0 0 2px; + border-top: 1px solid #DDD; + padding: 10px 0 0; } .user-menu { @@ -1934,17 +1824,9 @@ right: 0; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) ); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient(top, #577632, #577632); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) ); - background-image: -webkit-linear-gradient(top, #577632, #577632); - background-image: -o-linear-gradient(top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); z-index: 999; - -webkit-border-radius: 0px 0px 4px 4px; - -khtml-border-radius: 0px 0px 4px 4px; border-radius: 0px 0px 4px 4px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); @@ -2101,12 +1983,6 @@ position: relative; background-color: #577632; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) ); - background-image: -moz-linear-gradient(top, #577632, #577632); - background-image: -ms-linear-gradient(top, #577632, #577632); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) ); - background-image: -webkit-linear-gradient(top, #577632, #577632); - background-image: -o-linear-gradient(top, #577632, #577632); background-image: linear-gradient(to bottom, #577632, #577632); margin: 0 auto; padding: 0; @@ -2297,19 +2173,19 @@ color: #888; } -.tablerow0 { - background-color: #F8F8F8; -} - -.tablerow1 { - background-color: #FFFFFF; -} - .changeset_id { color: #666666; margin-right: -3px; } +.changeset-logical-index { + color: #666666; + font-style: italic; + font-size: 85%; + padding-right: 0.5em; + text-align: right; +} + .changeset_hash { color: #000000; } @@ -2499,6 +2375,11 @@ border-color: #cdcdcd; } +#graph_content #changesets tr.out-of-range, +#graph_content #changesets tr.mergerow { + opacity: 0.5; +} + #graph_content #changesets td { overflow: hidden; text-overflow: ellipsis; @@ -2509,7 +2390,7 @@ } #graph_content .container .checkbox { - width: 12px; + width: 14px; font-size: 0.85em; } @@ -2554,6 +2435,7 @@ position: relative; } +#graph_content .container #singlerange, #graph_content .container .changeset_range { float: left; margin: 6px 3px; @@ -2690,15 +2572,11 @@ float: left; padding: 2px 0px 0px 2px; } -.changeset-status-container .changeset-status-lbl { - float: left; - padding: 3px 4px 0px 0px -} .code-header .changeset-status-container .changeset-status-lbl { float: left; padding: 0px 4px 0px 0px; } -.changeset-status-container .changeset-status-ico { +.changeset-status-container div.changeset-status-ico { float: left; } .code-header .changeset-status-container .changeset-status-ico, @@ -2742,7 +2620,6 @@ cursor: pointer; color: #444444; background: #FEA; - -webkit-border-radius: 0px 0px 0px 6px; border-radius: 0px 0px 0px 6px; padding: 1px; } @@ -2776,7 +2653,6 @@ color: #ffffff; text-transform: uppercase; white-space: nowrap; - -webkit-border-radius: 3px; border-radius: 3px; margin-right: 2px; } @@ -2801,7 +2677,6 @@ font-size: 10px; color: #577632; white-space: nowrap; - -webkit-border-radius: 4px; border-radius: 4px; border: 1px solid #d9e8f8; line-height: 1.5em; @@ -2874,7 +2749,6 @@ font-size: 10px; color: #ffffff; white-space: nowrap; - -webkit-border-radius: 3px; border-radius: 3px; } @@ -2894,7 +2768,6 @@ font-size: 10px; color: #ffffff; white-space: nowrap; - -webkit-border-radius: 3px; border-radius: 3px; } .logbooks .booktag, @@ -2920,7 +2793,6 @@ font-size: 100%; line-height: 125%; padding: 0; - -webkit-border-radius: 6px 6px 0px 0px; border-radius: 6px 6px 0px 0px; } @@ -3144,11 +3016,8 @@ padding: 8px; white-space: pre-wrap; - -webkit-border-radius: 8px 8px 8px 8px; - -khtml-border-radius: 8px 8px 8px 8px; border-radius: 8px 8px 8px 8px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); - -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); z-index: 100000; } @@ -3163,8 +3032,6 @@ opacity: 1; padding: 8px; white-space: pre-wrap; - -webkit-border-radius: 8px 8px 8px 8px; - -khtml-border-radius: 8px 8px 8px 8px; border-radius: 8px 8px 8px 8px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } @@ -3212,7 +3079,6 @@ width: 100%; background: #000; opacity: .10; - filter: alpha(opacity = 10); z-index: 9049; margin: .3em; } @@ -3320,12 +3186,6 @@ .flash_msg .alert-error { background-color: #c43c35; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35) ); - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35) ); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); border-color: #c43c35 #c43c35 #882a25; } @@ -3338,12 +3198,6 @@ color: #404040 !important; background-color: #eedc94; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94) ); - background-image: -moz-linear-gradient(top, #fceec1, #eedc94); - background-image: -ms-linear-gradient(top, #fceec1, #eedc94); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94) ); - background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); - background-image: -o-linear-gradient(top, #fceec1, #eedc94); background-image: linear-gradient(to bottom, #fceec1, #eedc94); border-color: #eedc94 #eedc94 #e4c652; } @@ -3355,12 +3209,6 @@ .flash_msg .alert-success { background-color: #57a957; background-repeat: repeat-x !important; - background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) ); - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -ms-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) ); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); background-image: linear-gradient(to bottom, #62c462, #57a957); border-color: #57a957 #57a957 #3d773d; } @@ -3373,12 +3221,6 @@ .flash_msg .alert-info { background-color: #339bb9; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) ); - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) ); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); background-image: linear-gradient(to bottom, #5bc0de, #339bb9); border-color: #339bb9 #339bb9 #22697d; } @@ -3405,9 +3247,7 @@ color: #FFF; border-width: 1px; border-style: solid; - -webkit-border-radius: 4px; border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); } @@ -3445,14 +3285,10 @@ margin-right: 0.7em; padding: 1px 1px 1px 1px; line-height: 0; - -webkit-border-radius: 3px; - -khtml-border-radius: 3px; border-radius: 3px; } div.gravatar img { - -webkit-border-radius: 2px; - -khtml-border-radius: 2px; border-radius: 2px; } @@ -3481,12 +3317,6 @@ color: #515151; background-color: #DADADA; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) ); - background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA); - background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) ); - background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA); - background-image: -o-linear-gradient(top, #F4F4F4, #DADADA); background-image: linear-gradient(to bottom, #F4F4F4, #DADADA); border-top: 1px solid #DDD; @@ -3495,8 +3325,6 @@ border-bottom: 1px solid #c6c6c6; outline: none; margin: 0px 3px 3px 0px; - -webkit-border-radius: 4px 4px 4px 4px !important; - -khtml-border-radius: 4px 4px 4px 4px !important; border-radius: 4px 4px 4px 4px !important; cursor: pointer !important; padding: 3px 3px 3px 3px; @@ -3575,12 +3403,6 @@ color: #fff; background-color: #c43c35; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); border-color: #c43c35 #c43c35 #882a25; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); @@ -3591,12 +3413,6 @@ color: #fff; background-color: #339bb9; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9)); - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); background-image: linear-gradient(to bottom, #5bc0de, #339bb9); border-color: #339bb9 #339bb9 #22697d; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); @@ -3606,12 +3422,6 @@ color: #fff; background-color: #57a957; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -ms-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); background-image: linear-gradient(to bottom, #62c462, #57a957); border-color: #57a957 #57a957 #3d773d; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); @@ -3621,12 +3431,6 @@ color: #fff; background-color: #faa732; background-repeat: repeat-x; - background-image: -khtml-gradient(linear, left top, left bottom, from(#fbb450), to(#f89406)); - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -ms-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbb450), color-stop(100%, #f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(to bottom, #fbb450, #f89406); border-color: #f89406 #f89406 #ad6704; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); @@ -3719,13 +3523,11 @@ } .repo-switcher .select2-chosen:after { - content: ' \25BE'; + font-family: 'kallithea'; + content: ' \23f7'; } .repo-switcher-dropdown.select2-drop.select2-drop-active { - xborder-color: black; - -webkit-box-shadow: none; - -moz-box-shadow: none; box-shadow: none; color: #fff; background-color: #576622; @@ -3758,8 +3560,8 @@ } #content div.box div.form div.fields, -#login div.form, -#login div.form div.fields, +#login div.form-horizontal, +#login div.form-horizontal div.form-group, #register div.form, #register div.form div.fields { clear: both; @@ -3769,7 +3571,7 @@ } #content div.box div.form div.fields div.field div.label span, -#login div.form div.fields div.field div.label span, +#login div.form div.form-horizontal div.form-group div.label span, #register div.form div.fields div.field div.label span { height: 1%; display: block; @@ -3779,7 +3581,7 @@ } #content div.box div.form div.fields div.field div.input input.error, -#login div.form div.fields div.field div.input input.error, +#login div.form div.form-horizontal div.form-group div.input input.error, #register div.form div.fields div.field div.input input.error { background: #FBE3E4; border-top: 1px solid #e1b2b3; @@ -3789,7 +3591,7 @@ } #content div.box div.form div.fields div.field div.input input.success, -#login div.form div.fields div.field div.input input.success, +#login div.form div.form-horizontal div.form-group div.input input.success, #register div.form div.fields div.field div.input input.success { background: #E6EFC2; border-top: 1px solid #cebb98; @@ -3891,7 +3693,7 @@ } #content div.box div.action div.button, -#login div.form div.fields div.field div.input div.link, +#login div.form div.form-horizontal div.form-group div.input div.link, #register div.form div.fields div.field div.input div.link { text-align: right; margin: 6px 0 0; @@ -3960,7 +3762,7 @@ padding: 0; } -#login div.form div.fields div.field, +#login div.form div.form-horizontal div.form-group, #register div.form div.fields div.field { clear: both; overflow: hidden; @@ -3968,7 +3770,7 @@ padding: 0 0 10px; } -#login div.form div.fields div.field span.error-message, +#login div.form div.form-horizontal div.form-group span.error-message, #register div.form div.fields div.field span.error-message { height: 1%; display: block; @@ -3978,36 +3780,36 @@ max-width: 320px; } -#login div.form div.fields div.field div.label label, +#login div.form div.form-horizontal div.form-group label, #register div.form div.fields div.field div.label label { color: #000; font-weight: 700; } -#login div.form div.fields div.field div.input, +#login div.form div.form-horizontal div.form-group div, #register div.form div.fields div.field div.input { float: left; margin: 0; padding: 0; } -#login div.form div.fields div.field div.input input.large { +#login div.form div.form-horizontal div.form-group div input.large { width: 250px; } -#login div.form div.fields div.field div.checkbox, +#login div.form div.form-horizontal div.form-group div.checkbox, #register div.form div.fields div.field div.checkbox { margin: 0 0 0 184px; padding: 0; } -#login div.form div.fields div.field div.checkbox label, +#login div.form div.form-horizontal div.form-group div.checkbox label, #register div.form div.fields div.field div.checkbox label { color: #565656; font-weight: 700; } -#login div.form div.fields div.buttons input, +#login div.form div.buttons input, #register div.form div.fields div.buttons input { color: #000; font-size: 1em; @@ -4035,8 +3837,6 @@ } .q_filter_box { - -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset; - -webkit-border-radius: 4px; border-radius: 4px; border: 0 none; margin-bottom: -4px; @@ -4189,8 +3989,6 @@ padding: 5px; color: #444; overflow: auto; - -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset; - -webkit-border-radius: 3px; border-radius: 3px; } @@ -4222,7 +4020,7 @@ clear: both; overflow: hidden; margin: 0; - padding: 0 20px 10px; + padding: 0 20px; } div.rst-block h1, @@ -4292,8 +4090,6 @@ padding: 5px; color: #444; overflow: auto; - -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset; - -webkit-border-radius: 3px; border-radius: 3px; } @@ -4304,10 +4100,9 @@ max-width: 978px; } -.comments .comment { +.comments .comment .comment-wrapp { border: 1px solid #ddd; margin-top: 10px; - -webkit-border-radius: 4px; border-radius: 4px; } @@ -4341,8 +4136,7 @@ margin: 0.5em 0px !important; } -.comments .comments-number, -.pr-comments-number { +.comments-number { margin: 5px; padding: 0px 0px 10px 0px; font-weight: bold; @@ -4350,6 +4144,10 @@ font-size: 16px; } +.automatic-comment { + font-style: italic; +} + /** comment form **/ .status-block { @@ -4357,15 +4155,10 @@ clear: both } - -div.comment-form { - margin-top: 20px; -} - .comment-form textarea { width: 100%; height: 100px; - font-family: Consolas, Monaco, Inconsolata, Liberation Mono, monospace; + font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace; } form.comment-form { @@ -4377,8 +4170,6 @@ .comment-form .comment-block-ta { border: 1px solid #ccc; border-radius: 3px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box; } @@ -4450,7 +4241,6 @@ .comment-inline-form .clearfix, .comment-form .clearfix { background: #EEE; - -webkit-border-radius: 4px; border-radius: 4px; padding: 5px; margin: 0px; @@ -4463,7 +4253,7 @@ .comment-inline-form textarea { width: 100%; height: 100px; - font-family: Consolas, Monaco, Inconsolata, Liberation Mono, monospace; + font-family: Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace; } form.comment-inline-form { @@ -4501,7 +4291,7 @@ /** comment inline **/ .inline-comments { - padding: 10px 20px; + padding: 0 20px; } .inline-comments div.rst-block { @@ -4510,21 +4300,19 @@ margin: 0; padding: 0 20px 0px; } -.inline-comments .comment { + +.inline-comments .comment .comment-wrapp { max-width: 978px; border: 1px solid #ddd; - -webkit-border-radius: 4px; border-radius: 4px; margin: 3px 3px 5px 5px; background-color: #FAFAFA; } + .inline-comments .add-comment { padding: 2px 4px 8px 5px; } -.inline-comments .comment-wrapp { - padding: 1px; -} .inline-comments .comment .meta { background: #f8f8f8; padding: 4px; @@ -4562,6 +4350,11 @@ margin: 2px 0px 8px 5px !important } +input.status_change_radio { + margin: 2px 0 5px 15px; + vertical-align: middle; +} + .notification-paginator { padding: 0px 0px 4px 16px; } @@ -4573,7 +4366,6 @@ color: #888 !important; background-color: #DEDEDE !important; border-radius: 4px !important; - -webkit-border-radius: 4px !important; } #context-pages .forks span, @@ -4583,7 +4375,6 @@ color: #888 !important; background-color: #DEDEDE !important; border-radius: 4px !important; - -webkit-border-radius: 4px !important; } @@ -4608,7 +4399,6 @@ } .notification-table { border: 1px solid #ccc; - -webkit-border-radius: 6px 6px 6px 6px; border-radius: 6px 6px 6px 6px; clear: both; margin: 0px 20px 0px 20px; @@ -4675,7 +4465,6 @@ font-size: 10px; color: #577632; white-space: nowrap; - -webkit-border-radius: 4px; border-radius: 4px; border: 1px solid #d9e8f8; line-height: 1.5em; @@ -4713,7 +4502,6 @@ font-weight: bold; text-transform: uppercase; white-space: nowrap; - -webkit-border-radius: 3px; border-radius: 3px; } @@ -4779,7 +4567,6 @@ line-height: 100%; /* new */ line-height: 125%; - -webkit-border-radius: 6px 6px 0px 0px; border-radius: 6px 6px 0px 0px; } div.diffblock.margined { @@ -4925,12 +4712,10 @@ } table.code-difftable .lineno a { color: #aaa !important; - font: 11px Consolas, Monaco, Inconsolata, Liberation Mono, monospace !important; + font: 11px Lucida Console, Consolas, Monaco, Inconsolata, Liberation Mono, monospace !important; letter-spacing: -1px; padding-left: 10px; padding-right: 8px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box; cursor: pointer; display: block; @@ -4972,7 +4757,7 @@ position: relative; width: 0; } - + table.code-difftable .add .code pre:before { content: "+"; color: #080; @@ -4981,7 +4766,7 @@ position: relative; width: 0; } - + table.code-difftable .unmod .code pre:before { content: " "; float: left; @@ -4989,7 +4774,7 @@ position: relative; width: 0; } - + .add-bubble { position: relative; display: none; @@ -4997,14 +4782,13 @@ width: 0px; height: 0px; left: -8px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box; } -tr.line.add:hover td .add-bubble, -tr.line.del:hover td .add-bubble, -tr.line.unmod:hover td .add-bubble { +/* comment bubble, only visible when in a commentable diff */ +.commentable-diff tr.line.add:hover td .add-bubble, +.commentable-diff tr.line.del:hover td .add-bubble, +.commentable-diff tr.line.unmod:hover td .add-bubble { display: block; z-index: 1; } @@ -5017,8 +4801,6 @@ padding: 0 2px 2px 0.5px; border: 1px solid #577632; border-radius: 3px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box; } @@ -5026,13 +4808,22 @@ font-size: 14px; color: #ffffff; font-family: "kallithea"; - content: '\e80c'; + content: '\1f5ea'; } .add-bubble div:hover { transform: scale(1.2, 1.2); } +/* show some context of link targets - but only works when the link target + can be extended with any visual difference */ +div.comment:target:before { + display: block; + height: 100px; + margin: -100px 0 0; + content: ""; +} + div.comment:target>.comment-wrapp { border: solid 2px #ee0 !important; } @@ -5067,8 +4858,8 @@ margin: 5px; } -div.prev-next-comment div.prev-comment, -div.prev-next-comment div.next-comment { +div.comment-prev-next-links div.prev-comment, +div.comment-prev-next-links div.next-comment { display: inline-block; min-width: 150px; margin: 3px 6px; diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/config.json --- a/kallithea/public/fontello/config.json Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/fontello/config.json Sun Sep 06 23:36:05 2015 +0200 @@ -401,7 +401,7 @@ { "uid": "c04672812513206682a859166c207252", "css": "clippy", - "code": 59419, + "code": 128203, "src": "custom_icons", "selected": true, "svg": { @@ -457,7 +457,7 @@ { "uid": "c9e14800494dc6027b3dcee0817cf984", "css": "code", - "code": 59425, + "code": 8596, "src": "custom_icons", "selected": true, "svg": { @@ -485,7 +485,7 @@ { "uid": "7aeda197b5b0fba630669530807d736d", "css": "comment", - "code": 59403, + "code": 128489, "src": "custom_icons", "selected": true, "svg": { @@ -499,7 +499,7 @@ { "uid": "28655242f029e97efd1bf5379e22c4ba", "css": "comment-discussion", - "code": 59404, + "code": 128490, "src": "custom_icons", "selected": true, "svg": { @@ -555,7 +555,7 @@ { "uid": "776af96a4db73c51c13fd256f12d6f40", "css": "database", - "code": 59392, + "code": 9923, "src": "custom_icons", "selected": true, "svg": { @@ -639,7 +639,7 @@ { "uid": "ccc8f787411138446b85c9fe52e33b8b", "css": "diff-added", - "code": 59398, + "code": 8862, "src": "custom_icons", "selected": true, "svg": { @@ -667,7 +667,7 @@ { "uid": "2672a84540d3632649f01108e2db0341", "css": "diff-modified", - "code": 59397, + "code": 8865, "src": "custom_icons", "selected": true, "svg": { @@ -681,7 +681,7 @@ { "uid": "1ce39df7ee1648c4054633b371546367", "css": "diff-removed", - "code": 59399, + "code": 8863, "src": "custom_icons", "selected": true, "svg": { @@ -905,7 +905,7 @@ { "uid": "c59600c892bd7e46476f38e89812fbbf", "css": "gear", - "code": 59441, + "code": 9965, "src": "custom_icons", "selected": true, "svg": { @@ -1031,7 +1031,7 @@ { "uid": "b00e349d8883c0b89796940a9913e8e8", "css": "globe", - "code": 59410, + "code": 127758, "src": "custom_icons", "selected": true, "svg": { @@ -1283,7 +1283,7 @@ { "uid": "3617d121a15ef91892d5083aeead6ce3", "css": "key", - "code": 59430, + "code": 128273, "src": "custom_icons", "selected": true, "svg": { @@ -1591,7 +1591,7 @@ { "uid": "ef6263a57a35ecee2f8ddda2fe20dcab", "css": "move-down", - "code": 59395, + "code": 11123, "src": "custom_icons", "selected": true, "svg": { @@ -1633,7 +1633,7 @@ { "uid": "13e7ebf511552da48a5bc1d2e7cf6de2", "css": "move-up", - "code": 59396, + "code": 11121, "src": "custom_icons", "selected": true, "svg": { @@ -2123,7 +2123,7 @@ { "uid": "809bb7ea7bf6ca7e94029eae402f922f", "css": "search", - "code": 59435, + "code": 128269, "src": "custom_icons", "selected": true, "svg": { @@ -2333,7 +2333,7 @@ { "uid": "92dd16866a2367537f47bec5ee11484f", "css": "tools", - "code": 59400, + "code": 128736, "src": "custom_icons", "selected": true, "svg": { @@ -2347,7 +2347,7 @@ { "uid": "448bfec39235117b6a7e3e8d46aa184f", "css": "trashcan", - "code": 59433, + "code": 128465, "src": "custom_icons", "selected": true, "svg": { @@ -2361,7 +2361,7 @@ { "uid": "ebbb1978bedc8e562ab0d462a832919f", "css": "triangle-down", - "code": 59405, + "code": 9207, "src": "custom_icons", "selected": true, "svg": { @@ -2375,7 +2375,7 @@ { "uid": "814cb1fe473de29d20b3d4e366ed434b", "css": "triangle-left", - "code": 59406, + "code": 9204, "src": "custom_icons", "selected": true, "svg": { @@ -2389,7 +2389,7 @@ { "uid": "d191392505c6a27bbeafd2d283a18d23", "css": "triangle-right", - "code": 59407, + "code": 9205, "src": "custom_icons", "selected": true, "svg": { @@ -2403,7 +2403,7 @@ { "uid": "14bdc9ddaebbaecf5bad552a14cae637", "css": "triangle-up", - "code": 59408, + "code": 9206, "src": "custom_icons", "selected": true, "svg": { @@ -2501,7 +2501,7 @@ { "uid": "16b70cc2a5fbff7de2cbf73498e25b5c", "css": "keyhole-circled", - "code": 59426, + "code": 128272, "src": "custom_icons", "selected": true, "svg": { @@ -2543,91 +2543,91 @@ { "uid": "d73eceadda1f594cec0536087539afbf", "css": "heart", - "code": 59436, + "code": 9829, "src": "fontawesome" }, { "uid": "f3dc2d6d8fe9cf9ebff84dc260888cdf", "css": "heart-empty", - "code": 59437, + "code": 9825, "src": "fontawesome" }, { "uid": "8b80d36d4ef43889db10bc1f0dc9a862", "css": "user", - "code": 59438, + "code": 128100, "src": "fontawesome" }, { "uid": "31972e4e9d080eaa796290349ae6c1fd", "css": "users", - "code": 59439, + "code": 128101, "src": "fontawesome" }, { "uid": "12f4ece88e46abd864e40b35e05b11cd", "css": "ok", - "code": 59440, + "code": 128504, "src": "fontawesome" }, { "uid": "43ab845088317bd348dee1d975700c48", "css": "ok-circled", - "code": 59402, + "code": 128505, "src": "fontawesome" }, { "uid": "5211af474d3a9848f67f945e2ccaf143", "css": "cancel", - "code": 59434, + "code": 128500, "src": "fontawesome" }, { "uid": "0f4cae16f34ae243a6144c18a003f2d8", "css": "cancel-circled", - "code": 59401, + "code": 128501, "src": "fontawesome" }, { "uid": "44e04715aecbca7f266a17d5a7863c68", "css": "plus", - "code": 59471, + "code": 10133, "src": "fontawesome" }, { "uid": "4ba33d2607902cf690dd45df09774cb0", "css": "plus-circled", - "code": 59468, + "code": 8853, "src": "fontawesome" }, { "uid": "861ab06e455e2de3232ebef67d60d708", "css": "minus", - "code": 59472, + "code": 10134, "src": "fontawesome" }, { "uid": "eeadb020bb75d089b25d8424aabe19e0", "css": "minus-circled", - "code": 59469, + "code": 8854, "src": "fontawesome" }, { "uid": "c1f1975c885aa9f3dad7810c53b82074", "css": "lock", - "code": 59450, + "code": 128274, "src": "fontawesome" }, { "uid": "05376be04a27d5a46e855a233d6e8508", "css": "lock-open-alt", - "code": 59451, + "code": 128275, "src": "fontawesome" }, { "uid": "c5fd349cbd3d23e4ade333789c29c729", "css": "eye", - "code": 59474, + "code": 128065, "src": "fontawesome" }, { @@ -2639,7 +2639,7 @@ { "uid": "3db5347bd219f3bce6025780f5d9ef45", "css": "tag", - "code": 59452, + "code": 128278, "src": "fontawesome" }, { @@ -2675,25 +2675,25 @@ { "uid": "d35a1d35efeb784d1dc9ac18b9b6c2b6", "css": "pencil", - "code": 59458, + "code": 128393, "src": "fontawesome" }, { "uid": "44fae3bfdd54754dc68ec50d37efea37", "css": "pencil-squared", - "code": 59460, + "code": 128394, "src": "fontawesome" }, { "uid": "41087bc74d4b20b55059c60a33bf4008", "css": "edit", - "code": 59461, + "code": 128395, "src": "fontawesome" }, { "uid": "1b5a5d7b7e3c71437f5a26befdd045ed", "css": "doc", - "code": 59443, + "code": 128453, "src": "fontawesome" }, { @@ -2705,7 +2705,7 @@ { "uid": "5408be43f7c42bccee419c6be53fdef5", "css": "doc-text", - "code": 59445, + "code": 128456, "src": "fontawesome" }, { @@ -2729,25 +2729,25 @@ { "uid": "f8aa663c489bcbd6e68ec8147dca841e", "css": "folder", - "code": 59475, + "code": 128448, "src": "fontawesome" }, { "uid": "c95735c17a10af81448c7fed98a04546", "css": "folder-open", - "code": 59462, + "code": 128449, "src": "fontawesome" }, { "uid": "b091a8bd0fdade174951f17d936f51e4", "css": "folder-empty", - "code": 59476, + "code": 128193, "src": "fontawesome" }, { "uid": "6533bdc16ab201eb3f3b27ce989cab33", "css": "folder-open-empty", - "code": 59463, + "code": 128194, "src": "fontawesome" }, { @@ -2771,13 +2771,13 @@ { "uid": "98687378abd1faf8f6af97c254eb6cd6", "css": "cog-alt", - "code": 59442, + "code": 9881, "src": "fontawesome" }, { "uid": "5bb103cd29de77e0e06a52638527b575", "css": "wrench", - "code": 59479, + "code": 128295, "src": "fontawesome" }, { @@ -2789,19 +2789,19 @@ { "uid": "598a5f2bcf3521d1615de8e1881ccd17", "css": "clock", - "code": 59449, + "code": 8986, "src": "fontawesome" }, { "uid": "98d9c83c1ee7c2c25af784b518c522c5", "css": "block", - "code": 59470, + "code": 128683, "src": "fontawesome" }, { "uid": "d3b3f17bc3eb7cd809a07bbd4d178bee", "css": "resize-vertical", - "code": 59415, + "code": 11109, "src": "fontawesome" }, { @@ -2825,25 +2825,25 @@ { "uid": "ccddff8e8670dcd130e3cb55fdfc2fd0", "css": "down-open", - "code": 59464, + "code": 8595, "src": "fontawesome" }, { "uid": "d870630ff8f81e6de3958ecaeac532f2", "css": "left-open", - "code": 59465, + "code": 8594, "src": "fontawesome" }, { "uid": "399ef63b1e23ab1b761dfbb5591fa4da", "css": "right-open", - "code": 59466, + "code": 8592, "src": "fontawesome" }, { "uid": "fe6697b391355dec12f3d86d6d490397", "css": "up-open", - "code": 59467, + "code": 8593, "src": "fontawesome" }, { @@ -2879,13 +2879,13 @@ { "uid": "a73c5deb486c8d66249811642e5d719a", "css": "arrows-cw", - "code": 59448, + "code": 128472, "src": "fontawesome" }, { "uid": "6020aff067fc3c119cdd75daa5249220", "css": "exchange", - "code": 59483, + "code": 8644, "src": "fontawesome" }, { @@ -2909,25 +2909,25 @@ { "uid": "9755f76110ae4d12ac5f9466c9152031", "css": "book", - "code": 59454, + "code": 128210, "src": "fontawesome" }, { "uid": "130380e481a7defc690dfb24123a1f0c", "css": "circle", - "code": 59485, + "code": 8226, "src": "fontawesome" }, { "uid": "422e07e5afb80258a9c4ed1706498f8a", "css": "circle-empty", - "code": 59484, + "code": 9702, "src": "fontawesome" }, { "uid": "f4445feb55521283572ee88bc304f928", "css": "floppy", - "code": 59480, + "code": 128190, "src": "fontawesome" }, { @@ -2939,7 +2939,7 @@ { "uid": "56a21935a5d4d79b2e91ec00f760b369", "css": "sort", - "code": 59482, + "code": 8597, "src": "fontawesome" } ] diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/css/kallithea.css --- a/kallithea/public/fontello/css/kallithea.css Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/fontello/css/kallithea.css Sun Sep 06 23:36:05 2015 +0200 @@ -1,10 +1,12 @@ -@font-face { +@charset "UTF-8"; + + @font-face { font-family: 'kallithea'; - src: url('../font/kallithea.eot?81834162'); - src: url('../font/kallithea.eot?81834162#iefix') format('embedded-opentype'), - url('../font/kallithea.woff?81834162') format('woff'), - url('../font/kallithea.ttf?81834162') format('truetype'), - url('../font/kallithea.svg?81834162#kallithea') format('svg'); + src: url('../font/kallithea.eot?23730278'); + src: url('../font/kallithea.eot?23730278#iefix') format('embedded-opentype'), + url('../font/kallithea.woff?23730278') format('woff'), + url('../font/kallithea.ttf?23730278') format('truetype'), + url('../font/kallithea.svg?23730278#kallithea') format('svg'); font-weight: normal; font-style: normal; } @@ -14,7 +16,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'kallithea'; - src: url('../font/kallithea.svg?81834162#kallithea') format('svg'); + src: url('../font/kallithea.svg?23730278#kallithea') format('svg'); } } */ @@ -35,7 +37,7 @@ /* For safety - reset parent styles, that can break glyph codes*/ font-variant: normal; text-transform: none; - + /* fix buttons height, for twitter bootstrap */ line-height: 1em; @@ -46,102 +48,73 @@ /* you can be more comfortable with increased icons size */ /* font-size: 120%; */ + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + /* Uncomment for 3D effect */ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } -.icon-database:before { content: '\e800'; } /* '' */ +.icon-circle:before { content: '\2022'; } /* '•' */ +.icon-right-open:before { content: '\2190'; } /* '←' */ +.icon-up-open:before { content: '\2191'; } /* '↑' */ +.icon-left-open:before { content: '\2192'; } /* '→' */ +.icon-down-open:before { content: '\2193'; } /* '↓' */ +.icon-code:before { content: '\2194'; } /* '↔' */ +.icon-sort:before { content: '\2195'; } /* '↕' */ +.icon-exchange:before { content: '\21c4'; } /* '⇄' */ +.icon-plus-circled:before { content: '\2295'; } /* '⊕' */ +.icon-minus-circled:before { content: '\2296'; } /* '⊖' */ +.icon-diff-added:before { content: '\229e'; } /* '⊞' */ +.icon-diff-removed:before { content: '\229f'; } /* '⊟' */ +.icon-diff-modified:before { content: '\22a1'; } /* '⊡' */ +.icon-clock:before { content: '\231a'; } /* '⌚' */ +.icon-triangle-left:before { content: '\23f4'; } /* '⏴' */ +.icon-triangle-right:before { content: '\23f5'; } /* '⏵' */ +.icon-triangle-up:before { content: '\23f6'; } /* '⏶' */ +.icon-triangle-down:before { content: '\23f7'; } /* '⏷' */ +.icon-circle-empty:before { content: '\25e6'; } /* '◦' */ +.icon-heart-empty:before { content: '\2661'; } /* '♡' */ +.icon-heart:before { content: '\2665'; } /* '♥' */ +.icon-cog-alt:before { content: '\2699'; } /* '⚙' */ +.icon-database:before { content: '\26c3'; } /* '⛃' */ +.icon-gear:before { content: '\26ed'; } /* '⛭' */ +.icon-plus:before { content: '\2795'; } /* '➕' */ +.icon-minus:before { content: '\2796'; } /* '➖' */ +.icon-resize-vertical:before { content: '\2b65'; } /* '⭥' */ +.icon-move-up:before { content: '\2b71'; } /* '⭱' */ +.icon-move-down:before { content: '\2b73'; } /* '⭳' */ .icon-file-submodule:before { content: '\e801'; } /* '' */ .icon-git-merge:before { content: '\e802'; } /* '' */ -.icon-move-down:before { content: '\e803'; } /* '' */ -.icon-move-up:before { content: '\e804'; } /* '' */ -.icon-diff-modified:before { content: '\e805'; } /* '' */ -.icon-diff-added:before { content: '\e806'; } /* '' */ -.icon-diff-removed:before { content: '\e807'; } /* '' */ -.icon-tools:before { content: '\e808'; } /* '' */ -.icon-cancel-circled:before { content: '\e809'; } /* '' */ -.icon-ok-circled:before { content: '\e80a'; } /* '' */ -.icon-comment:before { content: '\e80b'; } /* '' */ -.icon-comment-discussion:before { content: '\e80c'; } /* '' */ -.icon-triangle-down:before { content: '\e80d'; } /* '' */ -.icon-triangle-left:before { content: '\e80e'; } /* '' */ -.icon-triangle-right:before { content: '\e80f'; } /* '' */ -.icon-triangle-up:before { content: '\e810'; } /* '' */ .icon-ruler:before { content: '\e811'; } /* '' */ -.icon-globe:before { content: '\e812'; } /* '' */ .icon-download-cloud:before { content: '\e813'; } /* '' */ .icon-upload-cloud:before { content: '\e814'; } /* '' */ .icon-graph:before { content: '\e815'; } /* '' */ .icon-file-zip:before { content: '\e816'; } /* '' */ -.icon-resize-vertical:before { content: '\e817'; } /* '' */ .icon-file-code:before { content: '\e81a'; } /* '' */ -.icon-clippy:before { content: '\e81b'; } /* '' */ .icon-doc-text-inv:before { content: '\e81c'; } /* '' */ .icon-diff:before { content: '\e81d'; } /* '' */ .icon-diff-ignored:before { content: '\e81e'; } /* '' */ .icon-diff-renamed:before { content: '\e81f'; } /* '' */ .icon-paste:before { content: '\e820'; } /* '' */ -.icon-code:before { content: '\e821'; } /* '' */ -.icon-keyhole-circled:before { content: '\e822'; } /* '' */ .icon-file-directory:before { content: '\e823'; } /* '' */ .icon-git-compare:before { content: '\e824'; } /* '' */ .icon-git-pull-request:before { content: '\e825'; } /* '' */ -.icon-key:before { content: '\e826'; } /* '' */ .icon-repo-forked:before { content: '\e827'; } /* '' */ .icon-fork:before { content: '\e828'; } /* '' */ -.icon-trashcan:before { content: '\e829'; } /* '' */ -.icon-cancel:before { content: '\e82a'; } /* '' */ -.icon-search:before { content: '\e82b'; } /* '' */ -.icon-heart:before { content: '\e82c'; } /* '' */ -.icon-heart-empty:before { content: '\e82d'; } /* '' */ -.icon-user:before { content: '\e82e'; } /* '' */ -.icon-users:before { content: '\e82f'; } /* '' */ -.icon-ok:before { content: '\e830'; } /* '' */ -.icon-gear:before { content: '\e831'; } /* '' */ -.icon-cog-alt:before { content: '\e832'; } /* '' */ -.icon-doc:before { content: '\e833'; } /* '' */ .icon-docs:before { content: '\e834'; } /* '' */ -.icon-doc-text:before { content: '\e835'; } /* '' */ .icon-doc-inv:before { content: '\e836'; } /* '' */ .icon-file-powerpoint:before { content: '\e837'; } /* '' */ -.icon-arrows-cw:before { content: '\e838'; } /* '' */ -.icon-clock:before { content: '\e839'; } /* '' */ -.icon-lock:before { content: '\e83a'; } /* '' */ -.icon-lock-open-alt:before { content: '\e83b'; } /* '' */ -.icon-tag:before { content: '\e83c'; } /* '' */ .icon-tags:before { content: '\e83d'; } /* '' */ -.icon-book:before { content: '\e83e'; } /* '' */ .icon-bookmark-empty:before { content: '\e83f'; } /* '' */ .icon-bookmark:before { content: '\e840'; } /* '' */ .icon-align-left:before { content: '\e841'; } /* '' */ -.icon-pencil:before { content: '\e842'; } /* '' */ .icon-sliders:before { content: '\e843'; } /* '' */ -.icon-pencil-squared:before { content: '\e844'; } /* '' */ -.icon-edit:before { content: '\e845'; } /* '' */ -.icon-folder-open:before { content: '\e846'; } /* '' */ -.icon-folder-open-empty:before { content: '\e847'; } /* '' */ -.icon-down-open:before { content: '\e848'; } /* '' */ -.icon-left-open:before { content: '\e849'; } /* '' */ -.icon-right-open:before { content: '\e84a'; } /* '' */ -.icon-up-open:before { content: '\e84b'; } /* '' */ -.icon-plus-circled:before { content: '\e84c'; } /* '' */ -.icon-minus-circled:before { content: '\e84d'; } /* '' */ -.icon-block:before { content: '\e84e'; } /* '' */ -.icon-plus:before { content: '\e84f'; } /* '' */ -.icon-minus:before { content: '\e850'; } /* '' */ .icon-eye-off:before { content: '\e851'; } /* '' */ -.icon-eye:before { content: '\e852'; } /* '' */ -.icon-folder:before { content: '\e853'; } /* '' */ -.icon-folder-empty:before { content: '\e854'; } /* '' */ .icon-rss:before { content: '\e855'; } /* '' */ .icon-rss-squared:before { content: '\e856'; } /* '' */ -.icon-wrench:before { content: '\e857'; } /* '' */ -.icon-floppy:before { content: '\e858'; } /* '' */ .icon-strike:before { content: '\e859'; } /* '' */ -.icon-sort:before { content: '\e85a'; } /* '' */ -.icon-exchange:before { content: '\e85b'; } /* '' */ -.icon-circle-empty:before { content: '\e85c'; } /* '' */ -.icon-circle:before { content: '\e85d'; } /* '' */ .icon-box:before { content: '\e85e'; } /* '' */ .icon-right:before { content: '\e85f'; } /* '' */ .icon-left:before { content: '\e860'; } /* '' */ @@ -150,4 +123,37 @@ .icon-up-circled:before { content: '\e863'; } /* '' */ .icon-up:before { content: '\e864'; } /* '' */ .icon-down:before { content: '\e865'; } /* '' */ -.icon-down-circled:before { content: '\e866'; } /* '' */ \ No newline at end of file +.icon-down-circled:before { content: '\e866'; } /* '' */ +.icon-globe:before { content: '🌎'; } /* '\1f30e' */ +.icon-eye:before { content: '👁'; } /* '\1f441' */ +.icon-user:before { content: '👤'; } /* '\1f464' */ +.icon-users:before { content: '👥'; } /* '\1f465' */ +.icon-floppy:before { content: '💾'; } /* '\1f4be' */ +.icon-folder-empty:before { content: '📁'; } /* '\1f4c1' */ +.icon-folder-open-empty:before { content: '📂'; } /* '\1f4c2' */ +.icon-clippy:before { content: '📋'; } /* '\1f4cb' */ +.icon-book:before { content: '📒'; } /* '\1f4d2' */ +.icon-search:before { content: '🔍'; } /* '\1f50d' */ +.icon-keyhole-circled:before { content: '🔐'; } /* '\1f510' */ +.icon-key:before { content: '🔑'; } /* '\1f511' */ +.icon-lock:before { content: '🔒'; } /* '\1f512' */ +.icon-lock-open-alt:before { content: '🔓'; } /* '\1f513' */ +.icon-tag:before { content: '🔖'; } /* '\1f516' */ +.icon-wrench:before { content: '🔧'; } /* '\1f527' */ +.icon-pencil:before { content: '🖉'; } /* '\1f589' */ +.icon-pencil-squared:before { content: '🖊'; } /* '\1f58a' */ +.icon-edit:before { content: '🖋'; } /* '\1f58b' */ +.icon-folder:before { content: '🗀'; } /* '\1f5c0' */ +.icon-folder-open:before { content: '🗁'; } /* '\1f5c1' */ +.icon-doc:before { content: '🗅'; } /* '\1f5c5' */ +.icon-doc-text:before { content: '🗈'; } /* '\1f5c8' */ +.icon-trashcan:before { content: '🗑'; } /* '\1f5d1' */ +.icon-arrows-cw:before { content: '🗘'; } /* '\1f5d8' */ +.icon-comment:before { content: '🗩'; } /* '\1f5e9' */ +.icon-comment-discussion:before { content: '🗪'; } /* '\1f5ea' */ +.icon-cancel:before { content: '🗴'; } /* '\1f5f4' */ +.icon-cancel-circled:before { content: '🗵'; } /* '\1f5f5' */ +.icon-ok:before { content: '🗸'; } /* '\1f5f8' */ +.icon-ok-circled:before { content: '🗹'; } /* '\1f5f9' */ +.icon-block:before { content: '🚫'; } /* '\1f6ab' */ +.icon-tools:before { content: '🛠'; } /* '\1f6e0' */ \ No newline at end of file diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/font/kallithea.eot Binary file kallithea/public/fontello/font/kallithea.eot has changed diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/font/kallithea.svg --- a/kallithea/public/fontello/font/kallithea.svg Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/fontello/font/kallithea.svg Sun Sep 06 23:36:05 2015 +0200 @@ -6,98 +6,65 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -107,6 +74,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/font/kallithea.ttf Binary file kallithea/public/fontello/font/kallithea.ttf has changed diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/fontello/font/kallithea.woff Binary file kallithea/public/fontello/font/kallithea.woff has changed diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/js/base.js --- a/kallithea/public/js/base.js Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/js/base.js Sun Sep 06 23:36:05 2015 +0200 @@ -137,8 +137,7 @@ * Usage pyroutes.url('mark_error_fixed',{"error_id":error_id}) // /mark_error_fixed/ */ var pyroutes = (function() { - // access global map defined in special file pyroutes - var matchlist = PROUTES_MAP; + var matchlist = {}; var sprintf = (function() { function get_type(variable) { return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase(); @@ -298,7 +297,7 @@ } var keys = []; for (var i=0; i < req_params.length; i++) { - keys.push(req_params[i]) + keys.push(req_params[i]); } matchlist[route_name] = [ unescape(route_tmpl), @@ -372,7 +371,6 @@ .fail(function(jqXHR, textStatus, errorThrown) { if (textStatus == "abort") return; - console.log('Ajax failure: ' + textStatus); $target.html('ERROR: {0}'.format(textStatus)); $target.css('opacity','1.0'); }) @@ -430,7 +428,7 @@ _show_tooltip(e, _TM['loading ...']); var url = pyroutes.url('changeset_info', {"repo_name": repo_name, "revision": rid}); ajaxGET(url, function(json){ - $target.addClass('tooltip') + $target.addClass('tooltip'); _show_tooltip(e, json['message']); _activate_tooltip($target); }); @@ -441,18 +439,17 @@ var _onSuccessFollow = function(target){ var $target = $(target); var $f_cnt = $('#current_followers_count'); - if($target.hasClass('follow')){ - $target.attr('class', 'following'); - $target.attr('title', _TM['Stop following this repository']); - if($f_cnt.html()){ + if ($target.hasClass('follow')) { + $target.removeClass('follow').addClass('following'); + $target.prop('title', _TM['Stop following this repository']); + if ($f_cnt.html()) { var cnt = Number($f_cnt.html())+1; $f_cnt.html(cnt); } - } - else{ - $target.attr('class', 'follow'); - $target.attr('title', _TM['Start following this repository']); - if($f_cnt.html()){ + } else { + $target.removeClass('following').addClass('follow'); + $target.prop('title', _TM['Start following this repository']); + if ($f_cnt.html()) { var cnt = Number($f_cnt.html())-1; $f_cnt.html(cnt); } @@ -499,7 +496,7 @@ var _init_tooltip = function(){ var $tipBox = $('#tip-box'); if(!$tipBox.length){ - $tipBox = $('
') + $tipBox = $('
'); $(document.body).append($tipBox); } @@ -527,7 +524,7 @@ // save org title $el.attr('tt_title', tipText); // reset title to not show org tooltips - $el.attr('title', ''); + $el.prop('title', ''); var $tipBox = $('#tip-box'); if (safe) { @@ -551,7 +548,7 @@ var $tipBox = $('#tip-box'); $tipBox.hide(); var el = e.currentTarget; - $(el).attr('title', $(el).attr('tt_title')); + $(el).prop('title', $(el).attr('tt_title')); }; /** @@ -609,258 +606,168 @@ } })(); -/* return jQuery expression with a tr with body in 3rd column and class cls and id named after the body */ -var _table_tr = function(cls, body){ - // like:
... - // except new inlines which are different ... - var comment_id = ($(body).attr('id') || 'comment-new').split('comment-')[1]; - var tr_id = 'comment-tr-{0}'.format(comment_id); - return $((''+ - ''+ - ''+ - '{2}'+ - '').format(tr_id, cls, body)); -}; - -/** return jQuery expression with new inline form based on template **/ -var _createInlineForm = function(parent_tr, f_path, line) { - var $tmpl = $('#comment-inline-form-template').html().format(f_path, line); - var $form = _table_tr('comment-form-inline', $tmpl) - - // create event for hide button - $form.find('.hide-inline-form').click(function(e) { - var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode; - if($(newtr).next().hasClass('inline-comments-button')){ - $(newtr).next().show(); - } - $(newtr).remove(); - $(parent_tr).removeClass('form-open'); - $(parent_tr).removeClass('hl-comment'); - }); - - return $form -}; /** - * Inject inline comment for an given TR. This tr should always be a .line . - * The form will be inject after any comments. + * Comment handling */ -var injectInlineForm = function(tr){ - var $tr = $(tr); - if(!$tr.hasClass('line')){ - return - } - var submit_url = AJAX_COMMENT_URL; - var $td = $tr.find('.code'); - if($tr.hasClass('form-open') || $tr.hasClass('context') || $td.hasClass('no-comment')){ - return + +// move comments to their right location, inside new trs +function move_comments($anchorcomments) { + $anchorcomments.each(function(i, anchorcomment) { + var $anchorcomment = $(anchorcomment); + var target_id = $anchorcomment.data('target-id'); + var $comment_div = _get_add_comment_div(target_id); + var f_path = $anchorcomment.data('f_path'); + var line_no = $anchorcomment.data('line_no'); + if ($comment_div[0]) { + $comment_div.append($anchorcomment.children()); + _comment_div_append_add($comment_div, f_path, line_no); + } else { + $anchorcomment.before("Comment to {0} line {1} which is outside the diff context:".format(f_path || '?', line_no || '?')); + } + }); + linkInlineComments($('.firstlink'), $('.comment:first-child')); +} + +// comment bubble was clicked - insert new tr and show form +function show_comment_form($bubble) { + var children = $bubble.closest('tr.line').children('[id]'); + var line_td_id = children[children.length - 1].id; + var $comment_div = _get_add_comment_div(line_td_id); + var f_path = $bubble.closest('div.full_f_path').data('f_path'); + var parts = line_td_id.split('_'); + var line_no = parts[parts.length-1]; + comment_div_state($comment_div, f_path, line_no, true); +} + +// return comment div for target_id - add it if it doesn't exist yet +function _get_add_comment_div(target_id) { + var comments_box_id = 'comments-' + target_id; + var $comments_box = $('#' + comments_box_id); + if (!$comments_box.length) { + var html = ''.format(comments_box_id); + $('#' + target_id).closest('tr').after(html); + $comments_box = $('#' + comments_box_id); } - $tr.addClass('form-open hl-comment'); - var $node = $tr.parent().parent().parent().find('.full_f_path'); - var f_path = $node.attr('path'); - var lineno = _getLineNo(tr); - var $form = _createInlineForm(tr, f_path, lineno, submit_url); + return $comments_box; +} - var $parent = $tr; - while ($parent.next().hasClass('inline-comments')){ - var $parent = $parent.next(); +// set $comment_div state - showing or not showing form and Add button +function comment_div_state($comment_div, f_path, line_no, show_form) { + var $forms = $comment_div.children('.comment-inline-form'); + var $buttons = $comment_div.children('.add-comment'); + var $comments = $comment_div.children('.comment'); + if (show_form) { + if (!$forms.length) { + _comment_div_append_form($comment_div, f_path, line_no); + } + } else { + $forms.remove(); + } + $buttons.remove(); + if ($comments.length && !show_form) { + _comment_div_append_add($comment_div, f_path, line_no); } - $form.insertAfter($parent); - var $overlay = $form.find('.submitting-overlay'); - var $inlineform = $form.find('.inline-form'); +} - $form.submit(function(e){ +// append an Add button to $comment_div and hook it up to show form +function _comment_div_append_add($comment_div, f_path, line_no) { + var addlabel = TRANSLATION_MAP['Add Another Comment']; + var $add = $('
{0}
'.format(addlabel)); + $comment_div.append($add); + $add.click(function(e) { + comment_div_state($comment_div, f_path, line_no, true); + }); +} + +// append a comment form to $comment_div +function _comment_div_append_form($comment_div, f_path, line_no) { + var $form_div = $($('#comment-inline-form-template').html().format(f_path, line_no)) + .addClass('comment-inline-form'); + $comment_div.append($form_div); + var $form = $comment_div.find("form"); + + $form.submit(function(e) { e.preventDefault(); - if(lineno === undefined){ - alert('Error submitting, line ' + lineno + ' not found.'); - return; - } - if(f_path === undefined){ - alert('Error submitting, file path ' + f_path + ' not found.'); + var text = $('#text_'+line_no).val(); + if (!text){ return; } - var text = $('#text_'+lineno).val(); - if(text == ""){ - return; - } + $form.find('.submitting-overlay').show(); - $overlay.show(); - - var success = function(json_data){ - $tr.removeClass('form-open'); - $form.remove(); - _renderInlineComment(json_data); + var success = function(json_data) { + $comment_div.append(json_data['rendered_text']); + comment_div_state($comment_div, f_path, line_no, false); + linkInlineComments($('.firstlink'), $('.comment:first-child')); }; var postData = { - 'text': text, - 'f_path': f_path, - 'line': lineno + 'text': text, + 'f_path': f_path, + 'line': line_no }; - ajaxPOST(submit_url, postData, success); + ajaxPOST(AJAX_COMMENT_URL, postData, success); }); - $('#preview-btn_'+lineno).click(function(e){ - var text = $('#text_'+lineno).val(); + $('#preview-btn_'+line_no).click(function(e){ + var text = $('#text_'+line_no).val(); if(!text){ return } - $('#preview-box_'+lineno).addClass('unloaded'); - $('#preview-box_'+lineno).html(_TM['Loading ...']); - $('#edit-container_'+lineno).hide(); - $('#edit-btn_'+lineno).show(); - $('#preview-container_'+lineno).show(); - $('#preview-btn_'+lineno).hide(); + $('#preview-box_'+line_no).addClass('unloaded'); + $('#preview-box_'+line_no).html(_TM['Loading ...']); + $('#edit-container_'+line_no).hide(); + $('#edit-btn_'+line_no).show(); + $('#preview-container_'+line_no).show(); + $('#preview-btn_'+line_no).hide(); var url = pyroutes.url('changeset_comment_preview', {'repo_name': REPO_NAME}); var post_data = {'text': text}; - ajaxPOST(url, post_data, function(html){ - $('#preview-box_'+lineno).html(html); - $('#preview-box_'+lineno).removeClass('unloaded'); + ajaxPOST(url, post_data, function(html) { + $('#preview-box_'+line_no).html(html); + $('#preview-box_'+line_no).removeClass('unloaded'); }) }) - $('#edit-btn_'+lineno).click(function(e){ - $('#edit-container_'+lineno).show(); - $('#edit-btn_'+lineno).hide(); - $('#preview-container_'+lineno).hide(); - $('#preview-btn_'+lineno).show(); + $('#edit-btn_'+line_no).click(function(e) { + $('#edit-container_'+line_no).show(); + $('#edit-btn_'+line_no).hide(); + $('#preview-container_'+line_no).hide(); + $('#preview-btn_'+line_no).show(); }) - setTimeout(function(){ + // create event for hide button + $form.find('.hide-inline-form').click(function(e) { + comment_div_state($comment_div, f_path, line_no, false); + }); + + setTimeout(function() { // callbacks tooltip_activate(); - MentionsAutoComplete('text_'+lineno, 'mentions_container_'+lineno, - _USERS_AC_DATA, _GROUPS_AC_DATA); - $('#text_'+lineno).focus(); - },10) -}; - -var deleteComment = function(comment_id){ - var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id); - var postData = {'_method':'delete'}; - var success = function(o){ - var $deleted = $('#comment-tr-'+comment_id); - var $prev = $deleted.prev('tr'); - while ($prev.hasClass('inline-comments')){ - $prev = $prev.prev('tr'); - } - $deleted.remove(); - _placeAddButton($prev); - } - ajaxPOST(url,postData,success); + MentionsAutoComplete($('#text_'+line_no), $('#mentions_container_'+line_no), + _USERS_AC_DATA); + $('#text_'+line_no).focus(); + }, 10); } -var _getLineNo = function(tr) { - var line; - var o = $(tr).children()[0].id.split('_'); - var n = $(tr).children()[1].id.split('_'); - if (n.length >= 2) { - line = n[n.length-1]; - } else if (o.length >= 2) { - line = o[o.length-1]; - } - - return line -}; - -var _placeAddButton = function($line_tr){ - var $tr = $line_tr; - while ($tr.next().hasClass('inline-comments')){ - $tr.find('.add-comment').remove(); - $tr = $tr.next(); +function deleteComment(comment_id) { + var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__', comment_id); + var postData = {'_method': 'delete'}; + var success = function(o) { + $('#comment-'+comment_id).remove(); + // Ignore that this might leave a stray Add button (or have a pending form with another comment) ... } - $tr.find('.add-comment').remove(); - var label = TRANSLATION_MAP['Add Another Comment']; - var $html_el = $('
{0}
'.format(label)); - $html_el.click(function(e) { - injectInlineForm($line_tr); - }); - $tr.find('.comment').after($html_el); -}; - -/** - * Places the inline comment into the changeset block in proper line position - */ -var _placeInline = function(target_id, lineno, html){ - var $td = $("#{0}_{1}".format(target_id, lineno)); - if (!$td.length){ - return false; - } - - // check if there are comments already ! - var $line_tr = $td.parent(); // the tr - var $after_tr = $line_tr; - while ($after_tr.next().hasClass('inline-comments')){ - $after_tr = $after_tr.next(); - } - // put in the comment at the bottom - var $tr = _table_tr('inline-comments', html) - $tr.find('div.comment').addClass('inline-comment'); - $after_tr.after($tr); - - // scan nodes, and attach add button to last one - _placeAddButton($line_tr); - return true; + ajaxPOST(url, postData, success); } -/** - * make a single inline comment and place it inside - */ -var _renderInlineComment = function(json_data){ - var html = json_data['rendered_text']; - var lineno = json_data['line_no']; - var target_id = json_data['target_id']; - return _placeInline(target_id, lineno, html); -} - -/** - * Iterates over all the inlines, and places them inside proper blocks of data - */ -var renderInlineComments = function(file_comments){ - for (var f in file_comments){ - // holding all comments for a FILE - var box = file_comments[f]; - - var target_id = $(box).attr('target_id'); - // actual comments with line numbers - var comments = box.children; - var obsolete_comments = []; - for(var i=0; i 0) { - $(firstlinks).html('First comment'.format($comments.attr('id'))); + $firstlinks.html('First comment'.format($comments.prop('id'))); } if ($comments.length <= 1) { return; @@ -869,18 +776,17 @@ $comments.each(function(i, e){ var prev = ''; if (i > 0){ - var prev_anchor = YUD.getAttribute(comments.item(i-1),'id'); + var prev_anchor = $($comments.get(i-1)).prop('id'); prev = 'Previous comment'.format(prev_anchor); } var next = ''; - if (i+1 < comments.length){ - var next_anchor = YUD.getAttribute(comments.item(i+1),'id'); + if (i+1 < $comments.length){ + var next_anchor = $($comments.get(i+1)).prop('id'); next = 'Next comment'.format(next_anchor); } - var $div = $(('
'+ - '
{0}
'+ - '
{1}
').format(prev, next)); - $div.prependTo(this); + $(this).find('.comment-prev-next-links').html( + '
{0}
'.format(prev) + + '
{0}
'.format(next)); }); } @@ -897,7 +803,7 @@ else{ window.location = current_url; } - }) + }); var $node_filter = $('#node_filter'); @@ -920,7 +826,7 @@ } }) .fail(function() { - console.log('failed to load'); + console.log('fileBrowserListeners initFilter failed to load'); }) ; } @@ -935,7 +841,7 @@ var matches_max = 20; if (query != ""){ for(var i=0;i{0}".format(n.substring(pos,pos+query.length)) - +n.substring(pos+query.length) + + "{0}".format(n.substring(pos,pos+query.length)) + + n.substring(pos+query.length); var new_url = url_base.replace('__FPATH__',n); match.push('{2}'.format(t,new_url,n_hl)); } @@ -1070,7 +976,7 @@ $('body').prepend($hl_div); } - $hl_div.append($('').html(_TM['Selection link']).attr('href', location.href.substring(0, location.href.indexOf('#')) + '#L' + ranges[0] + '-'+ranges[1])); + $hl_div.append($('').html(_TM['Selection link']).prop('href', location.href.substring(0, location.href.indexOf('#')) + '#L' + ranges[0] + '-'+ranges[1])); var xy = $(till).offset(); $hl_div.css('top', (xy.top + yoffset) + 'px').css('left', xy.left + 'px'); $hl_div.show(); @@ -1109,336 +1015,244 @@ ajaxPOST(sUrl, postData, success, failure); }; -/** MEMBERS AUTOCOMPLETE WIDGET **/ +/** + * Autocomplete functionality + */ + +// Custom search function for the DataSource of users +var autocompleteMatchUsers = function (sQuery, myUsers) { + // Case insensitive matching + var query = sQuery.toLowerCase(); + var i = 0; + var l = myUsers.length; + var matches = []; -var _MembersAutoComplete = function (divid, cont, users_list, groups_list) { - var myUsers = users_list; - var myGroups = groups_list; + // Match against each name of each contact + for (; i < l; i++) { + var contact = myUsers[i]; + if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || + ((contact.lname+"").toLowerCase().indexOf(query) > -1) || + ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { + matches[matches.length] = contact; + } + } + return matches; +}; + +// Custom search function for the DataSource of userGroups +var autocompleteMatchGroups = function (sQuery, myGroups) { + // Case insensitive matching + var query = sQuery.toLowerCase(); + var i = 0; + var l = myGroups.length; + var matches = []; - // Define a custom search function for the DataSource of users - var matchUsers = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; + // Match against each name of each group + for (; i < l; i++) { + var matched_group = myGroups[i]; + if (matched_group.grname.toLowerCase().indexOf(query) > -1) { + matches[matches.length] = matched_group; + } + } + return matches; +}; + +// Helper highlight function for the formatter +var autocompleteHighlightMatch = function (full, snippet, matchindex) { + return full.substring(0, matchindex) + + "" + + full.substr(matchindex, snippet.length) + + "" + full.substring(matchindex + snippet.length); +}; - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches; - }; +var gravatar = function(link, size, cssclass) { + var elem = ''.format(size, link, cssclass); + if (!link) { + elem = ''.format(size, cssclass); + } + return elem; +} + +var autocompleteGravatar = function(res, link, size, group) { + var elem = gravatar(link, size, "perm-gravatar-ac"); + if (group !== undefined) { + elem = ''; + } + return '
{0}{1}
'.format(elem, res); +} + +// Custom formatter to highlight the matching letters +var autocompleteFormatter = function (oResultData, sQuery, sResultMatch) { + var query = sQuery.toLowerCase(); + + // group + if (oResultData.grname != undefined) { + var grname = oResultData.grname; + var grmembers = oResultData.grmembers; + var grnameMatchIndex = grname.toLowerCase().indexOf(query); + var grprefix = "{0}: ".format(_TM['Group']); + var grsuffix = " ({0} {1})".format(grmembers, _TM['members']); - // Define a custom search function for the DataSource of userGroups - var matchGroups = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myGroups.length; - var matches = []; + if (grnameMatchIndex > -1) { + return autocompleteGravatar(grprefix + autocompleteHighlightMatch(grname, query, grnameMatchIndex) + grsuffix, null, null, true); + } + return autocompleteGravatar(grprefix + oResultData.grname + grsuffix, null, null, true); + + // users + } else if (oResultData.nname != undefined) { + var fname = oResultData.fname || ""; + var lname = oResultData.lname || ""; + var nname = oResultData.nname; + + // Guard against null value + var fnameMatchIndex = fname.toLowerCase().indexOf(query), + lnameMatchIndex = lname.toLowerCase().indexOf(query), + nnameMatchIndex = nname.toLowerCase().indexOf(query), + displayfname, displaylname, displaynname, displayname; - // Match against each name of each contact - for (; i < l; i++) { - var matched_group = myGroups[i]; - if (matched_group.grname.toLowerCase().indexOf(query) > -1) { - matches[matches.length] = matched_group; - } - } - return matches; - }; + if (fnameMatchIndex > -1) { + displayfname = autocompleteHighlightMatch(fname, query, fnameMatchIndex); + } else { + displayfname = fname; + } + + if (lnameMatchIndex > -1) { + displaylname = autocompleteHighlightMatch(lname, query, lnameMatchIndex); + } else { + displaylname = lname; + } + + if (nnameMatchIndex > -1) { + displaynname = autocompleteHighlightMatch(nname, query, nnameMatchIndex); + } else { + displaynname = nname; + } + + displayname = displaynname; + if (displayfname && displaylname) { + displayname = "{0} {1} ({2})".format(displayfname, displaylname, displayname); + } - //match all - var matchAll = function (sQuery) { - var u = matchUsers(sQuery); - var g = matchGroups(sQuery); - return u.concat(g); - }; + return autocompleteGravatar(displayname, oResultData.gravatar_lnk, oResultData.gravatar_size); + } else { + return ''; + } +}; + +// Generate a basic autocomplete instance that can be tweaked further by the caller +var autocompleteCreate = function ($inputElement, $container, matchFunc) { + var datasource = new YAHOO.util.FunctionDataSource(matchFunc); + + var autocomplete = new YAHOO.widget.AutoComplete($inputElement[0], $container[0], datasource); + autocomplete.useShadow = false; + autocomplete.resultTypeList = false; + autocomplete.animVert = false; + autocomplete.animHoriz = false; + autocomplete.animSpeed = 0.1; + autocomplete.formatResult = autocompleteFormatter; + + return autocomplete; +} + +var SimpleUserAutoComplete = function ($inputElement, $container, users_list) { - // DataScheme for members - var memberDS = new YAHOO.util.FunctionDataSource(matchAll); - memberDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk", "gravatar_size"] + var matchUsers = function (sQuery) { + return autocompleteMatchUsers(sQuery, users_list); + } + + var userAC = autocompleteCreate($inputElement, $container, matchUsers); + + // Handler for selection of an entry + var itemSelectHandler = function (sType, aArgs) { + var myAC = aArgs[0]; // reference back to the AC instance + var elLI = aArgs[1]; // reference to the selected LI element + var oData = aArgs[2]; // object literal of selected item's result data + myAC.getInputEl().value = oData.nname; }; + userAC.itemSelectEvent.subscribe(itemSelectHandler); +} - // DataScheme for owner - var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); - ownerDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "gravatar_lnk", "gravatar_size"] +var MembersAutoComplete = function ($inputElement, $container, users_list, groups_list) { + + var matchAll = function (sQuery) { + var u = autocompleteMatchUsers(sQuery, users_list); + var g = autocompleteMatchGroups(sQuery, groups_list); + return u.concat(g); }; - // Instantiate AutoComplete for perms - var membersAC = new YAHOO.widget.AutoComplete(divid, cont, memberDS); - membersAC.useShadow = false; - membersAC.resultTypeList = false; - membersAC.animVert = false; - membersAC.animHoriz = false; - membersAC.animSpeed = 0.1; - - // Instantiate AutoComplete for owner - var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS); - ownerAC.useShadow = false; - ownerAC.resultTypeList = false; - ownerAC.animVert = false; - ownerAC.animHoriz = false; - ownerAC.animSpeed = 0.1; - - // Helper highlight function for the formatter - var highlightMatch = function (full, snippet, matchindex) { - return full.substring(0, matchindex) - + "" - + full.substr(matchindex, snippet.length) - + "" + full.substring(matchindex + snippet.length); - }; - - // Custom formatter to highlight the matching letters - var custom_formatter = function (oResultData, sQuery, sResultMatch) { - var query = sQuery.toLowerCase(); - var _gravatar = function(res, em, size, group){ - var elem = 'gravatar'.format(size, em); - if (!em) { - elem = ''.format(size); - } - if (group !== undefined){ - elem = '' - } - var tmpl = '
{0}{1}
' - return tmpl.format(elem,res) - } - // group - if (oResultData.grname != undefined) { - var grname = oResultData.grname; - var grmembers = oResultData.grmembers; - var grnameMatchIndex = grname.toLowerCase().indexOf(query); - var grprefix = "{0}: ".format(_TM['Group']); - var grsuffix = " (" + grmembers + " )"; - var grsuffix = " ({0} {1})".format(grmembers, _TM['members']); - - if (grnameMatchIndex > -1) { - return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,null,true); - } - return _gravatar(grprefix + oResultData.grname + grsuffix, null, null, true); - // Users - } else if (oResultData.nname != undefined) { - var fname = oResultData.fname || ""; - var lname = oResultData.lname || ""; - var nname = oResultData.nname; + var membersAC = autocompleteCreate($inputElement, $container, matchAll); - // Guard against null value - var fnameMatchIndex = fname.toLowerCase().indexOf(query), - lnameMatchIndex = lname.toLowerCase().indexOf(query), - nnameMatchIndex = nname.toLowerCase().indexOf(query), - displayfname, displaylname, displaynname; - - if (fnameMatchIndex > -1) { - displayfname = highlightMatch(fname, query, fnameMatchIndex); - } else { - displayfname = fname; - } - - if (lnameMatchIndex > -1) { - displaylname = highlightMatch(lname, query, lnameMatchIndex); - } else { - displaylname = lname; - } - - if (nnameMatchIndex > -1) { - displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")"; - } else { - displaynname = nname ? "(" + nname + ")" : ""; - } - - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); - } else { - return ''; - } - }; - membersAC.formatResult = custom_formatter; - ownerAC.formatResult = custom_formatter; - - var myHandler = function (sType, aArgs) { - var nextId = divid.split('perm_new_member_name_')[1]; - var myAC = aArgs[0]; // reference back to the AC instance - var elLI = aArgs[1]; // reference to the selected LI element - var oData = aArgs[2]; // object literal of selected item's result data - //fill the autocomplete with value - if (oData.nname != undefined) { - //users - myAC.getInputEl().value = oData.nname; - $('#perm_new_member_type_'+nextId).val('user'); - } else { - //groups - myAC.getInputEl().value = oData.grname; - $('#perm_new_member_type_'+nextId).val('users_group'); - } - }; - - membersAC.itemSelectEvent.subscribe(myHandler); - if(ownerAC.itemSelectEvent){ - ownerAC.itemSelectEvent.subscribe(myHandler); - } - - return { - memberDS: memberDS, - ownerDS: ownerDS, - membersAC: membersAC, - ownerAC: ownerAC + // Handler for selection of an entry + var itemSelectHandler = function (sType, aArgs) { + var nextId = $inputElement.prop('id').split('perm_new_member_name_')[1]; + var myAC = aArgs[0]; // reference back to the AC instance + var elLI = aArgs[1]; // reference to the selected LI element + var oData = aArgs[2]; // object literal of selected item's result data + //fill the autocomplete with value + if (oData.nname != undefined) { + //users + myAC.getInputEl().value = oData.nname; + $('#perm_new_member_type_'+nextId).val('user'); + } else { + //groups + myAC.getInputEl().value = oData.grname; + $('#perm_new_member_type_'+nextId).val('users_group'); + } }; + membersAC.itemSelectEvent.subscribe(itemSelectHandler); } -var MentionsAutoComplete = function (divid, cont, users_list, groups_list) { - var myUsers = users_list; - var myGroups = groups_list; +var MentionsAutoComplete = function ($inputElement, $container, users_list) { - // Define a custom search function for the DataSource of users var matchUsers = function (sQuery) { var org_sQuery = sQuery; if(this.mentionQuery == null){ return [] } sQuery = this.mentionQuery; - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches - }; - - //match all - var matchAll = function (sQuery) { - return matchUsers(sQuery); - }; - - // DataScheme for owner - var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); - - ownerDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "gravatar_lnk", "gravatar_size"] - }; - - // Instantiate AutoComplete for mentions - var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS); - ownerAC.useShadow = false; - ownerAC.resultTypeList = false; - ownerAC.suppressInputUpdate = true; - ownerAC.animVert = false; - ownerAC.animHoriz = false; - ownerAC.animSpeed = 0.1; - - // Helper highlight function for the formatter - var highlightMatch = function (full, snippet, matchindex) { - return full.substring(0, matchindex) - + "" - + full.substr(matchindex, snippet.length) - + "" + full.substring(matchindex + snippet.length); - }; + return autocompleteMatchUsers(sQuery, users_list); + } - // Custom formatter to highlight the matching letters - ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) { - var org_sQuery = sQuery; - if(this.dataSource.mentionQuery != null){ - sQuery = this.dataSource.mentionQuery; - } - - var query = sQuery.toLowerCase(); - var _gravatar = function(res, em, size, group){ - var elem = 'gravatar'.format(size, em); - if (!em) { - elem = ''.format(size); - } - if (group !== undefined){ - elem = '' - } - var tmpl = '
{0}{1}
' - return tmpl.format(elem,res) - } - if (oResultData.nname != undefined) { - var fname = oResultData.fname || ""; - var lname = oResultData.lname || ""; - var nname = oResultData.nname; + var mentionsAC = autocompleteCreate($inputElement, $container, matchUsers); + mentionsAC.suppressInputUpdate = true; + // Overwrite formatResult to take into account mentionQuery + mentionsAC.formatResult = function (oResultData, sQuery, sResultMatch) { + var org_sQuery = sQuery; + if (this.dataSource.mentionQuery != null) { + sQuery = this.dataSource.mentionQuery; + } + return autocompleteFormatter(oResultData, sQuery, sResultMatch); + } - // Guard against null value - var fnameMatchIndex = fname.toLowerCase().indexOf(query), - lnameMatchIndex = lname.toLowerCase().indexOf(query), - nnameMatchIndex = nname.toLowerCase().indexOf(query), - displayfname, displaylname, displaynname; - - if (fnameMatchIndex > -1) { - displayfname = highlightMatch(fname, query, fnameMatchIndex); - } else { - displayfname = fname; - } - - if (lnameMatchIndex > -1) { - displaylname = highlightMatch(lname, query, lnameMatchIndex); - } else { - displaylname = lname; - } - - if (nnameMatchIndex > -1) { - displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")"; - } else { - displaynname = nname ? "(" + nname + ")" : ""; - } - - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); - } else { - return ''; - } - }; - - if(ownerAC.itemSelectEvent){ - ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) { + // Handler for selection of an entry + if(mentionsAC.itemSelectEvent){ + mentionsAC.itemSelectEvent.subscribe(function (sType, aArgs) { var myAC = aArgs[0]; // reference back to the AC instance var elLI = aArgs[1]; // reference to the selected LI element var oData = aArgs[2]; // object literal of selected item's result data - //fill the autocomplete with value - if (oData.nname != undefined) { - //users - //Replace the mention name with replaced - var re = new RegExp(); - var org = myAC.getInputEl().value; - var chunks = myAC.dataSource.chunks - // replace middle chunk(the search term) with actuall match - chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery, - '@'+oData.nname+' '); - myAC.getInputEl().value = chunks.join('') - myAC.getInputEl().focus(); // Y U NO WORK !? - } else { - //groups - myAC.getInputEl().value = oData.grname; - $('#perm_new_member_type').val('users_group'); - } + //Replace the mention name with replaced + var re = new RegExp(); + var org = myAC.getInputEl().value; + var chunks = myAC.dataSource.chunks + // replace middle chunk(the search term) with actuall match + chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery, + '@'+oData.nname+' '); + myAC.getInputEl().value = chunks.join(''); + myAC.getInputEl().focus(); // Y U NO WORK !? }); } // in this keybuffer we will gather current value of search ! // since we need to get this just when someone does `@` then we do the // search - ownerAC.dataSource.chunks = []; - ownerAC.dataSource.mentionQuery = null; + mentionsAC.dataSource.chunks = []; + mentionsAC.dataSource.mentionQuery = null; - ownerAC.get_mention = function(msg, max_pos) { + mentionsAC.get_mention = function(msg, max_pos) { var org = msg; // Must match utils2.py MENTIONS_REGEX. // Only matching on string up to cursor, so it must end with $ - var re = new RegExp('(?:^|[^a-zA-Z0-9])@([a-zA-Z0-9][-_.a-zA-Z0-9]*[a-zA-Z0-9])$') + var re = new RegExp('(?:^|[^a-zA-Z0-9])@([a-zA-Z0-9][-_.a-zA-Z0-9]*[a-zA-Z0-9])$'); var chunks = []; // cut first chunk until current pos @@ -1446,9 +1260,9 @@ var at_pos = Math.max(0,to_max.lastIndexOf('@')-1); var msg2 = to_max.substr(at_pos); - chunks.push(org.substr(0,at_pos))// prefix chunk - chunks.push(msg2) // search chunk - chunks.push(org.substr(max_pos)) // postfix chunk + chunks.push(org.substr(0,at_pos)); // prefix chunk + chunks.push(msg2); // search chunk + chunks.push(org.substr(max_pos)); // postfix chunk // clean up msg2 for filtering and regex match var msg2 = msg2.lstrip(' ').lstrip('\n'); @@ -1460,27 +1274,30 @@ return [null, null]; }; - var $divid = $('#'+divid); - $divid.keyup(function(e){ - var currentMessage = $divid.val(); - var currentCaretPosition = $divid[0].selectionStart; + $inputElement.keyup(function(e){ + var currentMessage = $inputElement.val(); + var currentCaretPosition = $inputElement[0].selectionStart; - var unam = ownerAC.get_mention(currentMessage, currentCaretPosition); + var unam = mentionsAC.get_mention(currentMessage, currentCaretPosition); var curr_search = null; if(unam[0]){ curr_search = unam[0]; } - ownerAC.dataSource.chunks = unam[1]; - ownerAC.dataSource.mentionQuery = curr_search; + mentionsAC.dataSource.chunks = unam[1]; + mentionsAC.dataSource.mentionQuery = curr_search; }); } var addReviewMember = function(id,fname,lname,nname,gravatar_link,gravatar_size){ - var displayname = "{0} {1} ({2})".format(fname, lname, nname); - var gravatarelm = 'gravatar'.format(gravatar_size, gravatar_link); - if (!gravatar_link) - gravatarelm = ''.format(gravatar_size); + var displayname = nname; + if ((fname != "") && (lname != "")) { + displayname = "{0} {1} ({2})".format(fname, lname, nname); + } + var gravatarelm = gravatar(gravatar_link, gravatar_size, ""); + // WARNING: the HTML below is duplicate with + // kallithea/templates/pullrequests/pullrequest_show.html + // If you change something here it should be reflected in the template too. var element = ( '
  • \n'+ '
    \n'+ @@ -1510,153 +1327,30 @@ var removeReviewMember = function(reviewer_id, repo_name, pull_request_id){ var $li = $('#reviewer_{0}'.format(reviewer_id)); $li.find('div div').css("text-decoration", "line-through"); - $li.find('input').attr('name', 'review_members_removed'); + $li.find('input').prop('name', 'review_members_removed'); $li.find('.reviewer_member_remove').replaceWith(' (remove not saved)'); } -/* activate auto completion of users and groups ... but only used for users as PR reviewers */ -var PullRequestAutoComplete = function (divid, cont, users_list, groups_list) { - var myUsers = users_list; - var myGroups = groups_list; - - // Define a custom search function for the DataSource of users - var matchUsers = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches; - }; +/* activate auto completion of users as PR reviewers */ +var PullRequestAutoComplete = function ($inputElement, $container, users_list) { - // Define a custom search function for the DataSource of userGroups - var matchGroups = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myGroups.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - matched_group = myGroups[i]; - if (matched_group.grname.toLowerCase().indexOf(query) > -1) { - matches[matches.length] = matched_group; - } - } - return matches; - }; - - //match all - var matchAll = function (sQuery) { - return matchUsers(sQuery); - }; - - // DataScheme for owner - var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); - - ownerDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "gravatar_lnk", "gravatar_size"] + var matchUsers = function (sQuery) { + return autocompleteMatchUsers(sQuery, users_list); }; - // Instantiate AutoComplete for mentions - var reviewerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS); - reviewerAC.useShadow = false; - reviewerAC.resultTypeList = false; + var reviewerAC = autocompleteCreate($inputElement, $container, matchUsers); reviewerAC.suppressInputUpdate = true; - reviewerAC.animVert = false; - reviewerAC.animHoriz = false; - reviewerAC.animSpeed = 0.1; - - // Helper highlight function for the formatter - var highlightMatch = function (full, snippet, matchindex) { - return full.substring(0, matchindex) - + "" - + full.substr(matchindex, snippet.length) - + "" + full.substring(matchindex + snippet.length); - }; - - // Custom formatter to highlight the matching letters - reviewerAC.formatResult = function (oResultData, sQuery, sResultMatch) { - var org_sQuery = sQuery; - if(this.dataSource.mentionQuery != null){ - sQuery = this.dataSource.mentionQuery; - } - var query = sQuery.toLowerCase(); - var _gravatar = function(res, em, size, group){ - var elem = 'gravatar'.format(size, em); - if (!em) { - elem = ''.format(size); - } - if (group !== undefined){ - elem = '' - } - var tmpl = '
    {0}{1}
    ' - return tmpl.format(elem,res) - } - if (oResultData.nname != undefined) { - var fname = oResultData.fname || ""; - var lname = oResultData.lname || ""; - var nname = oResultData.nname; - - // Guard against null value - var fnameMatchIndex = fname.toLowerCase().indexOf(query), - lnameMatchIndex = lname.toLowerCase().indexOf(query), - nnameMatchIndex = nname.toLowerCase().indexOf(query), - displayfname, displaylname, displaynname; - - if (fnameMatchIndex > -1) { - displayfname = highlightMatch(fname, query, fnameMatchIndex); - } else { - displayfname = fname; - } - - if (lnameMatchIndex > -1) { - displaylname = highlightMatch(lname, query, lnameMatchIndex); - } else { - displaylname = lname; - } - - if (nnameMatchIndex > -1) { - displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")"; - } else { - displaynname = nname ? "(" + nname + ")" : ""; - } - - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); - } else { - return ''; - } - }; - - //members cache to catch duplicates - reviewerAC.dataSource.cache = []; - // hack into select event + // Handler for selection of an entry if(reviewerAC.itemSelectEvent){ reviewerAC.itemSelectEvent.subscribe(function (sType, aArgs) { - var myAC = aArgs[0]; // reference back to the AC instance var elLI = aArgs[1]; // reference to the selected LI element var oData = aArgs[2]; // object literal of selected item's result data - //fill the autocomplete with value - if (oData.nname != undefined) { - addReviewMember(oData.id, oData.fname, oData.lname, oData.nname, - oData.gravatar_lnk, oData.gravatar_size); - myAC.dataSource.cache.push(oData.id); - $('#user').val(''); - } + addReviewMember(oData.id, oData.fname, oData.lname, oData.nname, + oData.gravatar_lnk, oData.gravatar_size); + myAC.getInputEl().value = ''; }); } } @@ -1671,14 +1365,14 @@ $menu.removeClass('hidden').addClass('active'); $(e.currentTarget).removeClass('hidden').addClass('active'); } - }) + }); $(".quick_repo_menu").mouseleave(function(e) { var $menu = $(e.currentTarget).children().first().children().first(); if($menu.hasClass('active')){ $menu.removeClass('active').addClass('hidden'); $(e.currentTarget).removeClass('active').addClass('hidden'); } - }) + }); }; @@ -1726,8 +1420,8 @@ var $last_node = $('.last_new_member').last(); // empty tr between last and add var next_id = $('.new_members').length; $last_node.before($('').append(_html.format(next_id))); - _MembersAutoComplete("perm_new_member_name_"+next_id, - "perm_container_"+next_id, users_list, groups_list); + MembersAutoComplete($("#perm_new_member_name_"+next_id), + $("#perm_container_"+next_id), users_list, groups_list); } function ajaxActionRevokePermission(url, obj_id, obj_type, field_id, extra_data) { @@ -1847,8 +1541,8 @@ var radius = parseInt(items / 2); } - var left = Math.max(1, (cur_page - (radius))) - var right = Math.min(max_page, cur_page + (radius)) + var left = Math.max(1, (cur_page - (radius))); + var right = Math.min(max_page, cur_page + (radius)); return [left, cur_page, right] }, render : function (id_base) { @@ -1971,8 +1665,8 @@ var radius = parseInt(items / 2); } - var left = Math.max(1, (cur_page - (radius))) - var right = Math.min(max_page, cur_page + (radius)) + var left = Math.max(1, (cur_page - (radius))); + var right = Math.min(max_page, cur_page + (radius)); return [left, cur_page, right] }, render : function (id_base) { @@ -2069,7 +1763,7 @@ nextPageLinkLabel: '>', previousPageLinkLabel: '<', containers:containers - }) + }); return pagi } @@ -2090,7 +1784,7 @@ if (req) { req = req.toLowerCase(); for (i = 0; i -1, + bClosed = b.text.indexOf("(closed)") > -1; + if (aClosed && !bClosed) { + return 1; + } + if (bClosed && !aClosed) { + return -1; + } + + // Put prefix matches before matches in the line + var aPos = a.text.indexOf(query.term), + bPos = b.text.indexOf(query.term); + if (aPos === 0 && bPos !== 0) { + return -1; + } + if (bPos === 0 && aPos !== 0) { + return 1; + } + + // Default sorting + if (a.text > b.text) { + return 1; + } + if (a.text < b.text) { + return -1; + } + return 0; + }); + } + return results; +}; + // global hooks after DOM is loaded $(document).ready(function(){ $('.diff-collapse-button').click(function(e) { var $button = $(e.currentTarget); - var $target = $('#' + $button.attr('target')); + var $target = $('#' + $button.prop('target')); if($target.hasClass('hidden')){ $target.removeClass('hidden'); $button.html("↑ {0} ↑".format(_TM['Collapse Diff'])); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/js/excanvas.js --- a/kallithea/public/js/excanvas.js Mon Jul 20 15:07:23 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,884 +0,0 @@ -// Copyright 2006 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - -// Known Issues: -// -// * Patterns are not implemented. -// * Radial gradient are not implemented. The VML version of these look very -// different from the canvas one. -// * Clipping paths are not implemented. -// * Coordsize. The width and height attribute have higher priority than the -// width and height style values which isn't correct. -// * Painting mode isn't implemented. -// * Canvas width/height should is using content-box by default. IE in -// Quirks mode will draw the canvas using border-box. Either change your -// doctype to HTML5 -// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) -// or use Box Sizing Behavior from WebFX -// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) -// * Non uniform scaling does not correctly scale strokes. -// * Optimize. There is always room for speed improvements. - -// Only add this code if we do not already have a canvas implementation -if (!document.createElement('canvas').getContext) { - -(function() { - - // alias some functions to make (compiled) code shorter - var m = Math; - var mr = m.round; - var ms = m.sin; - var mc = m.cos; - var abs = m.abs; - var sqrt = m.sqrt; - - // this is used for sub pixel precision - var Z = 10; - var Z2 = Z / 2; - - /** - * This funtion is assigned to the elements as element.getContext(). - * @this {HTMLElement} - * @return {CanvasRenderingContext2D_} - */ - function getContext() { - return this.context_ || - (this.context_ = new CanvasRenderingContext2D_(this)); - } - - var slice = Array.prototype.slice; - - /** - * Binds a function to an object. The returned function will always use the - * passed in {@code obj} as {@code this}. - * - * Example: - * - * g = bind(f, obj, a, b) - * g(c, d) // will do f.call(obj, a, b, c, d) - * - * @param {Function} f The function to bind the object to - * @param {Object} obj The object that should act as this when the function - * is called - * @param {*} var_args Rest arguments that will be used as the initial - * arguments when the function is called - * @return {Function} A new function that has bound this - */ - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function() { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - - var G_vmlCanvasManager_ = { - init: function(opt_doc) { - if (/MSIE/.test(navigator.userAgent) && !window.opera) { - var doc = opt_doc || document; - // Create a dummy element so that IE will allow canvas elements to be - // recognized. - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - } - }, - - init_: function(doc) { - // create xmlns - if (!doc.namespaces['g_vml_']) { - doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', - '#default#VML'); - - } - if (!doc.namespaces['g_o_']) { - doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', - '#default#VML'); - } - - // Setup default CSS. Only add one style sheet per document - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + - // default size is 300x150 in Gecko and Opera - 'text-align:left;width:300px;height:150px}' + - 'g_vml_\\:*{behavior:url(#default#VML)}' + - 'g_o_\\:*{behavior:url(#default#VML)}'; - - } - - // find all canvas elements - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - - /** - * Public initializes a canvas element so that it can be used as canvas - * element from now on. This is called automatically before the page is - * loaded but if you are creating elements using createElement you need to - * make sure this is called on the element. - * @param {HTMLElement} el The canvas element to initialize. - * @return {HTMLElement} the element that was created. - */ - initElement: function(el) { - if (!el.getContext) { - - el.getContext = getContext; - - // Remove fallback content. There is no way to hide text nodes so we - // just remove all childNodes. We could hide all elements and remove - // text nodes but who really cares about the fallback content. - el.innerHTML = ''; - - // do not use inline function because that will leak memory - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setWidth_(attrs.width.nodeValue); - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - // TODO: use runtimeStyle and coordsize - // el.getContext().setHeight_(attrs.height.nodeValue); - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - //el.getContext().setCoordsize_() - } - return el; - } - }; - - function onPropertyChange(e) { - var el = e.srcElement; - - switch (e.propertyName) { - case 'width': - el.style.width = el.attributes.width.nodeValue + 'px'; - el.getContext().clearRect(); - break; - case 'height': - el.style.height = el.attributes.height.nodeValue + 'px'; - el.getContext().clearRect(); - break; - } - } - - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - - G_vmlCanvasManager_.init(); - - // precompute "00" to "FF" - var dec2hex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - dec2hex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - - function createMatrixIdentity() { - return [ - [1, 0, 0], - [0, 1, 0], - [0, 0, 1] - ]; - } - - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - - result[x][y] = sum; - } - } - return result; - } - - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.arcScaleX_ = o1.arcScaleX_; - o2.arcScaleY_ = o1.arcScaleY_; - o2.lineScale_ = o1.lineScale_; - } - - function processStyle(styleString) { - var str, alpha = 1; - - styleString = String(styleString); - if (styleString.substring(0, 3) == 'rgb') { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var guts = styleString.substring(start + 1, end).split(','); - - str = '#'; - for (var i = 0; i < 3; i++) { - str += dec2hex[Number(guts[i])]; - } - - if (guts.length == 4 && styleString.substr(3, 1) == 'a') { - alpha = guts[3]; - } - } else { - str = styleString; - } - - return {color: str, alpha: alpha}; - } - - function processLineCap(lineCap) { - switch (lineCap) { - case 'butt': - return 'flat'; - case 'round': - return 'round'; - case 'square': - default: - return 'square'; - } - } - - /** - * This class implements CanvasRenderingContext2D interface as described by - * the WHATWG. - * @param {HTMLElement} surfaceElement The element that the 2D context should - * be associated with - */ - function CanvasRenderingContext2D_(surfaceElement) { - this.m_ = createMatrixIdentity(); - - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - - // Canvas context properties - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.canvas = surfaceElement; - - var el = surfaceElement.ownerDocument.createElement('div'); - el.style.width = surfaceElement.clientWidth + 'px'; - el.style.height = surfaceElement.clientHeight + 'px'; - el.style.overflow = 'hidden'; - el.style.position = 'absolute'; - surfaceElement.appendChild(el); - - this.element_ = el; - this.arcScaleX_ = 1; - this.arcScaleY_ = 1; - this.lineScale_ = 1; - } - - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function() { - this.element_.innerHTML = ''; - }; - - contextPrototype.beginPath = function() { - // TODO: Branch current matrix so that save/restore has no effect - // as per safari docs. - this.currentPath_ = []; - }; - - contextPrototype.moveTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.lineTo = function(aX, aY) { - var p = this.getCoords_(aX, aY); - this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); - - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - - contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, - aCP2x, aCP2y, - aX, aY) { - var p = this.getCoords_(aX, aY); - var cp1 = this.getCoords_(aCP1x, aCP1y); - var cp2 = this.getCoords_(aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - - // Helper function that takes the already fixed cordinates. - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - - contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { - // the following is lifted almost directly from - // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes - - var cp = this.getCoords_(aCPx, aCPy); - var p = this.getCoords_(aX, aY); - - var cp1 = { - x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), - y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3.0, - y: cp1.y + (p.y - this.currentY_) / 3.0 - }; - - bezierCurveTo(this, cp1, cp2, p); - }; - - contextPrototype.arc = function(aX, aY, aRadius, - aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - - // IE won't render arches drawn counter clockwise if xStart == xEnd. - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something - // that can be represented in binary - } - - var p = this.getCoords_(aX, aY); - var pStart = this.getCoords_(xStart, yStart); - var pEnd = this.getCoords_(xEnd, yEnd); - - this.currentPath_.push({type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y}); - - }; - - contextPrototype.rect = function(aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - - contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - - this.currentPath_ = oldPath; - }; - - contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - - contextPrototype.createRadialGradient = function(aX0, aY0, aR0, - aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - - contextPrototype.drawImage = function(image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - - // to find the original width we overide the width and height - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - - // get the original size - var w = image.width; - var h = image.height; - - // and remove overides - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - - var d = this.getCoords_(dx, dy); - - var w2 = sw / 2; - var h2 = sh / 2; - - var vmlStr = []; - - var W = 10; - var H = 10; - - // For some reason that I've now forgotten, using divs didn't work - vmlStr.push(' ' , - '', - ''); - - this.element_.insertAdjacentHTML('BeforeEnd', - vmlStr.join('')); - }; - - contextPrototype.stroke = function(aFill) { - var lineStr = []; - var lineOpen = false; - var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); - var color = a.color; - var opacity = a.alpha * this.globalAlpha; - - var W = 10; - var H = 10; - - lineStr.push(''); - - if (!aFill) { - var lineWidth = this.lineScale_ * this.lineWidth; - - // VML cannot correctly render a line if the width is less than 1px. - // In that case, we dilute the color to make the line look thinner. - if (lineWidth < 1) { - opacity *= lineWidth; - } - - lineStr.push( - '' - ); - } else if (typeof this.fillStyle == 'object') { - var fillStyle = this.fillStyle; - var angle = 0; - var focus = {x: 0, y: 0}; - - // additional offset - var shift = 0; - // scale factor for offset - var expansion = 1; - - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / this.arcScaleX_; - var y0 = fillStyle.y0_ / this.arcScaleY_; - var x1 = fillStyle.x1_ / this.arcScaleX_; - var y1 = fillStyle.y1_ / this.arcScaleY_; - var p0 = this.getCoords_(x0, y0); - var p1 = this.getCoords_(x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - - // The angle should be a non-negative number. - if (angle < 0) { - angle += 360; - } - - // Very small angles produce an unexpected result because they are - // converted to a scientific notation string. - if (angle < 1e-6) { - angle = 0; - } - } else { - var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_); - var width = max.x - min.x; - var height = max.y - min.y; - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - - width /= this.arcScaleX_ * Z; - height /= this.arcScaleY_ * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - - // We need to sort the color stops in ascending order by offset, - // otherwise IE won't interpret it correctly. - var stops = fillStyle.colors_; - stops.sort(function(cs1, cs2) { - return cs1.offset - cs2.offset; - }); - - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * this.globalAlpha; - var opacity2 = stops[length - 1].alpha * this.globalAlpha; - - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - - // When colors attribute is used, the meanings of opacity and o:opacity2 - // are reversed. - lineStr.push(''); - } else { - lineStr.push(''); - } - - lineStr.push(''); - - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - - contextPrototype.fill = function() { - this.stroke(true); - } - - contextPrototype.closePath = function() { - this.currentPath_.push({type: 'close'}); - }; - - /** - * @private - */ - contextPrototype.getCoords_ = function(aX, aY) { - var m = this.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - } - }; - - contextPrototype.save = function() { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - - contextPrototype.restore = function() { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - }; - - contextPrototype.translate = function(aX, aY) { - var m1 = [ - [1, 0, 0], - [0, 1, 0], - [aX, aY, 1] - ]; - - this.m_ = matrixMultiply(m1, this.m_); - }; - - contextPrototype.rotate = function(aRot) { - var c = mc(aRot); - var s = ms(aRot); - - var m1 = [ - [c, s, 0], - [-s, c, 0], - [0, 0, 1] - ]; - - this.m_ = matrixMultiply(m1, this.m_); - }; - - contextPrototype.scale = function(aX, aY) { - this.arcScaleX_ *= aX; - this.arcScaleY_ *= aY; - var m1 = [ - [aX, 0, 0], - [0, aY, 0], - [0, 0, 1] - ]; - - var m = this.m_ = matrixMultiply(m1, this.m_); - - // Get the line scale. - // Determinant of this.m_ means how much the area is enlarged by the - // transformation. So its square root can be used as a scale factor - // for width. - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - this.lineScale_ = sqrt(abs(det)); - }; - - /******** STUBS ********/ - contextPrototype.clip = function() { - // TODO: Implement - }; - - contextPrototype.arcTo = function() { - // TODO: Implement - }; - - contextPrototype.createPattern = function() { - return new CanvasPattern_; - }; - - // Gradient / Pattern Stubs - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - - CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({offset: aOffset, - color: aColor.color, - alpha: aColor.alpha}); - }; - - function CanvasPattern_() {} - - // set up externs - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - -})(); - -} // if diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/js/excanvas.min.js --- a/kallithea/public/js/excanvas.min.js Mon Jul 20 15:07:23 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -if(!document.createElement("canvas").getContext){(function(){var R=Math;var S=R.round;var O=R.sin;var a=R.cos;var J=R.abs;var Y=R.sqrt;var A=10;var K=A/2;function G(){return this.context_||(this.context_=new M(this))}var Q=Array.prototype.slice;function b(c,d,e){var Z=Q.call(arguments,2);return function(){return c.apply(d,Z.concat(Q.call(arguments)))}}var H={init:function(Z){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=Z||document;c.createElement("canvas");c.attachEvent("onreadystatechange",b(this.init_,this,c))}},init_:function(e){if(!e.namespaces.g_vml_){e.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML")}if(!e.namespaces.g_o_){e.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML")}if(!e.styleSheets.ex_canvas_){var d=e.createStyleSheet();d.owningElement.id="ex_canvas_";d.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}var c=e.getElementsByTagName("canvas");for(var Z=0;Z','","");this.element_.insertAdjacentHTML("BeforeEnd",z.join(""))};I.stroke=function(AE){var j=[];var k=false;var AP=C(AE?this.fillStyle:this.strokeStyle);var AA=AP.color;var AK=AP.alpha*this.globalAlpha;var f=10;var m=10;j.push("w.x){w.x=AI.x}if(AO.y==null||AI.yw.y){w.y=AI.y}}}j.push(' ">');if(!AE){var v=this.lineScale_*this.lineWidth;if(v<1){AK*=v}j.push("')}else{if(typeof this.fillStyle=="object"){var n=this.fillStyle;var t=0;var AH={x:0,y:0};var AB=0;var r=1;if(n.type_=="gradient"){var q=n.x0_/this.arcScaleX_;var d=n.y0_/this.arcScaleY_;var o=n.x1_/this.arcScaleX_;var AQ=n.y1_/this.arcScaleY_;var AM=this.getCoords_(q,d);var AL=this.getCoords_(o,AQ);var h=AL.x-AM.x;var g=AL.y-AM.y;t=Math.atan2(h,g)*180/Math.PI;if(t<0){t+=360}if(t<0.000001){t=0}}else{var AM=this.getCoords_(n.x0_,n.y0_);var Z=w.x-AO.x;var e=w.y-AO.y;AH={x:(AM.x-AO.x)/Z,y:(AM.y-AO.y)/e};Z/=this.arcScaleX_*A;e/=this.arcScaleY_*A;var AG=R.max(Z,e);AB=2*n.r0_/AG;r=2*n.r1_/AG-AB}var z=n.colors_;z.sort(function(i,c){return i.offset-c.offset});var u=z.length;var y=z[0].color;var x=z[u-1].color;var AD=z[0].alpha*this.globalAlpha;var AC=z[u-1].alpha*this.globalAlpha;var AF=[];for(var AJ=0;AJ')}else{j.push('')}}j.push("");this.element_.insertAdjacentHTML("beforeEnd",j.join(""))};I.fill=function(){this.stroke(true)};I.closePath=function(){this.currentPath_.push({type:"close"})};I.getCoords_=function(d,c){var Z=this.m_;return{x:A*(d*Z[0][0]+c*Z[1][0]+Z[2][0])-K,y:A*(d*Z[0][1]+c*Z[1][1]+Z[2][1])-K}};I.save=function(){var Z={};T(this,Z);this.aStack_.push(Z);this.mStack_.push(this.m_);this.m_=D(N(),this.m_)};I.restore=function(){T(this.aStack_.pop(),this);this.m_=this.mStack_.pop()};I.translate=function(d,c){var Z=[[1,0,0],[0,1,0],[d,c,1]];this.m_=D(Z,this.m_)};I.rotate=function(d){var f=a(d);var e=O(d);var Z=[[f,e,0],[-e,f,0],[0,0,1]];this.m_=D(Z,this.m_)};I.scale=function(f,e){this.arcScaleX_*=f;this.arcScaleY_*=e;var c=[[f,0,0],[0,e,0],[0,0,1]];var Z=this.m_=D(c,this.m_);var d=Z[0][0]*Z[1][1]-Z[0][1]*Z[1][0];this.lineScale_=Y(J(d))};I.clip=function(){};I.arcTo=function(){};I.createPattern=function(){return new F};function W(Z){this.type_=Z;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}W.prototype.addColorStop=function(c,Z){Z=C(Z);this.colors_.push({offset:c,color:Z.color,alpha:Z.alpha})};function F(){}G_vmlCanvasManager=H;CanvasRenderingContext2D=M;CanvasGradient=W;CanvasPattern=F})()}; \ No newline at end of file diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/js/graph.js --- a/kallithea/public/js/graph.js Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/public/js/graph.js Sun Sep 06 23:36:05 2015 +0200 @@ -105,6 +105,7 @@ node = cur[0]; in_l = cur[1]; closing = cur[2]; + obsolete_node = cur[3]; var rowY = row.offsetTop + row.offsetHeight/2; var nextY = (next == null) ? rowY + row.offsetHeight/2 : next.offsetTop + next.offsetHeight/2; @@ -114,6 +115,7 @@ start = line[0]; end = line[1]; color = line[2]; + obsolete_line = line[3]; x = Math.floor(base_x - box_size * start); @@ -158,6 +160,11 @@ this.ctx.lineWidth=this.line_width; this.ctx.beginPath(); + if (obsolete_line) + { + this.ctx.setLineDash([5]); + } + this.ctx.beginPath(); this.ctx.moveTo(x, rowY); if (start == end) { @@ -167,9 +174,14 @@ { var x2 = Math.floor(base_x - box_size * end); var ymid = (rowY+nextY) / 2; + if (obsolete_node) + { + this.ctx.setLineDash([5]); + } this.ctx.bezierCurveTo (x,ymid,x2,ymid,x2,nextY); } this.ctx.stroke(); + this.ctx.setLineDash([]); // reset the dashed line, if any } column = node[0]; @@ -178,6 +190,19 @@ x = Math.floor(base_x - box_size * column); this.setColor(color, 0.25, 0.75); + + + r = this.dot_radius + if (obsolete_node) + { + this.ctx.beginPath(); + this.ctx.moveTo(x - this.close_x, rowY - this.close_y - 3); + this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y + 4*this.close_y - 1); + this.ctx.moveTo(x - this.close_x, rowY - this.close_y + 4*this.close_y - 1); + this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y - 3); + this.ctx.stroke(); + r -= 0.5 + } if (closing) { this.ctx.fillRect(x - this.close_x, rowY - this.close_y, 2*this.close_x, 2*this.close_y); @@ -185,7 +210,7 @@ else { this.ctx.beginPath(); - this.ctx.arc(x, rowY, this.dot_radius, 0, Math.PI * 2, true); + this.ctx.arc(x, rowY, r, 0, Math.PI * 2, true); this.ctx.fill(); } diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/public/js/pyroutes_map.js --- a/kallithea/public/js/pyroutes_map.js Mon Jul 20 15:07:23 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -//Format is key == name -// "mark_error_fixed": [ # key -// "/mark_error_fixed/%(error_id)s", #url template -// [ -// "error_id" # list of args -// ] -// ], -// -var PROUTES_MAP = { - -} \ No newline at end of file diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/about.html --- a/kallithea/templates/about.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/about.html Sun Sep 06 23:36:05 2015 +0200 @@ -26,43 +26,98 @@

    Kallithea is copyrighted by various authors, including but not necessarily limited to the following:

    %if c.gist.gist_expires == -1: - ${_('Expires')}: ${_('never')} + ${_('Expires')}: ${_('Never')} %else: ${_('Expires')}: ${h.age(h.time_to_datetime(c.gist.gist_expires))} %endif diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account.html --- a/kallithea/templates/admin/my_account/my_account.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account.html Sun Sep 06 23:36:05 2015 +0200 @@ -33,12 +33,12 @@
  • ${_('Profile')}
  • +
  • ${_('Email Addresses')}
  • ${_('Password')}
  • ${_('API Keys')}
  • -
  • ${_('My Emails')}
  • -
  • ${_('My Repositories')}
  • -
  • ${_('Watched')}
  • -
  • ${_('My Permissions')}
  • +
  • ${_('Owned Repositories')}
  • +
  • ${_('Watched Repositories')}
  • +
  • ${_('Show Permissions')}
  • diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account_api_keys.html --- a/kallithea/templates/admin/my_account/my_account_api_keys.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account_api_keys.html Sun Sep 06 23:36:05 2015 +0200 @@ -5,14 +5,14 @@ ${_('Built-in')} - ${_('expires')}: ${_('never')} + ${_('Expires')}: ${_('Never')} ${h.form(url('my_account_api_keys'),method='delete')} ${h.hidden('del_api_key',c.user.api_key)} ${h.hidden('del_api_key_builtin',1)} ${h.end_form()} @@ -24,12 +24,12 @@ ${api_key.description} %if api_key.expires == -1: - ${_('expires')}: ${_('never')} + ${_('Expires')}: ${_('Never')} %else: %if api_key.expired: - ${_('expired')}: ${h.age(h.time_to_datetime(api_key.expires))} + ${_('Expired')}: ${h.age(h.time_to_datetime(api_key.expires))} %else: - ${_('expires')}: ${h.age(h.time_to_datetime(api_key.expires))} + ${_('Expires')}: ${h.age(h.time_to_datetime(api_key.expires))} %endif %endif @@ -37,16 +37,16 @@ ${h.form(url('my_account_api_keys'),method='delete')} ${h.hidden('del_api_key',api_key.api_key)} ${h.end_form()} %endfor %else: -
    ${_('No additional api keys specified')}
    +
    ${_('No additional API keys specified')}
    %endif
    @@ -58,7 +58,7 @@
    - +
    ${h.text('description', class_='medium', placeholder=_('Description'))} @@ -79,5 +79,5 @@ $("#lifetime").select2({ 'dropdownAutoWidth': true }); - }) + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account_emails.html --- a/kallithea/templates/admin/my_account/my_account_emails.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account_emails.html Sun Sep 06 23:36:05 2015 +0200 @@ -16,7 +16,7 @@ ${h.form(url('my_account_emails'),method='delete')} ${h.hidden('del_email_id',em.email_id)} - ${h.submit('remove_',_('delete'),id="remove_email_%s" % em.email_id, + ${h.submit('remove_',_('Delete'),id="remove_email_%s" % em.email_id, class_="action_button", onclick="return confirm('"+_('Confirm to delete this email: %s') % em.email+"');")} ${h.end_form()} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account_password.html --- a/kallithea/templates/admin/my_account/my_account_password.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account_password.html Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,7 @@
    ${_('Change Your Account Password')}
    + +%if c.can_change_password: + ${h.form(url('my_account_password'), method='post')}
    @@ -7,7 +10,7 @@
    - ${h.password('current_password',class_='medium',autocomplete="off")} + ${h.password('current_password',class_='medium')}
    @@ -16,16 +19,16 @@
    - ${h.password('new_password',class_='medium', autocomplete="off")} + ${h.password('new_password',class_='medium')}
    - +
    - ${h.password('new_password_confirmation',class_='medium', autocomplete="off")} + ${h.password('new_password_confirmation',class_='medium')}
    @@ -36,3 +39,9 @@
    ${h.end_form()} + +%else: + +${_('This account is managed with %s and the password cannot be changed here') % c.user.extern_type} + +%endif diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account_profile.html --- a/kallithea/templates/admin/my_account/my_account_profile.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account_profile.html Sun Sep 06 23:36:05 2015 +0200 @@ -13,28 +13,19 @@ %else: ${_('Avatars are disabled')}
    ${c.user.email or _('Missing email, please update your user email address.')} - [${_('current IP')}: ${c.perm_user.ip_addr or "?"}] + [${_('Current IP')}: ${c.ip_addr}] %endif

    - <% readonly = None %> - <% disabled = "" %>
    - %if c.extern_type != c.EXTERN_TYPE_INTERNAL: - <% readonly = "readonly" %> - <% disabled = " disabled" %> - ${_('Your user is in an external Source of Record; some details cannot be managed here')}. - %endif
    - ${h.text('username',class_='medium%s' % disabled, readonly=readonly)} - ${h.hidden('extern_name', c.extern_name)} - ${h.hidden('extern_type', c.extern_type)} + ${h.text('username',class_='medium', readonly=c.readonly('username'))}
    @@ -43,7 +34,7 @@
    - ${h.text('firstname',class_="medium")} + ${h.text('firstname',class_="medium", readonly=c.readonly('firstname'))}
    @@ -52,7 +43,7 @@
    - ${h.text('lastname',class_="medium")} + ${h.text('lastname',class_="medium", readonly=c.readonly('lastname'))}
    @@ -61,8 +52,7 @@
    - ## we should be able to edit email ! - ${h.text('email',class_="medium")} + ${h.text('email',class_="medium", readonly=c.readonly('email'))}
    diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/my_account/my_account_repos.html --- a/kallithea/templates/admin/my_account/my_account_repos.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/my_account/my_account_repos.html Sun Sep 06 23:36:05 2015 +0200 @@ -30,7 +30,7 @@ if (req) { req = req.toLowerCase(); for (i = 0; i diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/permissions/permissions.html --- a/kallithea/templates/admin/permissions/permissions.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/permissions/permissions.html Sun Sep 06 23:36:05 2015 +0200 @@ -2,13 +2,13 @@ <%inherit file="/base/base.html"/> <%block name="title"> - ${_('Permissions Administration')} + ${_('Default Permissions')} <%def name="breadcrumbs_links()"> ${h.link_to(_('Admin'),h.url('admin_home'))} » - ${_('Permissions')} + ${_('Default Permissions')} <%block name="header_menu"> @@ -27,7 +27,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/permissions/permissions_globals.html --- a/kallithea/templates/admin/permissions/permissions_globals.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/permissions/permissions_globals.html Sun Sep 06 23:36:05 2015 +0200 @@ -22,7 +22,7 @@ ${h.checkbox('overwrite_default_repo','true')} ${_('Permissions for the Default user on new repositories.')} @@ -36,7 +36,7 @@ ${h.checkbox('overwrite_default_group','true')} ${_('Permissions for the Default user on new repository groups.')} @@ -50,7 +50,7 @@ ${h.checkbox('overwrite_default_user_group','true')} ${_('Permissions for the Default user on new user groups.')} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/permissions/permissions_ips.html --- a/kallithea/templates/admin/permissions/permissions_ips.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/permissions/permissions_ips.html Sun Sep 06 23:36:05 2015 +0200 @@ -9,8 +9,8 @@ ${h.form(url('edit_user_ips', id=c.user.user_id),method='delete')} ${h.hidden('del_ip_id',ip.ip_id)} ${h.hidden('default_user', 'True')} - ${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id, - class_="action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")} + ${h.submit('remove_',_('Delete'),id="remove_ip_%s" % ip.ip_id, + class_="action_button", onclick="return confirm('"+_('Confirm to delete this IP address: %s') % ip.ip_addr+"');")} ${h.end_form()} @@ -27,7 +27,7 @@
    - +
    ${h.hidden('default_user', 'True')} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_add.html --- a/kallithea/templates/admin/repo_groups/repo_group_add.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_add.html Sun Sep 06 23:36:05 2015 +0200 @@ -76,7 +76,7 @@ $(document).ready(function(){ var setCopyPermsOption = function(group_val){ if(group_val != "-1"){ - $('#copy_perms').show() + $('#copy_perms').show(); } else{ $('#copy_perms').hide(); @@ -85,11 +85,11 @@ $("#group_parent_id").select2({ 'dropdownAutoWidth': true }); - setCopyPermsOption($('#group_parent_id').val()) + setCopyPermsOption($('#group_parent_id').val()); $("#group_parent_id").on("change", function(e) { - setCopyPermsOption(e.val) - }) + setCopyPermsOption(e.val); + }); $('#group_name').focus(); - }) + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_edit.html --- a/kallithea/templates/admin/repo_groups/repo_group_edit.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_edit.html Sun Sep 06 23:36:05 2015 +0200 @@ -12,13 +12,13 @@ %if c.repo_group.parent_group: » ${h.link_to(c.repo_group.parent_group.name,h.url('repos_group_home',group_name=c.repo_group.parent_group.group_name))} %endif - » ${c.repo_group.name} + » ${h.link_to(c.repo_group.name,h.url('repos_group_home',group_name=c.repo_group.group_name))} <%def name="breadcrumbs_side_links()"> diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html --- a/kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_edit_advanced.html Sun Sep 06 23:36:05 2015 +0200 @@ -7,7 +7,7 @@ (_('Total repositories'), c.repo_group.repositories_recursive_count, ''), (_('Children groups'), c.repo_group.children.count(), ''), (_('Created on'), h.fmt_date(c.repo_group.created_on), ''), - (_('Owner'), h.person(c.repo_group.user), '') + (_('Owner'), h.person(c.repo_group.user), ''), ] %> %for dt, dd, tt in elems: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_edit_perms.html --- a/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html Sun Sep 06 23:36:05 2015 +0200 @@ -4,18 +4,18 @@
    - - - - - + + + + + ## USERS %for r2p in c.repo_group.repo_group_to_perm: ##forbid revoking permission from yourself, except if you're an super admin - %if c.authuser.user_id != r2p.user.user_id or c.authuser.is_admin: + %if c.authuser.user_id != r2p.user.user_id or c.authuser.is_admin: @@ -25,27 +25,27 @@ %if h.HasPermissionAny('hg.admin')() and r2p.user.username != 'default': ${r2p.user.username} %else: - ${r2p.user.username if r2p.user.username != 'default' else _('default')} + ${r2p.user.username if r2p.user.username != 'default' else _('Default')} %endif - %else: + %else: - - %endif + + %endif %endfor @@ -68,7 +68,7 @@ @@ -100,7 +100,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repo_edit_fork.html --- a/kallithea/templates/admin/repos/repo_edit_fork.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_fork.html Sun Sep 06 23:36:05 2015 +0200 @@ -17,5 +17,5 @@ $("#id_fork_of").select2({ 'dropdownAutoWidth': true }); - }) + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repo_edit_permissions.html --- a/kallithea/templates/admin/repos/repo_edit_permissions.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_permissions.html Sun Sep 06 23:36:05 2015 +0200 @@ -5,11 +5,11 @@ ${h.hidden('repo_private')}
    ${_('none')}${_('read')}${_('write')}${_('admin')}${_('user/user group')}${_('None')}${_('Read')}${_('Write')}${_('Admin')}${_('User/User Group')}
    ${h.radio('u_perm_%s' % r2p.user.username,'group.none')} ${h.radio('u_perm_%s' % r2p.user.username,'group.read')} ${h.radio('u_perm_%s' % r2p.user.username,'group.write')} %if r2p.user.username !='default': - ${_('revoke')} + ${_('Revoke')} %endif ${h.radio('u_perm_%s' % r2p.user.username,'group.none', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'group.read', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'group.write', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'group.admin', disabled="disabled")} ${h.gravatar(r2p.user.email, cls="perm-gravatar", size=14)} - ${r2p.user.username if r2p.user.username != 'default' else _('default')} + ${r2p.user.username if r2p.user.username != 'default' else _('Default')} ${_('delegated admin')} ${_('Admin')}
    - ${_('revoke')} + ${_('Revoke')}
    - ${_('apply to children')}: + ${_('Apply to children')}: ${h.radio('recursive', 'none', label=_('None'), checked="checked")} ${h.radio('recursive', 'groups', label=_('Repository Groups'))} ${h.radio('recursive', 'repos', label=_('Repositories'))} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_edit_settings.html --- a/kallithea/templates/admin/repo_groups/repo_group_edit_settings.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_edit_settings.html Sun Sep 06 23:36:05 2015 +0200 @@ -61,5 +61,5 @@ $("#group_parent_id").select2({ 'dropdownAutoWidth': true }); - }) + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_group_show.html --- a/kallithea/templates/admin/repo_groups/repo_group_show.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_group_show.html Sun Sep 06 23:36:05 2015 +0200 @@ -6,7 +6,7 @@ <%def name="breadcrumbs()"> - ${h.link_to(_(u'Home'),h.url('/'))} + ${h.link_to(_('Home'),h.url('/'))} %if c.group.parent_group: » ${h.link_to(c.group.parent_group.name,h.url('repos_group_home',group_name=c.group.parent_group.group_name))} %endif diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repo_groups/repo_groups.html --- a/kallithea/templates/admin/repo_groups/repo_groups.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repo_groups/repo_groups.html Sun Sep 06 23:36:05 2015 +0200 @@ -23,7 +23,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repo_add_base.html --- a/kallithea/templates/admin/repos/repo_add_base.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_add_base.html Sun Sep 06 23:36:05 2015 +0200 @@ -10,21 +10,17 @@
    ${h.text('repo_name',class_="small")} - - %if not c.authuser.is_admin: - ${h.hidden('user_created',True)} - %endif
    -
    ${h.form(url('delete_repo_fields', repo_name=c.repo_info.repo_name, field_id=field.repo_field_id),method='delete')} - ${h.submit('remove_%s' % field.repo_field_id, _('delete'), id="remove_field_%s" % field.repo_field_id, + ${h.submit('remove_%s' % field.repo_field_id, _('Delete'), id="remove_field_%s" % field.repo_field_id, class_="action_button", onclick="return confirm('"+_('Confirm to delete this field: %s') % field.field_key+"');")} ${h.end_form()}
    - - - - - + + + + + ## USERS @@ -18,10 +18,10 @@ - + %else: @@ -34,13 +34,13 @@ %if h.HasPermissionAny('hg.admin')() and r2p.user.username != 'default': ${r2p.user.username} %else: - ${r2p.user.username if r2p.user.username != 'default' else _('default')} + ${r2p.user.username if r2p.user.username != 'default' else _('Default')} %endif @@ -65,7 +65,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repo_edit_remote.html --- a/kallithea/templates/admin/repos/repo_edit_remote.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_remote.html Sun Sep 06 23:36:05 2015 +0200 @@ -1,16 +1,19 @@ %if c.repo_info.clone_uri:
    - ${_('Remote URL')}: ${c.repo_info.clone_uri_hidden} + ${_('Remote repository URL')}: ${c.repo_info.clone_uri_hidden}
    ${h.form(url('edit_repo_remote', repo_name=c.repo_name), method='put')}
    -
    - ${h.submit('remote_pull_%s' % c.repo_info.repo_name,_('Pull Changes from Remote Location'),class_="btn btn-small",onclick="return confirm('"+_('Confirm to pull changes from remote side.')+"');")} -
    +
    + ${h.submit('remote_pull_%s' % c.repo_info.repo_name, + _('Pull Changes from Remote Repository'), + class_="btn btn-small", + onclick="return confirm('"+_('Confirm to pull changes from remote repository.')+"');")} +
    ${h.end_form()} %else:
    - ${_('This repository does not have a remote URL set.')} + ${_('This repository does not have a remote repository URL.')}
    %endif diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repo_edit_settings.html --- a/kallithea/templates/admin/repos/repo_edit_settings.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_settings.html Sun Sep 06 23:36:05 2015 +0200 @@ -1,4 +1,4 @@ -${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')} +${h.form(url('put_repo', repo_name=c.repo_info.repo_name), method='put')}
    @@ -15,27 +15,20 @@ Using the above permanent URL guarantees that this repository always will be accessible on that URL. This is useful for CI systems, or any other cases that you need to hardcode the URL into a 3rd party service.''')}
    -
    -
    -
    - -
    -
    - %if c.repo_info.clone_uri: -
    - ${c.repo_info.clone_uri_hidden} - ${_('edit')} -
    - - %else: - ## not set yet, display form to set it - ${h.text('clone_uri',class_="medium")} - ${h.hidden('clone_uri_change', 'NEW')} - %endif - ${_('URL used for doing remote pulls.')} -
    +
    +
    +
    + +
    +
    +
    + ${h.text('clone_uri',class_="medium", placeholder=_('Repository URL'))} + ${h.hidden('clone_uri_hidden', c.repo_info.clone_uri_hidden)} +
    + + ${_('Optional: URL of a remote repository. If set, the repository can be pulled from this URL.')} + +
    @@ -143,15 +136,7 @@ $('#show_more_clone_id').on('click', function(e){ $('#clone_id').show(); e.preventDefault(); - }) - $('#edit_clone_uri').on('click', function(e){ - $('#alter_clone_uri').show(); - $('#edit_clone_uri').hide(); - $('#clone_uri_hidden').hide(); - ## store hash of old value for change detection - var uri_change = ''; - $('#alter_clone_uri_help_block').html($('#alter_clone_uri_help_block').html()+" ("+$('#clone_uri_hidden_value').html()+")") - }) + }); $('#repo_landing_rev').select2({ 'dropdownAutoWidth': true @@ -160,5 +145,8 @@ 'dropdownAutoWidth': true }); - }) + // autocomplete + var _USERS_AC_DATA = ${c.users_array|n}; + SimpleUserAutoComplete($('#user'), $('#owner_container'), _USERS_AC_DATA); + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/repos/repos.html --- a/kallithea/templates/admin/repos/repos.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/repos/repos.html Sun Sep 06 23:36:05 2015 +0200 @@ -19,7 +19,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/settings/settings_email.html --- a/kallithea/templates/admin/settings/settings_email.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/settings/settings_email.html Sun Sep 06 23:36:05 2015 +0200 @@ -1,27 +1,3 @@ -
    -<% - elems = [ - (_('Email prefix'), c.ini.get('email_prefix'), ''), - (_('Kallithea email from'), c.ini.get('app_email_from'), ''), - (_('Error email from'), c.ini.get('error_email_from'), ''), - (_('Error email recipients'), c.ini.get('email_to'), ''), - - (_('SMTP server'), c.ini.get('smtp_server'), ''), - (_('SMTP username'), c.ini.get('smtp_username'), ''), - (_('SMTP password'), '%s chars' % len(c.ini.get('smtp_password', '')), ''), - (_('SMTP port'), c.ini.get('smtp_port'), ''), - - (_('SMTP use TLS'), c.ini.get('smtp_use_tls'), ''), - (_('SMTP use SSL'), c.ini.get('smtp_use_ssl'), ''), - (_('SMTP auth'), c.ini.get('smtp_auth'), '') - ] -%> -%for dt, dd, tt in elems: -
    ${dt}:
    -
    ${dd}
    -%endfor -
    - ${h.form(url('admin_settings_email'), method='post')}
    diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/settings/settings_hooks.html --- a/kallithea/templates/admin/settings/settings_hooks.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/settings/settings_hooks.html Sun Sep 06 23:36:05 2015 +0200 @@ -31,9 +31,9 @@ ${h.hidden('hook_ui_value',hook.ui_value)} ${h.text('hook_ui_value_new',hook.ui_value,size=60)} + onclick="delete_hook(${hook.ui_id},'${'id%s' % hook.ui_id }')"> - ${_('delete')} + ${_('Delete')}
    @@ -58,11 +58,10 @@ % endif diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/settings/settings_visual.html --- a/kallithea/templates/admin/settings/settings_visual.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/settings/settings_visual.html Sun Sep 06 23:36:05 2015 +0200 @@ -77,11 +77,11 @@
    ${h.checkbox('show_public_icon','True')} - +
    ${h.checkbox('show_private_icon','True')} - +
    ${_('Show public/private icons next to repository names.')}
    @@ -89,7 +89,7 @@
    - +
    diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/user_groups/user_group_add.html --- a/kallithea/templates/admin/user_groups/user_group_add.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/user_groups/user_group_add.html Sun Sep 06 23:36:05 2015 +0200 @@ -64,6 +64,6 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/user_groups/user_group_edit.html --- a/kallithea/templates/admin/user_groups/user_group_edit.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/user_groups/user_group_edit.html Sun Sep 06 23:36:05 2015 +0200 @@ -28,9 +28,9 @@
    diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/user_groups/user_group_edit_advanced.html --- a/kallithea/templates/admin/user_groups/user_group_edit_advanced.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/user_groups/user_group_edit_advanced.html Sun Sep 06 23:36:05 2015 +0200 @@ -5,7 +5,7 @@ elems = [ (_('Members'), len(c.group_members_obj), ''), (_('Created on'), h.fmt_date(c.user_group.created_on), ''), - (_('Owner'), h.person(c.user_group.user), '') + (_('Owner'), h.person(c.user_group.user), ''), ] %> %for dt, dd, tt in elems: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/user_groups/user_group_edit_perms.html --- a/kallithea/templates/admin/user_groups/user_group_edit_perms.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/user_groups/user_group_edit_perms.html Sun Sep 06 23:36:05 2015 +0200 @@ -4,18 +4,18 @@
    ${_('none')}${_('read')}${_('write')}${_('admin')}${_('user/user group')}${_('None')}${_('Read')}${_('Write')}${_('Admin')}${_('User/User Group')}
    - ${_('private repository')} + ${_('Private Repository')} ${_('default')} ${_('Default')}
    %if r2p.user.username !='default': - ${_('revoke')} + ${_('Revoke')} %endif - ${_('revoke')} + ${_('Revoke')}
    - - - - - + + + + + ## USERS %for r2p in c.user_group.user_user_group_to_perm: ##forbid revoking permission from yourself, except if you're an super admin - %if c.authuser.user_id != r2p.user.user_id or c.authuser.is_admin: + %if c.authuser.user_id != r2p.user.user_id or c.authuser.is_admin: @@ -25,27 +25,27 @@ %if h.HasPermissionAny('hg.admin')() and r2p.user.username != 'default': ${r2p.user.username} %else: - ${r2p.user.username if r2p.user.username != 'default' else _('default')} + ${r2p.user.username if r2p.user.username != 'default' else _('Default')} %endif - %else: + %else: - - %endif + + %endif %endfor @@ -68,7 +68,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/user_groups/user_groups.html --- a/kallithea/templates/admin/user_groups/user_groups.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/user_groups/user_groups.html Sun Sep 06 23:36:05 2015 +0200 @@ -7,7 +7,7 @@ <%def name="breadcrumbs_links()"> - ${h.link_to(_('Admin'),h.url('admin_home'))} » 0 ${_('user groups')} + ${h.link_to(_('Admin'),h.url('admin_home'))} » 0 ${_('User Groups')} <%block name="header_menu"> @@ -22,7 +22,7 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_add.html --- a/kallithea/templates/admin/users/user_add.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_add.html Sun Sep 06 23:36:05 2015 +0200 @@ -41,7 +41,7 @@
    - ${h.password('password',class_='small',autocomplete="off")} + ${h.password('password',class_='small')}
    @@ -50,7 +50,7 @@
    - ${h.password('password_confirmation',class_="small",autocomplete="off")} + ${h.password('password_confirmation',class_="small")}
    @@ -78,8 +78,6 @@
    ${h.text('email',class_='small')} - ${h.hidden('extern_name', c.default_extern_type)} - ${h.hidden('extern_type', c.default_extern_type)}
    @@ -92,6 +90,8 @@ + ${h.hidden('extern_type', c.default_extern_type)} + ${h.hidden('extern_name', c.default_extern_name)}
    ${h.submit('save',_('Save'),class_="btn")}
    @@ -103,6 +103,6 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit.html --- a/kallithea/templates/admin/users/user_edit.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit.html Sun Sep 06 23:36:05 2015 +0200 @@ -27,11 +27,11 @@ diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit_advanced.html --- a/kallithea/templates/admin/users/user_edit_advanced.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit_advanced.html Sun Sep 06 23:36:05 2015 +0200 @@ -7,7 +7,7 @@ (_('Source of Record'), c.user.extern_type, ''), (_('Created on'), h.fmt_date(c.user.created_on), ''), (_('Last Login'), c.user.last_login or '-', ''), - (_('Member of User groups'), len(c.user.group_member), ', '.join((x.users_group.users_group_name for x in c.user.group_member))) + (_('Member of User Groups'), len(c.user.group_member), ', '.join((x.users_group.users_group_name for x in c.user.group_member))), ] %> %for dt, dd, tt in elems: diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit_api_keys.html --- a/kallithea/templates/admin/users/user_edit_api_keys.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit_api_keys.html Sun Sep 06 23:36:05 2015 +0200 @@ -5,14 +5,14 @@ - + @@ -24,12 +24,12 @@ @@ -37,28 +37,28 @@ ${h.form(url('edit_user_api_keys', id=c.user.user_id),method='delete')} ${h.hidden('del_api_key',api_key.api_key)} ${h.end_form()} %endfor %else: - + %endif
    ${_('none')}${_('read')}${_('write')}${_('admin')}${_('user/user group')}${_('None')}${_('Read')}${_('Write')}${_('Admin')}${_('User/User Group')}
    ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.none')} ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.read')} ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.write')} %if r2p.user.username !='default': - ${_('revoke')} + ${_('Revoke')} %endif ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.none', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.read', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.write', disabled="disabled")} ${h.radio('u_perm_%s' % r2p.user.username,'usergroup.admin', disabled="disabled")} ${h.gravatar(r2p.user.email, cls="perm-gravatar", size=14)} - ${r2p.user.username if r2p.user.username != 'default' else _('default')} + ${r2p.user.username if r2p.user.username != 'default' else _('Default')} ${_('delegated admin')} ${_('Admin')}
    - ${_('revoke')} + ${_('Revoke')}
    ${_('Built-in')} ${_('expires')}: ${_('never')}${_('Expires')}: ${_('Never')} ${h.form(url('edit_user_api_keys', id=c.user.user_id),method='delete')} ${h.hidden('del_api_key',c.user.api_key)} ${h.hidden('del_api_key_builtin',1)} ${h.end_form()} ${api_key.description} %if api_key.expires == -1: - ${_('expires')}: ${_('never')} + ${_('Expires')}: ${_('Never')} %else: %if api_key.expired: - ${_('expired')}: ${h.age(h.time_to_datetime(api_key.expires))} + ${_('Expired')}: ${h.age(h.time_to_datetime(api_key.expires))} %else: - ${_('expires')}: ${h.age(h.time_to_datetime(api_key.expires))} + ${_('Expires')}: ${h.age(h.time_to_datetime(api_key.expires))} %endif %endif
    ${_('No additional api keys specified')}
    ${_('No additional API keys specified')}
    - ${h.form(url('edit_user_api_keys', id=c.user.user_id), method='put')} + ${h.form(url('edit_user_api_keys', id=c.user.user_id), method='post')}
    - +
    ${h.text('description', class_='medium', placeholder=_('Description'))} @@ -79,5 +79,5 @@ $("#lifetime").select2({ 'dropdownAutoWidth': true }); - }) + }); diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit_emails.html --- a/kallithea/templates/admin/users/user_edit_emails.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit_emails.html Sun Sep 06 23:36:05 2015 +0200 @@ -16,7 +16,7 @@ ${h.form(url('edit_user_emails', id=c.user.user_id),method='delete')} ${h.hidden('del_email_id',em.email_id)} - ${h.submit('remove_',_('delete'),id="remove_email_%s" % em.email_id, + ${h.submit('remove_',_('Delete'),id="remove_email_%s" % em.email_id, class_="action_button", onclick="return confirm('"+_('Confirm to delete this email: %s') % em.email+"');")} ${h.end_form()} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit_ips.html --- a/kallithea/templates/admin/users/user_edit_ips.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit_ips.html Sun Sep 06 23:36:05 2015 +0200 @@ -19,8 +19,8 @@ ${h.form(url('edit_user_ips', id=c.user.user_id),method='delete')} ${h.hidden('del_ip_id',ip.ip_id)} - ${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id, - class_="action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")} + ${h.submit('remove_',_('Delete'),id="remove_ip_%s" % ip.ip_id, + class_="action_button", onclick="return confirm('"+_('Confirm to delete this IP address: %s') % ip.ip_addr+"');")} ${h.end_form()} @@ -39,7 +39,7 @@
    - +
    ${h.text('new_ip', class_='medium')} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/user_edit_profile.html --- a/kallithea/templates/admin/users/user_edit_profile.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/user_edit_profile.html Sun Sep 06 23:36:05 2015 +0200 @@ -12,28 +12,19 @@
    ${c.user.email or _('Missing email, please update this user email address.')} ##show current ip just if we show ourself %if c.authuser.username == c.user.username: - [${_('current IP')}: ${c.perm_user.ip_addr or "?"}] + [${_('Current IP')}: ${c.ip_addr}] %endif %endif
    - <% readonly = None %> - <% disabled = "" %>
    - %if c.extern_type != c.EXTERN_TYPE_INTERNAL: -
    - <% readonly = "readonly" %> - <% disabled = " disabled" %> - ${_('This user is in an external Source of Record (%s); some details cannot be managed here.' % c.extern_type)}. -
    - %endif
    - ${h.text('username',class_='medium%s' % disabled, readonly=readonly)} + ${h.text('username',class_='medium', readonly=c.readonly('username'))}
    @@ -42,7 +33,7 @@
    - ${h.text('email',class_='medium')} + ${h.text('email',class_='medium', readonly=c.readonly('email'))}
    @@ -51,7 +42,7 @@
    - ${h.text('extern_type',class_='medium disabled',readonly="readonly")} + ${h.text('extern_type',class_='medium',readonly="readonly")}
    @@ -60,7 +51,7 @@
    - ${h.text('extern_name',class_='medium disabled',readonly="readonly")} + ${h.text('extern_name',class_='medium',readonly="readonly")}
    @@ -69,7 +60,7 @@
    - ${h.password('new_password',class_='medium%s' % disabled,autocomplete="off",readonly=readonly)} + ${h.password('new_password',class_='medium',readonly=c.readonly('password'))}
    @@ -78,7 +69,7 @@
    - ${h.password('password_confirmation',class_="medium%s" % disabled,autocomplete="off",readonly=readonly)} + ${h.password('password_confirmation',class_="medium",readonly=c.readonly('password'))}
    @@ -87,7 +78,7 @@
    - ${h.text('firstname',class_='medium')} + ${h.text('firstname',class_='medium', readonly=c.readonly('firstname'))}
    @@ -96,7 +87,7 @@
    - ${h.text('lastname',class_='medium')} + ${h.text('lastname',class_='medium', readonly=c.readonly('lastname'))}
    @@ -105,7 +96,7 @@
    - ${h.checkbox('active',value=True)} + ${h.checkbox('active',value=True, readonly=c.readonly('active'))}
    @@ -114,7 +105,7 @@
    - ${h.checkbox('admin',value=True)} + ${h.checkbox('admin',value=True, readonly=c.readonly('admin'))}
    diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/admin/users/users.html --- a/kallithea/templates/admin/users/users.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/admin/users/users.html Sun Sep 06 23:36:05 2015 +0200 @@ -21,7 +21,7 @@ ${self.breadcrumbs()} diff -r 763dc7a96bae -r 6f60bd9090b1 kallithea/templates/base/base.html --- a/kallithea/templates/base/base.html Mon Jul 20 15:07:23 2015 +0200 +++ b/kallithea/templates/base/base.html Sun Sep 06 23:36:05 2015 +0200 @@ -61,9 +61,9 @@
  • ${_('Repository Groups')}
  • ${_('Users')}
  • ${_('User Groups')}
  • -
  • ${_('Permissions')}
  • +
  • ${_('Default Permissions')}
  • ${_('Authentication')}
  • -
  • ${_('Defaults')}
  • +
  • ${_('Repository Defaults')}
  • ${_('Settings')}
  • @@ -97,13 +97,6 @@ <%def name="repo_context_bar(current=None, rev=None)"> <% rev = None if rev == 'tip' else rev %> <% - def follow_class(): - if c.repository_following: - return h.literal('following') - else: - return h.literal('follow') - %> - <% def is_current(selected): if selected == current: return h.literal('class="current"') @@ -128,7 +121,7 @@ - ## EXTRA FOR JS <%block name="js_extra"/> @@ -110,17 +105,6 @@ <%block name="head_extra"/> - ## IE hacks - - - -