Compare commits

...

125 Commits
1.4.6 ... 1.1.3

Author SHA1 Message Date
Jean-Philippe Lang
7e5ef18503 tagged version 1.1.3
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/tags/1.1.3@5594 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:37:47 +00:00
Jean-Philippe Lang
3f302b66ce Updates for 1.1.3 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5592 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:23:34 +00:00
Jean-Philippe Lang
32022267af Merged r5285 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5591 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:07:40 +00:00
Jean-Philippe Lang
f078f7127c Merged r5283 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5590 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:06:32 +00:00
Jean-Philippe Lang
c2cd4b7f48 Merged r5176 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5589 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:02:29 +00:00
Jean-Philippe Lang
0b5b8bebd1 Merged r5171 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5588 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:01:37 +00:00
Jean-Philippe Lang
9f36f18b39 Merged r4735 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5587 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 08:59:30 +00:00
Jean-Philippe Lang
fab0774c4b Fixes Prototypejs Form.serialize() for multiple selects (#7954).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5586 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:38:24 +00:00
Jean-Philippe Lang
93c0b120de Merged r5469 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5585 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:37:03 +00:00
Jean-Philippe Lang
e20191e666 Backported r5581 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5584 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:34:09 +00:00
Jean-Philippe Lang
8d3b32644b Merged r5330 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5583 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:31:21 +00:00
Jean-Philippe Lang
6153d5ab83 Merged r5265 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5582 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:29:23 +00:00
Jean-Philippe Lang
f49904569d Merged r5215 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5580 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:16:39 +00:00
Jean-Philippe Lang
f48460da4f Merged r5300 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5579 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:15:46 +00:00
Jean-Philippe Lang
bd55d7f815 Merged r5232 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5578 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:14:52 +00:00
Jean-Philippe Lang
4402e7e232 Merged r5214 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5577 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:13:59 +00:00
Jean-Philippe Lang
b43ebcbdc4 Merged r5186 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5576 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:12:52 +00:00
Jean-Philippe Lang
55fd2f5562 Merged r5185 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5575 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:11:56 +00:00
Jean-Philippe Lang
8a734f9997 Merged r5157 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5574 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:10:27 +00:00
Jean-Philippe Lang
d60949ca87 Merged r5181 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5573 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:09:19 +00:00
Jean-Philippe Lang
aef8228b0e Merged r5100 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5572 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:08:39 +00:00
Jean-Philippe Lang
20e6652109 Merged r5236 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5571 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:07:28 +00:00
Jean-Philippe Lang
d2bc5a9473 Merged r5105 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5570 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:05:41 +00:00
Jean-Philippe Lang
23e75d87d3 Merged r5097 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5569 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:04:23 +00:00
Jean-Philippe Lang
8a13595c64 Merged r5230 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5568 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:02:26 +00:00
Jean-Philippe Lang
7845843596 Merged r5225 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5567 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:00:16 +00:00
Toshi MARUYAMA
f26a504045 Merged r5557 from trunk.
Delete doc/git.rdoc.

http://www.redmine.org/projects/redmine/wiki/Contribute?version=27 has the github mirror link.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5558 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 22:43:42 +00:00
Toshi MARUYAMA
f274193893 Merged r5555 from trunk.
Remove obsolete github descriptions from doc/git.rdoc.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5556 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 14:08:01 +00:00
Toshi MARUYAMA
0ba400834c Merged r5553 from trunk.
Fix notice_failed_to_save_issues format in es, gl and ca locales.

Contributed by Jose M. Prieto.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5554 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 10:51:10 +00:00
Toshi MARUYAMA
e6148cfdd4 Merged r5502 from trunk.
Simplified Chinese translation updated by Peng Wang.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5503 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-18 04:29:28 +00:00
Toshi MARUYAMA
99b1b95222 Merged r5500 from trunk.
Czech translation updated by Lubor Nosek.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5501 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-17 23:42:31 +00:00
Toshi MARUYAMA
a9a5870d25 Merged r4901 from trunk.
Updated basque and czech translations. Contributed by Ales Zabala Alava and Michal Gebauer.

#7390 depends on this commit.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5497 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-17 16:26:53 +00:00
Toshi MARUYAMA
f09f2e8e63 scm: git: backout r5336 (#8081, #8083).
Git on Redmine CI Server does not support "--no-decorate" option of "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5347 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 06:59:50 +00:00
Toshi MARUYAMA
2a1203bfef scm: git: backout r5340 (#8081, #8083).
Git on Redmine CI Server does not support "--no-decorate" option of "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5346 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 06:58:47 +00:00
Toshi MARUYAMA
f6918d0242 Merged r5338 from trunk.
scm: git: add "decorate = short" in config log section of test repository.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5340 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 02:52:59 +00:00
Toshi MARUYAMA
e338f522dd Merged r5334 from trunk.
scm: git: add "--no-decorate" option in "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5336 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-05 23:18:29 +00:00
Jean-Philippe Lang
ab10e187a6 Merged r5322 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5323 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-05 12:17:43 +00:00
Toshi MARUYAMA
12801275a8 Merged r5281 from trunk.
r5256 in trunk and r5271 in 1.1-stable fixed #7794 completely.
r5253 (r5183) in trunk and r5184 effect the width of the ASCII character of Japanese PDF.

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5282 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-01 15:54:05 +00:00
Toshi MARUYAMA
e35e04de8e PDF: fix the width of the ASCII character of Japanese PDF (#7794).
r5256 in trunk has this change.
So, there is no need to commit in trunk.

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5271 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-01 01:26:38 +00:00
Toshi MARUYAMA
3ca48e1ecf Merged r5233 from trunk.
i18n: fix typo general_pdf_encoding "UFT-8" in sl.yml.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5234 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-28 01:14:15 +00:00
Toshi MARUYAMA
f49bbf48e7 Merged r5183 from trunk.
Fix an internal server error on formatting an issue as a PDF in Japanese.

Contributed by Yuki Sonoda.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5184 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-21 06:17:06 +00:00
Toshi MARUYAMA
891ed84fe3 Merged r5091 from trunk.
scm: mercurial: add :order => 'id DESC' explicitly for MySQL test fails.

Because :order => 'id DESC' is defined at 'has_many',
there is no need to set 'order'.
But, MySQL test fails.
Sqlite3 and PostgreSQL pass.
Is this MySQL bug?

MySQL svn trunk test on Redmine CI server fails.
But, svn 1.1-stable passes.
If this is MySQL bug, this effects 1.1-stable, too.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5092 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-11 07:46:23 +00:00
Jean-Philippe Lang
78a4a995e6 Merged r5030 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5031 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-07 19:27:14 +00:00
Jean-Philippe Lang
465534a298 Merged r5021 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5022 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 16:12:27 +00:00
Jean-Philippe Lang
d5f1bd07b2 Updates for 1.1.2 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5020 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 13:19:48 +00:00
Jean-Philippe Lang
50863117b8 Translations updates.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5018 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 13:12:50 +00:00
Jean-Philippe Lang
c6693fc78b Merged r4937 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5017 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 13:08:02 +00:00
Jean-Philippe Lang
1e01711e3d Merged r4946 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5015 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:57:03 +00:00
Jean-Philippe Lang
1ab7f6f930 Merged r4820 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5014 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:54:59 +00:00
Jean-Philippe Lang
f6f7467cdd Merged r4913, r4914, r4916 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5013 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:51:10 +00:00
Jean-Philippe Lang
4d0a955d3c Merged r5004 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5012 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:48:40 +00:00
Jean-Philippe Lang
c45044f13c Merged r4888 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5011 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:47:05 +00:00
Jean-Philippe Lang
4761e55691 Merged r4951 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5010 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-06 12:45:56 +00:00
Jean-Philippe Lang
af7fb657f4 Merged r4889 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4973 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 20:36:06 +00:00
Jean-Philippe Lang
0805ab943e Merged r4890 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4972 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 20:34:31 +00:00
Jean-Philippe Lang
9589c0bcad Merged r4811 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4971 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 20:33:31 +00:00
Jean-Philippe Lang
91295ea6cd Merged r4935 and r4947 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4970 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 20:32:25 +00:00
Jean-Philippe Lang
d0f4b5aa50 Merged r4968 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4969 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 20:27:44 +00:00
Jean-Philippe Lang
008e8d4fbf Merged r4965 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4966 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-28 16:45:02 +00:00
Toshi MARUYAMA
1e50fea55a Merged r4860 from trunk.
scm: fix diff revision param validation.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4877 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-18 13:48:29 +00:00
Toshi MARUYAMA
008d38d6b4 Merged r4816 from trunk.
scm: fix non ASCII filename downloaded from repo is broken on Internet Explorer.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4819 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-12 09:51:43 +00:00
Toshi MARUYAMA
c61c9e6471 Merged r4815 from trunk.
scm: cvs: fix most binary files become corrupted on Windows.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4818 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-12 09:51:21 +00:00
Jean-Baptiste Barth
e5b5b61d6e Merged r4813 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4814 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-12 09:03:36 +00:00
Jean-Baptiste Barth
6a8cdf54b3 Removed .project file and added it to svn:ignore'd files. #7497
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4812 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-12 08:56:19 +00:00
Jean-Baptiste Barth
e43d98a6f5 Merged r4799 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4800 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-02-06 00:34:21 +00:00
Jean-Philippe Lang
11b774d39d Merged r4784 from trunk (update for 1.1.1 release).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4785 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 14:38:25 +00:00
Jean-Philippe Lang
77c4667dbc Merged r4782 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4783 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 09:13:36 +00:00
Jean-Philippe Lang
f05fdd5cfa Merged r4780 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4781 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:54:51 +00:00
Jean-Philippe Lang
a0bb70ed2d Merged r4765 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4779 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:45:15 +00:00
Jean-Philippe Lang
1d5c3f7fba Translations updates.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4778 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:43:27 +00:00
Jean-Philippe Lang
8b83aa1470 Merged r4775 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4776 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:32:10 +00:00
Jean-Philippe Lang
3a92721af4 Merged r4739 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4774 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:22:38 +00:00
Jean-Philippe Lang
b3218ba4d4 Merged r4700 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4773 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:16:06 +00:00
Jean-Philippe Lang
975ee2b522 Merged r4701 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4772 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:11:51 +00:00
Jean-Philippe Lang
27a319e66d Merged r4727 and r4730 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4771 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:10:36 +00:00
Jean-Philippe Lang
7be5bf6e4d Merged r4741 and r4764 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4770 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:08:01 +00:00
Jean-Philippe Lang
c73d4042d1 Merged r4677 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4769 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:05:54 +00:00
Jean-Philippe Lang
8270ad1e64 Merged r4736 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4768 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:04:40 +00:00
Jean-Philippe Lang
26016fbf43 Merged r4761 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4767 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:02:16 +00:00
Jean-Philippe Lang
307e4ceaa2 Merged r4708 and r4709 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4766 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-30 06:00:56 +00:00
Jean-Philippe Lang
03085e85f9 Merged r4720, r4724, r4738 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4763 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-27 17:51:01 +00:00
Jean-Philippe Lang
1f4e0dc10c Merged r4719 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4762 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-27 17:44:40 +00:00
Toshi MARUYAMA
f69c95306d Merged r4749 from trunk.
scm: darcs: fix Darcs adapter recognizes new files as modified files above Darcs 2.4.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4751 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-23 04:21:57 +00:00
Toshi MARUYAMA
634ede3e8b Merged r4748 from trunk.
scm: darcs: add compatible test of Darcs 2.3 and 2.4.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4750 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-23 04:21:34 +00:00
Toshi MARUYAMA
c2a2979189 Merged r4744 from trunk.
scm: darcs: switch '.' or @url at entries() in darcs version.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4747 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-23 04:03:04 +00:00
Toshi MARUYAMA
9800469943 Merged r4743 from trunk.
scm: darcs: change io.gets to io.read and add darcs version unit test.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4746 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-23 04:02:41 +00:00
Toshi MARUYAMA
e47f1d5595 Merged r4742 from trunk.
scm: darcs: add unit lib test.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4745 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-23 04:02:15 +00:00
Jean-Philippe Lang
135fe04d02 Merged r4681 from trunk (missing fixtures breaking tests).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4732 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-16 16:39:19 +00:00
Jean-Philippe Lang
794d7c0959 Merged r4680 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4728 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-16 14:44:38 +00:00
Toshi MARUYAMA
b8f365f2a1 Merged r4713 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4717 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-14 23:37:50 +00:00
Toshi MARUYAMA
6188b9eddb Merged r4710 and r4714 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4716 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-14 23:37:30 +00:00
Toshi MARUYAMA
96c4dc3f1e Merged r4712 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4715 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-14 23:37:10 +00:00
Toshi MARUYAMA
b877215261 Merged r4703 from trunk (scm: fix error on revision page for empty revision).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4707 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-13 12:10:52 +00:00
Toshi MARUYAMA
788b143596 Merged r4665 from trunk.
scm: add compatible functional test fof changing diff revisions label at SCM adapter level.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4706 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-13 12:10:30 +00:00
Toshi MARUYAMA
6a261eb5a0 Merged r4691 from trunk (fix assert_equal parameter order in subversion and git unit test).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4693 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-11 15:28:23 +00:00
Toshi MARUYAMA
007fbc00cf Merged r4687 from trunk (fix setup mercurial test repository).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4689 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-11 08:46:27 +00:00
Toshi MARUYAMA
9b8b4b3bfc Merged r4683 from trunk (test:scm:setup:mercurial task can be simpler).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4685 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-11 04:22:52 +00:00
Toshi MARUYAMA
6734f91a72 Merged r4676 from trunk (change mercurial test repository from tar.gz to bundle).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4684 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-11 04:22:31 +00:00
Jean-Philippe Lang
5266346315 Set the version to stable (#7259).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4678 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-10 18:13:09 +00:00
Toshi MARUYAMA
d426e4452b Merged r4644 and r4674 from trunk (mercurial unit app test).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4675 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-09 23:39:46 +00:00
Jean-Philippe Lang
f8af1bebd7 Merged r4670 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4671 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-09 15:58:15 +00:00
Jean-Philippe Lang
6e695a4d1a Merged r4645 to r4651 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4660 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-08 10:14:00 +00:00
Jean-Philippe Lang
e5b7c94cb4 Merged r4643 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4659 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-08 10:09:04 +00:00
Jean-Philippe Lang
9028e664c4 Merged r4656 and r4657 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4658 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-08 10:04:38 +00:00
Toshi MARUYAMA
6318affd31 Merged r4652 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4653 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-08 00:24:43 +00:00
Jean-Philippe Lang
8794cd3344 Merged r4610 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4649 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-06 21:04:24 +00:00
Toshi MARUYAMA
2fcd4e5271 Merged r4636 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4642 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:12:08 +00:00
Toshi MARUYAMA
ea60705ca7 Merged r4635 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4641 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:11:47 +00:00
Toshi MARUYAMA
90bce4e366 Merged r4634 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4640 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:11:21 +00:00
Toshi MARUYAMA
9f7cc355ad Merged r4633 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4639 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:10:58 +00:00
Toshi MARUYAMA
6ee4c0bac7 Merged r4632 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4638 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:10:38 +00:00
Toshi MARUYAMA
b0f0bd1848 Merged r4631 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4637 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-05 15:10:17 +00:00
Toshi MARUYAMA
fe563a8802 Merged r4629 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4630 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-04 16:39:45 +00:00
Toshi MARUYAMA
8ebab00767 Merged r4625 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4628 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-03 10:55:07 +00:00
Toshi MARUYAMA
d97297e45d Merged r4624 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4627 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-03 10:54:29 +00:00
Toshi MARUYAMA
f06500dcce Merged r4623 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4626 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-03 10:53:47 +00:00
Jean-Philippe Lang
b098e2b63f Merged r4621 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4622 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-02 14:37:55 +00:00
Jean-Philippe Lang
151a49b319 Merged r4618 and r4619 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4620 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-02 12:17:39 +00:00
Jean-Philippe Lang
ded234794e Merged r4615 and r4616 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4617 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-02 11:44:19 +00:00
Toshi MARUYAMA
119732c3ee Merged r4613 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4614 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-02 09:52:29 +00:00
Toshi MARUYAMA
730fcef844 Merged r4611 from trunk (Mercurial sorting).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4612 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-02 06:14:59 +00:00
Toshi MARUYAMA
1cb33f3a95 Merged r4608 from trunk (repository: switch darcs cat test if cat supports).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4609 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-01 22:05:48 +00:00
Toshi MARUYAMA
69edd3c53f Merged r4606 from trunk (.hgignore).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4607 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-01-01 21:20:25 +00:00
Jean-Philippe Lang
ad784e2146 Merged locales updates (r4592 to 4595) from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4596 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-12-30 15:54:47 +00:00
Jean-Philippe Lang
c783ae4b3d 1.1-stable branch added
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4585 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-12-30 15:09:18 +00:00
209 changed files with 16043 additions and 3543 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
/.project
/.loadpath
/config/additional_environment.rb
/config/database.yml
/config/email.yml

24
.hgignore Normal file
View File

@@ -0,0 +1,24 @@
syntax: glob
.project
.loadpath
config/additional_environment.rb
config/database.yml
config/email.yml
config/initializers/session_store.rb
coverage
db/*.db
db/*.sqlite3
db/schema.rb
files/*
log/*.log*
log/mongrel_debug
public/dispatch.*
public/plugin_assets
tmp/*
tmp/cache/*
tmp/sessions/*
tmp/sockets/*
tmp/test/*
vendor/rails
*.rbc

View File

@@ -28,6 +28,7 @@ class IssueRelationsController < ApplicationController
respond_to do |format|
format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
format.js do
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
render :update do |page|
page.replace_html "relations", :partial => 'issues/relations'
if @relation.errors.empty?
@@ -47,7 +48,10 @@ class IssueRelationsController < ApplicationController
end
respond_to do |format|
format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
format.js { render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} }
format.js {
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'}
}
end
end

View File

@@ -44,6 +44,8 @@ class IssuesController < ApplicationController
include AttachmentsHelper
helper :queries
include QueriesHelper
helper :repositories
include RepositoriesHelper
helper :sort
include SortHelper
include IssuesHelper
@@ -106,6 +108,7 @@ class IssuesController < ApplicationController
@journals.reverse! if User.current.wants_comments_in_reverse_order?
@changesets = @issue.changesets.visible.all
@changesets.reverse! if User.current.wants_comments_in_reverse_order?
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@edit_allowed = User.current.allowed_to?(:edit_issues, @project)
@priorities = IssuePriority.all
@@ -233,7 +236,13 @@ class IssuesController < ApplicationController
return unless api_request?
end
end
@issues.each(&:destroy)
@issues.each do |issue|
begin
issue.reload.destroy
rescue ::ActiveRecord::RecordNotFound # raised by #reload if issue no longer exists
# nothing to do, issue was already deleted (eg. by a parent)
end
end
respond_to do |format|
format.html { redirect_back_or_default(:action => 'index', :project_id => @project) }
format.api { head :ok }

View File

@@ -23,6 +23,7 @@ class JournalsController < ApplicationController
accept_key_auth :index
helper :issues
helper :custom_fields
helper :queries
include QueriesHelper
helper :sort
@@ -75,6 +76,14 @@ class JournalsController < ApplicationController
format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id }
format.js { render :action => 'update' }
end
else
respond_to do |format|
format.html {
# TODO: implement non-JS journal update
render :nothing => true
}
format.js
end
end
end

View File

@@ -32,9 +32,6 @@ class ProjectsController < ApplicationController
end
end
# TODO: convert to PUT only
verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
helper :sort
include SortHelper
helper :custom_fields
@@ -71,13 +68,13 @@ class ProjectsController < ApplicationController
@project = Project.new(params[:project])
end
verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
def create
@issue_custom_fields = IssueCustomField.find(:all, :order => "#{CustomField.table_name}.position")
@trackers = Tracker.all
@project = Project.new
@project.safe_attributes = params[:project]
@project.enabled_module_names = params[:enabled_modules] if params[:enabled_modules]
if validate_parent_id && @project.save
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
# Add current user as a project member if he is not admin
@@ -120,17 +117,16 @@ class ProjectsController < ApplicationController
Mailer.with_deliveries(params[:notifications] == '1') do
@project = Project.new
@project.safe_attributes = params[:project]
@project.enabled_module_names = params[:enabled_modules]
if validate_parent_id && @project.copy(@source_project, :only => params[:only])
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
flash[:notice] = l(:notice_successful_create)
redirect_to :controller => 'projects', :action => 'settings'
redirect_to :controller => 'projects', :action => 'settings', :id => @project
elsif !@project.new_record?
# Project was created
# But some objects were not copied due to validation failures
# (eg. issues from disabled trackers)
# TODO: inform about that
redirect_to :controller => 'projects', :action => 'settings'
redirect_to :controller => 'projects', :action => 'settings', :id => @project
end
end
end
@@ -184,6 +180,8 @@ class ProjectsController < ApplicationController
def edit
end
# TODO: convert to PUT only
verify :method => [:post, :put], :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
def update
@project.safe_attributes = params[:project]
if validate_parent_id && @project.save
@@ -205,9 +203,10 @@ class ProjectsController < ApplicationController
end
end
end
verify :method => :post, :only => :modules, :render => {:nothing => true, :status => :method_not_allowed }
def modules
@project.enabled_module_names = params[:enabled_modules]
@project.enabled_module_names = params[:enabled_module_names]
flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'settings', :id => @project, :tab => 'modules'
end

View File

@@ -123,7 +123,7 @@ class RepositoriesController < ApplicationController
(show_error_not_found; return) unless @content
if 'raw' == params[:format] || @content.is_binary_data? || (@entry.size && @entry.size > Setting.file_max_size_displayed.to_i.kilobyte)
# Force the download
send_data @content, :filename => @path.split('/').last
send_data @content, :filename => filename_for_content_disposition(@path.split('/').last)
else
# Prevent empty lines when displaying a file with Windows style eol
@content.gsub!("\r\n", "\n")
@@ -139,6 +139,7 @@ class RepositoriesController < ApplicationController
end
def revision
raise ChangesetNotFound if @rev.nil? || @rev.empty?
@changeset = @repository.find_changeset_by_name(@rev)
raise ChangesetNotFound unless @changeset
@@ -174,6 +175,9 @@ class RepositoriesController < ApplicationController
@diff = @repository.diff(@path, @rev, @rev_to)
show_error_not_found unless @diff
end
@changeset = @repository.find_changeset_by_name(@rev)
@changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil
end
end
@@ -209,7 +213,7 @@ class RepositoriesController < ApplicationController
@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip
@rev_to = params[:rev_to]
unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE)
unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE)
if @repository.branches.blank?
raise InvalidRevisionParam
end
@@ -221,7 +225,7 @@ class RepositoriesController < ApplicationController
end
def show_error_not_found
render_error l(:error_scm_not_found)
render_error :message => l(:error_scm_not_found), :status => 404
end
# Handler for Redmine::Scm::Adapters::CommandFailed exception

View File

@@ -93,9 +93,6 @@ class WikiController < ApplicationController
# To prevent StaleObjectError exception when reverting to a previous version
@content.version = @page.content.version
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:error] = l(:notice_locking_conflict)
end
verify :method => :put, :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
@@ -131,7 +128,8 @@ class WikiController < ApplicationController
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:error] = l(:notice_locking_conflict)
flash.now[:error] = l(:notice_locking_conflict)
render :action => 'edit'
end
# rename a page

View File

@@ -104,8 +104,10 @@ module ApplicationHelper
# * :text - Link text (default to the formatted revision)
def link_to_revision(revision, project, options={})
text = options.delete(:text) || format_revision(revision)
rev = revision.respond_to?(:identifier) ? revision.identifier : revision
link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => revision}, :title => l(:label_revision_id, revision))
link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => rev},
:title => l(:label_revision_id, format_revision(revision)))
end
# Generates a link to a project if active

View File

@@ -1,5 +1,5 @@
# redMine - project management software
# Copyright (C) 2006 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -37,7 +37,7 @@ module CustomFieldsHelper
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, custom_value.value, :id => field_id, :size => 10) +
calendar_for(field_id)
@@ -72,7 +72,7 @@ module CustomFieldsHelper
field_name = "#{name}[custom_field_values][#{custom_field.id}]"
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, '', :id => field_id, :size => 10) +
calendar_for(field_id)

View File

@@ -18,8 +18,12 @@
require 'iconv'
module RepositoriesHelper
def format_revision(txt)
txt.to_s[0,8]
def format_revision(revision)
if revision.respond_to? :format_identifier
revision.format_identifier
else
revision.to_s
end
end
def truncate_at_line_break(text, length = 255)
@@ -87,7 +91,7 @@ module RepositoriesHelper
:action => 'show',
:id => @project,
:path => path_param,
:rev => @changeset.revision)
:rev => @changeset.identifier)
output << "<li class='#{style}'>#{text}</li>"
output << render_changes_tree(s)
elsif c = tree[file][:c]
@@ -97,13 +101,13 @@ module RepositoriesHelper
:action => 'entry',
:id => @project,
:path => path_param,
:rev => @changeset.revision) unless c.action == 'D'
:rev => @changeset.identifier) unless c.action == 'D'
text << " - #{c.revision}" unless c.revision.blank?
text << ' (' + link_to('diff', :controller => 'repositories',
:action => 'diff',
:id => @project,
:path => path_param,
:rev => @changeset.revision) + ') ' if c.action == 'M'
:rev => @changeset.identifier) + ') ' if c.action == 'M'
text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank?
output << "<li class='#{style}'>#{text}</li>"
end

View File

@@ -23,10 +23,10 @@ class Changeset < ActiveRecord::Base
has_many :changes, :dependent => :delete_all
has_and_belongs_to_many :issues
acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
:description => :long_comments,
:datetime => :committed_on,
:url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.revision}}
:url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.identifier}}
acts_as_searchable :columns => 'comments',
:include => {:repository => :project},
@@ -47,6 +47,15 @@ class Changeset < ActiveRecord::Base
def revision=(r)
write_attribute :revision, (r.nil? ? nil : r.to_s)
end
# Returns the identifier of this changeset; depending on repository backends
def identifier
if repository.class.respond_to? :changeset_identifier
repository.class.changeset_identifier self
else
revision.to_s
end
end
def comments=(comment)
write_attribute(:comments, Changeset.normalize_comments(comment))
@@ -56,6 +65,15 @@ class Changeset < ActiveRecord::Base
self.commit_date = date
super
end
# Returns the readable identifier
def format_identifier
if repository.class.respond_to? :format_changeset_identifier
repository.class.format_changeset_identifier self
else
identifier
end
end
def committer=(arg)
write_attribute(:committer, self.class.to_utf8(arg.to_s))
@@ -79,11 +97,13 @@ class Changeset < ActiveRecord::Base
TIMELOG_RE = /
(
(\d+([.,]\d+)?)h?
((\d+)(h|hours?))((\d+)(m|min)?)?
|
((\d+)(h|hours?|m|min))
|
(\d+):(\d+)
|
((\d+)(h|hours?))?((\d+)(m|min)?)?
(\d+([\.,]\d+)?)h?
)
/x
@@ -165,7 +185,7 @@ class Changeset < ActiveRecord::Base
return nil if id.blank?
issue = Issue.find_by_id(id.to_i, :include => :project)
if issue
unless project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
unless issue.project && (project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project))
issue = nil
end
end

View File

@@ -34,7 +34,7 @@ class Issue < ActiveRecord::Base
has_many :relations_from, :class_name => 'IssueRelation', :foreign_key => 'issue_from_id', :dependent => :delete_all
has_many :relations_to, :class_name => 'IssueRelation', :foreign_key => 'issue_to_id', :dependent => :delete_all
acts_as_nested_set :scope => 'root_id'
acts_as_nested_set :scope => 'root_id', :dependent => :destroy
acts_as_attachable :after_remove => :attachment_removed
acts_as_customizable
acts_as_watchable
@@ -89,7 +89,6 @@ class Issue < ActiveRecord::Base
before_create :default_assign
before_save :close_duplicates, :update_done_ratio_from_issue_status
after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
after_destroy :destroy_children
after_destroy :update_parent_attributes
# Returns true if usr or current user is allowed to view the issue
@@ -755,14 +754,6 @@ class Issue < ActiveRecord::Base
end
end
def destroy_children
unless leaf?
children.each do |child|
child.destroy
end
end
end
# Update issues so their versions are not pointing to a
# fixed_version that is not shared with the issue's project
def self.update_versions(conditions=nil)

View File

@@ -100,7 +100,7 @@ class MailHandler < ActionMailer::Base
elsif m = email.subject.match(MESSAGE_REPLY_SUBJECT_RE)
receive_message_reply(m[1].to_i)
else
receive_issue
dispatch_to_default
end
rescue ActiveRecord::RecordInvalid => e
# TODO: send a email to the user
@@ -113,6 +113,10 @@ class MailHandler < ActionMailer::Base
logger.error "MailHandler: unauthorized attempt from #{user}" if logger
false
end
def dispatch_to_default
receive_issue
end
# Creates a new issue
def receive_issue
@@ -151,9 +155,10 @@ class MailHandler < ActionMailer::Base
# ignore CLI-supplied defaults for new issues
@@handler_options[:issue].clear
journal = issue.init_journal(user, cleaned_up_text_body)
journal = issue.init_journal(user)
issue.safe_attributes = issue_attributes_from_keywords(issue)
issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
journal.notes = cleaned_up_text_body
add_attachments(issue)
issue.save!
logger.info "MailHandler: issue ##{issue.id} updated by #{user}" if logger && logger.info

View File

@@ -85,7 +85,7 @@ class Mailer < ActionMailer::Base
subject l(:mail_subject_reminder, :count => issues.size, :days => days)
body :issues => issues,
:days => days,
:issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort_key => 'due_date', :sort_order => 'asc')
:issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort => 'due_date:asc')
render_multipart('reminder', body)
end
@@ -114,11 +114,11 @@ class Mailer < ActionMailer::Base
added_to_url = ''
case container.class.name
when 'Project'
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container)
added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container)
added_to = "#{l(:label_project)}: #{container}"
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
when 'Version'
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container.project_id)
added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container.project)
added_to = "#{l(:label_version)}: #{container.name}"
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
when 'Document'
@@ -326,7 +326,7 @@ class Mailer < ActionMailer::Base
:conditions => s.conditions
).group_by(&:assigned_to)
issues_by_assignee.each do |assignee, issues|
deliver_reminder(assignee, issues, days) unless assignee.nil?
deliver_reminder(assignee, issues, days) if assignee && assignee.active?
end
end

View File

@@ -43,7 +43,7 @@ class Project < ActiveRecord::Base
has_many :time_entries, :dependent => :delete_all
has_many :queries, :dependent => :delete_all
has_many :documents, :dependent => :destroy
has_many :news, :dependent => :delete_all, :include => :author
has_many :news, :dependent => :destroy, :include => :author
has_many :issue_categories, :dependent => :delete_all, :order => "#{IssueCategory.table_name}.name"
has_many :boards, :dependent => :destroy, :order => "position ASC"
has_one :repository, :dependent => :destroy
@@ -56,7 +56,7 @@ class Project < ActiveRecord::Base
:join_table => "#{table_name_prefix}custom_fields_projects#{table_name_suffix}",
:association_foreign_key => 'custom_field_id'
acts_as_nested_set :order => 'name'
acts_as_nested_set :order => 'name', :dependent => :destroy
acts_as_attachable :view_permission => :view_files,
:delete_permission => :manage_files
@@ -66,7 +66,7 @@ class Project < ActiveRecord::Base
:url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o}},
:author => nil
attr_protected :status, :enabled_module_names
attr_protected :status
validates_presence_of :name, :identifier
validates_uniqueness_of :identifier
@@ -79,7 +79,7 @@ class Project < ActiveRecord::Base
# reserved words
validates_exclusion_of :identifier, :in => %w( new )
before_destroy :delete_all_members, :destroy_children
before_destroy :delete_all_members
named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } }
named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
@@ -509,10 +509,7 @@ class Project < ActiveRecord::Base
def enabled_module_names=(module_names)
if module_names && module_names.is_a?(Array)
module_names = module_names.collect(&:to_s).reject(&:blank?)
# remove disabled modules
enabled_modules.each {|mod| mod.destroy unless module_names.include?(mod.name)}
# add new modules
module_names.reject {|name| module_enabled?(name)}.each {|name| enabled_modules << EnabledModule.new(:name => name)}
self.enabled_modules = module_names.collect {|name| enabled_modules.detect {|mod| mod.name == name} || EnabledModule.new(:name => name)}
else
enabled_modules.clear
end
@@ -533,6 +530,9 @@ class Project < ActiveRecord::Base
'tracker_ids',
'issue_custom_field_ids'
safe_attributes 'enabled_module_names',
:if => lambda {|project, user| project.new_record? || user.allowed_to?(:select_project_modules, project) }
# Returns an array of projects that are in this project's hierarchy
#
# Example: parents, children, siblings
@@ -618,13 +618,6 @@ class Project < ActiveRecord::Base
private
# Destroys children before destroying self
def destroy_children
children.each do |child|
child.destroy
end
end
# Copies wiki from +project+
def copy_wiki(project)
# Check that the source project has a wiki first
@@ -740,7 +733,12 @@ class Project < ActiveRecord::Base
# Copies members from +project+
def copy_members(project)
project.memberships.each do |member|
# Copy users first, then groups to handle members with inherited and given roles
members_to_copy = []
members_to_copy += project.memberships.select {|m| m.principal.is_a?(User)}
members_to_copy += project.memberships.select {|m| !m.principal.is_a?(User)}
members_to_copy.each do |member|
new_member = Member.new
new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on")
# only copy non inherited roles

View File

@@ -566,9 +566,19 @@ class Query < ActiveRecord::Base
sql = ''
case operator
when "="
sql = "#{db_table}.#{db_field} IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")"
if value.any?
sql = "#{db_table}.#{db_field} IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + ")"
else
# IN an empty set
sql = "1=0"
end
when "!"
sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))"
if value.any?
sql = "(#{db_table}.#{db_field} IS NULL OR #{db_table}.#{db_field} NOT IN (" + value.collect{|val| "'#{connection.quote_string(val)}'"}.join(",") + "))"
else
# NOT IN an empty set
sql = "1=1"
end
when "!*"
sql = "#{db_table}.#{db_field} IS NULL"
sql << " OR #{db_table}.#{db_field} = ''" if is_custom_filter

View File

@@ -91,12 +91,13 @@ class Repository < ActiveRecord::Base
def relative_path(path)
path
end
# Finds and returns a revision with a number or the beginning of a hash
def find_changeset_by_name(name)
return nil if name.blank?
changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_s] : ["revision LIKE ?", name + '%']))
end
def latest_changeset
@latest_changeset ||= changesets.find(:first)
end

View File

@@ -29,6 +29,16 @@ class Repository::Git < Repository
'Git'
end
# Returns the identifier for the given git changeset
def self.changeset_identifier(changeset)
changeset.scmid
end
# Returns the readable identifier for the given git changeset
def self.format_changeset_identifier(changeset)
changeset.revision[0, 8]
end
def branches
scm.branches
end

View File

@@ -18,6 +18,9 @@
require 'redmine/scm/adapters/mercurial_adapter'
class Repository::Mercurial < Repository
# sort changesets by revision number
has_many :changesets, :order => "#{Changeset.table_name}.id DESC", :foreign_key => 'repository_id'
attr_protected :root_url
validates_presence_of :url
@@ -52,6 +55,18 @@ class Repository::Mercurial < Repository
entries
end
# Returns the latest changesets for +path+; sorted by revision number
def latest_changesets(path, rev, limit=10)
if path.blank?
changesets.find(:all, :include => :user, :limit => limit, :order => "id DESC")
else
changes.find(:all, :include => {:changeset => :user},
:conditions => ["path = ?", path.with_leading_slash],
:order => "#{Changeset.table_name}.id DESC",
:limit => limit).collect(&:changeset)
end
end
def fetch_changesets
scm_info = scm.info
if scm_info

View File

@@ -66,6 +66,9 @@ class TimeEntry < ActiveRecord::Base
# these attributes make time aggregations easier
def spent_on=(date)
super
if spent_on.is_a?(Time)
self.spent_on = spent_on.to_date
end
self.tyear = spent_on ? spent_on.year : nil
self.tmonth = spent_on ? spent_on.month : nil
self.tweek = spent_on ? Date.civil(spent_on.year, spent_on.month, spent_on.day).cweek : nil

View File

@@ -261,12 +261,16 @@ class User < Principal
notified_projects_ids
end
# Only users that belong to more than 1 project can select projects for which they are notified
def valid_notification_options
self.class.valid_notification_options(self)
end
# Only users that belong to more than 1 project can select projects for which they are notified
def self.valid_notification_options(user=nil)
# Note that @user.membership.size would fail since AR ignores
# :include association option when doing a count
if memberships.length < 1
MAIL_NOTIFICATION_OPTIONS.delete_if {|option| option.first == 'selected'}
if user.nil? || user.memberships.length < 1
MAIL_NOTIFICATION_OPTIONS.reject {|option| option.first == 'selected'}
else
MAIL_NOTIFICATION_OPTIONS
end
@@ -419,7 +423,12 @@ class User < Principal
when 'all'
true
when 'selected'
# Handled by the Project
# user receives notifications for created/assigned issues on unselected projects
if object.is_a?(Issue) && (object.author == self || object.assigned_to == self)
true
else
false
end
when 'none'
false
when 'only_my_events'

View File

@@ -45,11 +45,11 @@ class Wiki < ActiveRecord::Base
# find the page with the given title
def find_page(title, options = {})
title = start_page if title.blank?
title = Wiki.titleize(title).downcase
page = pages.first(:conditions => ["LOWER(title) LIKE ?", title])
title = Wiki.titleize(title)
page = pages.first(:conditions => ["LOWER(title) = LOWER(?)", title])
if !page && !(options[:with_redirect] == false)
# search for a redirect
redirect = redirects.first(:conditions => ["LOWER(title) LIKE ?", title])
redirect = redirects.first(:conditions => ["LOWER(title) = LOWER(?)", title])
page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
end
page

View File

@@ -69,4 +69,5 @@
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@project}: #{@board}") %>
<%= stylesheet_link_tag 'scm' %>
<% end %>

View File

@@ -60,7 +60,7 @@ end
# Width of the entire chart
g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom
@gantt.render(:top => headers_height + 8, :zoom => zoom, :g_width => g_width)
@gantt.render(:top => headers_height + 8, :zoom => zoom, :g_width => g_width, :subject_width => subject_width)
g_height = [(20 * (@gantt.number_of_rows + 6))+150, 206].max
t_height = g_height + headers_height

View File

@@ -1,9 +1,9 @@
<% changesets.each do |changeset| %>
<div class="changeset <%= cycle('odd', 'even') %>">
<p><%= link_to("#{l(:label_revision)} #{changeset.revision}",
:controller => 'repositories', :action => 'revision', :id => changeset.project, :rev => changeset.revision) %><br />
<p><%= link_to_revision(changeset, changeset.project,
:text => "#{l(:label_revision)} #{changeset.format_identifier}") %><br />
<span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
<div class="changeset-changes">
<div class="wiki">
<%= textilizable(changeset, :comments) %>
</div>
</div>

View File

@@ -6,9 +6,9 @@
<p><strong><%=l(:label_related_issues)%></strong></p>
<% if @issue.relations.any? %>
<% if @relations.present? %>
<table style="width:100%">
<% @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation| %>
<% @relations.each do |relation| %>
<tr>
<td><%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
<%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>

View File

@@ -26,10 +26,10 @@ api.issue do
render_api_issue_children(@issue, api) if include_in_api_response?('children')
api.array :relations do
@issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
@relations.each do |relation|
api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
end
end if include_in_api_response?('relations')
end if include_in_api_response?('relations') && @relations.present?
api.array :changesets do
@issue.changesets.each do |changeset|

View File

@@ -21,7 +21,7 @@
<!-- page specific tags -->
<%= yield :header_tags -%>
</head>
<body class="<%= body_css_classes %>">
<body class="<%=h body_css_classes %>">
<div id="wrapper">
<div id="wrapper2">
<div id="top-menu">
@@ -69,7 +69,7 @@
<div id="footer">
<div class="bgl"><div class="bgr">
Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2010 Jean-Philippe Lang
Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> &copy; 2006-2011 Jean-Philippe Lang
</div></div>
</div>
</div>

View File

@@ -12,3 +12,7 @@
}, :accesskey => accesskey(:preview) %>
<% end %>
<div id="preview" class="wiki"></div>
<% content_for :header_tags do %>
<%= stylesheet_link_tag 'scm' %>
<% end %>

View File

@@ -23,8 +23,22 @@
<%= call_hook(:view_projects_form, :project => @project, :form => f) %>
</div>
<% if @project.new_record? %>
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
<% Redmine::AccessControl.available_project_modules.each do |m| %>
<label class="floating">
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
<%= l_or_humanize(m, :prefix => "project_module_") %>
</label>
<% end %>
<%= hidden_field_tag 'project[enabled_module_names][]', '' %>
<%= javascript_tag 'observeProjectModules()' %>
</fieldset>
<% end %>
<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
<% unless @trackers.empty? %>
<fieldset class="box"><legend><%=l(:label_tracker_plural)%></legend>
<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
<% @trackers.each do |tracker| %>
<label class="floating">
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %>
@@ -36,7 +50,7 @@
<% end %>
<% unless @issue_custom_fields.empty? %>
<fieldset class="box"><legend><%=l(:label_custom_field_plural)%></legend>
<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
<% @issue_custom_fields.each do |custom_field| %>
<label class="floating">
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
@@ -46,4 +60,5 @@
<%= hidden_field_tag 'project[issue_custom_field_ids][]', '' %>
</fieldset>
<% end %>
<% end %>
<!--[eoform:project]-->

View File

@@ -3,15 +3,6 @@
<% labelled_tabular_form_for :project, @project, :url => { :action => "copy" } do |f| %>
<%= render :partial => 'form', :locals => { :f => f } %>
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
<% Redmine::AccessControl.available_project_modules.each do |m| %>
<label class="floating">
<%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) %>
<%= l_or_humanize(m, :prefix => "project_module_") %>
</label>
<% end %>
</fieldset>
<fieldset class="box"><legend><%= l(:button_copy) %></legend>
<label class="block"><%= check_box_tag 'only[]', 'members', true %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label>
<label class="block"><%= check_box_tag 'only[]', 'versions', true %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label>

View File

@@ -2,18 +2,6 @@
<% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %>
<%= render :partial => 'form', :locals => { :f => f } %>
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
<% Redmine::AccessControl.available_project_modules.each do |m| %>
<label class="floating">
<%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) %>
<%= l_or_humanize(m, :prefix => "project_module_") %>
</label>
<% end %>
<%= hidden_field_tag 'enabled_modules[]', '' %>
</fieldset>
<%= submit_tag l(:button_save) %>
<%= javascript_tag "Form.Element.focus('project_name');" %>
<% end %>

View File

@@ -56,8 +56,8 @@
<div class="splitcontentright">
<% if roles.any? && principals.any? %>
<% remote_form_for(:member, @member, :url => {:controller => 'members', :action => 'new', :id => @project}, :method => :post,
:loading => "$('member-add-submit').disable()",
:complete => "$('member-add-submit').enable()") do |f| %>
:loading => '$(\'member-add-submit\').disable();',
:complete => 'if($(\'member-add-submit\')) $(\'member-add-submit\').enable();') do |f| %>
<fieldset><legend><%=l(:label_member_new)%></legend>
<p><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></p>

View File

@@ -7,7 +7,7 @@
<legend><%= l(:text_select_project_modules) %></legend>
<% Redmine::AccessControl.available_project_modules.each do |m| %>
<p><label><%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) -%>
<p><label><%= check_box_tag 'enabled_module_names[]', m, @project.module_enabled?(m) -%>
<%= l_or_humanize(m, :prefix => "project_module_") %></label></p>
<% end %>
</fieldset>

View File

@@ -17,7 +17,7 @@
</td>
<td class="size"><%= (entry.size ? number_to_human_size(entry.size) : "?") unless entry.is_dir? %></td>
<% changeset = @project.repository.changesets.find_by_revision(entry.lastrev.identifier) if entry.lastrev && entry.lastrev.identifier %>
<td class="revision"><%= link_to_revision(changeset.revision, @project) if changeset %></td>
<td class="revision"><%= link_to_revision(changeset, @project) if changeset %></td>
<td class="age"><%= distance_of_time_in_words(entry.lastrev.time, Time.now) if entry.lastrev && entry.lastrev.time %></td>
<td class="author"><%= changeset.nil? ? h(entry.lastrev.author.to_s.split('<').first) : changeset.author if entry.lastrev %></td>
<td class="comments"><%=h truncate(changeset.comments, :length => 50) unless changeset.nil? %></td>

View File

@@ -13,9 +13,9 @@
<% line_num = 1 %>
<% revisions.each do |changeset| %>
<tr class="changeset <%= cycle 'odd', 'even' %>">
<td class="id"><%= link_to_revision(changeset.revision, project) %></td>
<td class="checkbox"><%= radio_button_tag('rev', changeset.revision, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
<td class="checkbox"><%= radio_button_tag('rev_to', changeset.revision, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
<td class="id"><%= link_to_revision(changeset, project) %></td>
<td class="checkbox"><%= radio_button_tag('rev', changeset.identifier, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < revisions.size) %></td>
<td class="checkbox"><%= radio_button_tag('rev_to', changeset.identifier, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('cb-#{line_num}').checked==true) {$('cb-#{line_num-1}').checked=true;}") if show_diff && (line_num > 1) %></td>
<td class="committed_on"><%= format_time(changeset.committed_on) %></td>
<td class="author"><%=h changeset.author %></td>
<td class="comments"><%= textilizable(truncate_at_line_break(changeset.comments)) %></td>

View File

@@ -19,7 +19,7 @@
<tr class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %>">
<th class="line-num" id="L<%= line_num %>"><a href="#L<%= line_num %>"><%= line_num %></a></th>
<td class="revision">
<%= (revision.identifier ? link_to(format_revision(revision.identifier), :action => 'revision', :id => @project, :rev => revision.identifier) : format_revision(revision.revision)) if revision %></td>
<%= (revision.identifier ? link_to_revision(revision, @project) : format_revision(revision)) if revision %></td>
<td class="author"><%= h(revision.author.to_s.split('<').first) if revision %></td>
<td class="line-code"><pre><%= line %></pre></td>
</tr>

View File

@@ -1,4 +1,4 @@
<h2><%= l(:label_revision) %> <%= format_revision(@rev_to) + ':' if @rev_to %><%= format_revision(@rev) %> <%=h @path %></h2>
<h2><%= l(:label_revision) %> <%= format_revision(@changeset_to) + ':' if @changeset_to %><%= format_revision(@changeset) %> <%=h @path %></h2>
<!-- Choose view type -->
<% form_tag({:path => to_path_param(@path)}, :method => 'get') do %>

View File

@@ -1,25 +1,25 @@
<div class="contextual">
&#171;
<% unless @changeset.previous.nil? -%>
<%= link_to_revision(@changeset.previous.revision, @project, :text => l(:label_previous)) %>
<%= link_to_revision(@changeset.previous, @project, :text => l(:label_previous)) %>
<% else -%>
<%= l(:label_previous) %>
<% end -%>
|
<% unless @changeset.next.nil? -%>
<%= link_to_revision(@changeset.next.revision, @project, :text => l(:label_next)) %>
<%= link_to_revision(@changeset.next, @project, :text => l(:label_next)) %>
<% else -%>
<%= l(:label_next) %>
<% end -%>
&#187;&nbsp;
<% form_tag({:controller => 'repositories', :action => 'revision', :id => @project, :rev => nil}, :method => :get) do %>
<%= text_field_tag 'rev', @rev[0,8], :size => 8 %>
<%= text_field_tag 'rev', @rev, :size => 8 %>
<%= submit_tag 'OK', :name => nil %>
<% end %>
</div>
<h2><%= l(:label_revision) %> <%= format_revision(@changeset.revision) %></h2>
<h2><%= l(:label_revision) %> <%= format_revision(@changeset) %></h2>
<p><% if @changeset.scmid %>ID: <%= @changeset.scmid %><br /><% end %>
<span class="author"><%= authoring(@changeset.committed_on, @changeset.author) %></span></p>
@@ -45,7 +45,7 @@
<li class="change change-D"><%= l(:label_deleted) %></li>
</ul>
<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.revision) if @changeset.changes.any? %></p>
<p><%= link_to(l(:label_view_diff), :action => 'diff', :id => @project, :path => "", :rev => @changeset.identifier) if @changeset.changes.any? %></p>
<div class="changeset-changes">
<%= render_changeset_changes %>
@@ -56,4 +56,4 @@
<%= stylesheet_link_tag "scm" %>
<% end %>
<% html_title("#{l(:label_revision)} #{@changeset.revision}") -%>
<% html_title("#{l(:label_revision)} #{format_revision(@changeset)}") -%>

View File

@@ -15,7 +15,7 @@
<p><%= setting_check_box :gravatar_enabled %></p>
<p><%= setting_select :gravatar_default, [["Wavatars", 'wavatar'], ["Identicons", 'identicon'], ["Monster ids", 'monsterid']], :blank => :label_none %></p>
<p><%= setting_select :gravatar_default, [["Wavatars", 'wavatar'], ["Identicons", 'identicon'], ["Monster ids", 'monsterid'], ["Retro", "retro"]], :blank => :label_none %></p>
</div>
<%= submit_tag l(:button_save) %>

View File

@@ -8,7 +8,7 @@
<p><%= setting_check_box :plain_text_mail %></p>
<p><%= setting_select(:default_notification_option, User::MAIL_NOTIFICATION_OPTIONS.collect {|o| [l(o.last), o.first.to_s]}) %></p>
<p><%= setting_select(:default_notification_option, User.valid_notification_options.collect {|o| [l(o.last), o.first.to_s]}) %></p>
</div>

View File

@@ -23,11 +23,11 @@
<% unless @pages.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to('HTML', :url => {:action => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
<% end %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<% end %>

View File

@@ -4,7 +4,7 @@
<% form_tag({:action => "diff"}, :method => :get) do %>
<%= hidden_field_tag('project_id', h(@project.to_param)) %>
<table class="list">
<table class="list wiki-page-versions">
<thead><tr>
<th>#</th>
<th></th>
@@ -18,14 +18,14 @@
<% show_diff = @versions.size > 1 %>
<% line_num = 1 %>
<% @versions.each do |ver| %>
<tr class="<%= cycle("odd", "even") %>">
<tr class="wiki-page-version <%= cycle("odd", "even") %>">
<td class="id"><%= link_to ver.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => ver.version %></td>
<td class="checkbox"><%= radio_button_tag('version', ver.version, (line_num==1), :id => "cb-#{line_num}", :onclick => "$('cbto-#{line_num+1}').checked=true;") if show_diff && (line_num < @versions.size) %></td>
<td class="checkbox"><%= radio_button_tag('version_from', ver.version, (line_num==2), :id => "cbto-#{line_num}") if show_diff && (line_num > 1) %></td>
<td align="center"><%= format_time(ver.updated_on) %></td>
<td><%= link_to_user ver.author %></td>
<td><%=h ver.comments %></td>
<td align="center"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
<td class="updated_on"><%= format_time(ver.updated_on) %></td>
<td class="author"><%= link_to_user ver.author %></td>
<td class="comments"><%=h ver.comments %></td>
<td class="buttons"><%= link_to l(:button_annotate), :action => 'annotate', :id => @page.title, :version => ver.version %></td>
</tr>
<% line_num += 1 %>
<% end %>

View File

@@ -16,11 +16,11 @@
<% unless @pages.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to('HTML', :url => {:action => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
<% end %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<% end %>

View File

@@ -24,7 +24,7 @@
<td><%= h tracker %></td>
<% roles.each do |role, count| -%>
<td align="center">
<%= link_to((count > 1 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
<%= link_to((count > 0 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
</td>
<% end -%>
</tr>

View File

@@ -51,6 +51,7 @@ Rails::Initializer.run do |config|
config.action_mailer.perform_deliveries = false
config.gem 'rubytree', :lib => 'tree'
config.gem 'coderay', :version => '~>0.9.7'
# Load any local configuration that is kept out of source control
# (e.g. gems, patches).

View File

@@ -1,11 +1,12 @@
bg:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%Y-%m-%d"
default: "%d-%m-%Y"
short: "%b %d"
long: "%B %d, %Y"
@@ -65,12 +66,13 @@ bg:
other: "почти %{count} години"
number:
# Default format for numbers
format:
separator: "."
delimiter: ""
precision: 3
human:
format:
human:
format:
precision: 1
delimiter: ""
storage_units:
@@ -83,7 +85,8 @@ bg:
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
@@ -94,8 +97,8 @@ bg:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "1 грешка попречи този %{model} да бъде записан"
other: "%{count} грешки попречиха този %{model} да бъде записан"
messages:
inclusion: "не съществува в списъка"
exclusion: "е запазено"
@@ -120,6 +123,7 @@ bg:
greater_than_start_date: "трябва да е след началната дата"
not_same_project: "не е от същия проект"
circular_dependency: "Тази релация ще доведе до безкрайна зависимост"
cant_link_an_issue_with_a_descendant: "Една задача не може да бъде свързвана към своя подзадача"
actionview_instancetag_blank_option: Изберете
@@ -127,7 +131,7 @@ bg:
general_text_Yes: 'Да'
general_text_no: 'не'
general_text_yes: 'да'
general_lang_name: 'Bulgarian'
general_lang_name: 'Bulgarian (Български)'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: UTF-8
@@ -150,24 +154,61 @@ bg:
notice_file_not_found: Несъществуваща или преместена страница.
notice_locking_conflict: Друг потребител променя тези данни в момента.
notice_not_authorized: Нямате право на достъп до тази страница.
notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
notice_email_sent: "Изпратен e-mail на %{value}"
notice_email_error: "Грешка при изпращане на e-mail (%{value})"
notice_feeds_access_key_reseted: Вашия ключ за RSS достъп беше променен.
notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
notice_no_issue_selected: "Няма избрани задачи."
notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
notice_default_data_loaded: Примерната информация е заредена успешно.
notice_unable_delete_version: Невъзможност за изтриване на версия
notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
notice_gantt_chart_truncated: Мрежовият график е съкратен, понеже броят на обектите, които могат да бъдат показани е твърде голям (%{max})
error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
error_scm_not_found: Несъществуващ обект в хранилището.
error_scm_command_failed: "Грешка при опит за комуникация с хранилище: %{value}"
error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
error_can_not_archive_project: Този проект не може да бъде архивиран
error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
error_workflow_copy_source: Моля изберете source тракер или роля
error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
error_unable_to_connect: Невъзможност за свързване с (%{value})
warning_attachments_not_saved: "%{count} файла не бяха записани."
mail_subject_lost_password: "Вашата парола (%{value})"
mail_body_lost_password: 'За да смените паролата си, използвайте следния линк:'
mail_subject_register: "Активация на профил (%{value})"
mail_body_register: 'За да активирате профила си използвайте следния линк:'
mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
mail_body_account_information: Информацията за профила ви
mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
gui_validation_error: 1 грешка
gui_validation_error_plural: "%{count} грешки"
field_name: Име
field_description: Описание
field_summary: Групиран изглед
field_summary: Анотация
field_is_required: Задължително
field_firstname: Име
field_lastname: Фамилия
@@ -200,6 +241,7 @@ bg:
field_priority: Приоритет
field_fixed_version: Планувана версия
field_user: Потребител
field_principal: Principal
field_role: Роля
field_homepage: Начална страница
field_is_public: Публичен
@@ -243,7 +285,24 @@ bg:
field_assignable: Възможно е възлагане на задачи за тази роля
field_redirect_existing_links: Пренасочване на съществуващи линкове
field_estimated_hours: Изчислено време
field_column_names: Колони
field_time_entries: Log time
field_time_zone: Часова зона
field_searchable: С възможност за търсене
field_default_value: Стойност по подразбиране
field_comments_sorting: Сортиране на коментарите
field_parent_title: Родителска страница
field_editable: Editable
field_watcher: Наблюдател
field_identity_url: OpenID URL
field_content: Съдържание
field_group_by: Групиране на резултатите по
field_sharing: Sharing
field_parent_issue: Родителска задача
field_member_of_group: Член на група
field_assigned_to_role: Assignee's role
field_text: Текстово поле
field_visible: Видим
setting_app_title: Заглавие
setting_app_subtitle: Описание
@@ -254,26 +313,132 @@ bg:
setting_attachment_max_size: Максимална големина на прикачен файл
setting_issues_export_limit: Максимален брой задачи за експорт
setting_mail_from: E-mail адрес за емисии
setting_bcc_recipients: Получатели на скрито копие (bcc)
setting_plain_text_mail: само чист текст (без HTML)
setting_host_name: Хост
setting_text_formatting: Форматиране на текста
setting_wiki_compression: Wiki компресиране на историята
setting_feeds_limit: Максимален брой за емисии
setting_default_projects_public: Новите проекти са публични по подразбиране
setting_autofetch_changesets: Автоматично обработване на ревизиите
setting_sys_api_enabled: Разрешаване на WS за управление
setting_commit_ref_keywords: Отбелязващи ключови думи
setting_commit_fix_keywords: Приключващи ключови думи
setting_autologin: Автоматичен вход
setting_date_format: Формат на датата
setting_time_format: Формат на часа
setting_cross_project_issue_relations: Релации на задачи между проекти
setting_issue_list_default_columns: Показвани колони по подразбиране
setting_repositories_encodings: Кодови таблици
setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
setting_emails_header: Emails header
setting_emails_footer: Подтекст за e-mail
setting_protocol: Протокол
setting_per_page_options: Опции за страниране
setting_user_format: Потребителски формат
setting_activity_days_default: Брой дни показвани на таб Дейност
setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
setting_enabled_scm: Разрешена SCM
setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
setting_mail_handler_api_key: API ключ
setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
setting_gravatar_enabled: Използване на портребителски икони от Gravatar
setting_gravatar_default: Подразбиращо се изображение от Gravatar
setting_diff_max_lines_displayed: Максимален брой показани diff редове
setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
setting_openid: Рарешаване на OpenID вход и регистрация
setting_password_min_length: Минимална дължина на парола
setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
setting_default_projects_modules: Активирани модули по подразбиране за нов проект
setting_issue_done_ratio: Изчисление на процента на готови задачи с
setting_issue_done_ratio_issue_field: Използване на поле '% Прогрес'
setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
setting_start_of_week: Първи ден на седмицата
setting_rest_api_enabled: Разрешаване на REST web сървис
setting_cache_formatted_text: Cache formatted text
setting_default_notification_option: Подразбиращ се начин за известяване
setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
setting_commit_logtime_activity_id: Дейност при отчитане на работното време
setting_gantt_items_limit: Максимален брой обекти, които да се показват в мрежов график
permission_add_project: Създаване на проект
permission_add_subprojects: Създаване на подпроекти
permission_edit_project: Редактиране на проект
permission_select_project_modules: Избор на проектни модули
permission_manage_members: Управление на членовете (на екип)
permission_manage_project_activities: Управление на дейностите на проекта
permission_manage_versions: Управление на версиите
permission_manage_categories: Управление на категориите
permission_view_issues: Разглеждане на задачите
permission_add_issues: Добавяне на задачи
permission_edit_issues: Редактиране на задачи
permission_manage_issue_relations: Управление на връзките между задачите
permission_add_issue_notes: Добаване на бележки
permission_edit_issue_notes: Редактиране на бележки
permission_edit_own_issue_notes: Редактиране на собствени бележки
permission_move_issues: Преместване на задачи
permission_delete_issues: Изтриване на задачи
permission_manage_public_queries: Управление на публичните заявки
permission_save_queries: Запис на запитвания (queries)
permission_view_gantt: Разглеждане на мрежов график
permission_view_calendar: Разглеждане на календари
permission_view_issue_watchers: Разглеждане на списък с наблюдатели
permission_add_issue_watchers: Добавяне на наблюдатели
permission_delete_issue_watchers: Изтриване на наблюдатели
permission_log_time: Log spent time
permission_view_time_entries: Разглеждане на изразходваното време
permission_edit_time_entries: Редактиране на time logs
permission_edit_own_time_entries: Редактиране на собствените time logs
permission_manage_news: Управление на новини
permission_comment_news: Коментиране на новини
permission_manage_documents: Управление на документи
permission_view_documents: Разглеждане на документи
permission_manage_files: Управление на файлове
permission_view_files: Разглеждане на файлове
permission_manage_wiki: Управление на wiki
permission_rename_wiki_pages: Преименуване на wiki страници
permission_delete_wiki_pages: Изтриване на wiki страници
permission_view_wiki_pages: Разглеждане на wiki
permission_view_wiki_edits: Разглеждане на wiki история
permission_edit_wiki_pages: Редактиране на wiki страници
permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове към wiki страници
permission_protect_wiki_pages: Заключване на wiki страници
permission_manage_repository: Управление на хранилища
permission_browse_repository: Разглеждане на хранилища
permission_view_changesets: Разглеждане на changesets
permission_commit_access: Поверяване
permission_manage_boards: Управление на boards
permission_view_messages: Разглеждане на съобщения
permission_add_messages: Публикуване на съобщения
permission_edit_messages: Редактиране на съобщения
permission_edit_own_messages: Редактиране на собствени съобщения
permission_delete_messages: Изтриване на съобщения
permission_delete_own_messages: Изтриване на собствени съобщения
permission_export_wiki_pages: Експорт на wiki страници
permission_manage_subtasks: Управление на подзадачите
project_module_issue_tracking: Тракинг
project_module_time_tracking: Отделяне на време
project_module_news: Новини
project_module_documents: Документи
project_module_files: Файлове
project_module_wiki: Wiki
project_module_repository: Хранилище
project_module_boards: Форуми
project_module_calendar: Календар
project_module_gantt: Мрежов график
label_user: Потребител
label_user_plural: Потребители
label_user_new: Нов потребител
label_user_anonymous: Анонимен
label_project: Проект
label_project_new: Нов проект
label_project_plural: Проекти
label_x_projects:
zero: 0 проекти
zero: 0 проекта
one: 1 проект
other: "%{count} проекта"
label_project_all: Всички проекти
@@ -282,9 +447,13 @@ bg:
label_issue_new: Нова задача
label_issue_plural: Задачи
label_issue_view_all: Всички задачи
label_issues_by: "Задачи по %{value}"
label_issue_added: Добавена задача
label_issue_updated: Обновена задача
label_document: Документ
label_document_new: Нов документ
label_document_plural: Документи
label_document_added: Добавен документ
label_role: Роля
label_role_plural: Роли
label_role_new: Нова роля
@@ -311,11 +480,13 @@ bg:
label_information_plural: Информация
label_please_login: Вход
label_register: Регистрация
label_login_with_open_id_option: или вход чрез OpenID
label_password_lost: Забравена парола
label_home: Начало
label_my_page: Лична страница
label_my_account: Профил
label_my_projects: Проекти, в които участвам
label_my_page_block: Блокове в личната страница
label_administration: Администрация
label_login: Вход
label_logout: Изход
@@ -325,6 +496,8 @@ bg:
label_last_login: Последно свързване
label_registered_on: Регистрация
label_activity: Дейност
label_overall_activity: Цялостна дейност
label_user_activity: "Активност на %{value}"
label_new: Нов
label_logged_as: Здравейте,
label_environment: Среда
@@ -333,10 +506,13 @@ bg:
label_auth_source_new: Нов начин на оторизация
label_auth_source_plural: Начини на оторизация
label_subproject_plural: Подпроекти
label_subproject_new: Нов подпроект
label_and_its_subprojects: "%{value} и неговите подпроекти"
label_min_max_length: Минимална - максимална дължина
label_list: Списък
label_date: Дата
label_integer: Целочислен
label_float: Дробно
label_boolean: Чекбокс
label_string: Текст
label_text: Дълъг текст
@@ -351,6 +527,7 @@ bg:
label_attachment_new: Нов файл
label_attachment_delete: Изтриване
label_attachment_plural: Файлове
label_file_added: Добавен файл
label_report: Справка
label_report_plural: Справки
label_news: Новини
@@ -358,11 +535,13 @@ bg:
label_news_plural: Новини
label_news_latest: Последни новини
label_news_view_all: Виж всички
label_news_added: Добавена новина
label_settings: Настройки
label_overview: Общ изглед
label_version: Версия
label_version_new: Нова версия
label_version_plural: Версии
label_close_versions: Затваряне на завършените версии
label_confirmation: Одобрение
label_export_to: Експорт към
label_read: Read...
@@ -389,6 +568,7 @@ bg:
label_new_statuses_allowed: Позволени състояния
label_all: всички
label_none: никакви
label_nobody: никой
label_next: Следващ
label_previous: Предишен
label_used_by: Използва се от
@@ -420,9 +600,19 @@ bg:
label_not_equals: не е
label_in_less_than: след по-малко от
label_in_more_than: след повече от
label_greater_or_equal: ">="
label_less_or_equal: <=
label_in: в следващите
label_today: днес
label_all_time: всички
label_yesterday: вчера
label_this_week: тази седмица
label_last_week: последната седмица
label_last_n_days: "последните %{count} дни"
label_this_month: текущия месец
label_last_month: последния месец
label_this_year: текущата година
label_date_range: Период
label_less_than_ago: преди по-малко от
label_more_than_ago: преди повече от
label_ago: преди
@@ -430,17 +620,25 @@ bg:
label_not_contains: не съдържа
label_day_plural: дни
label_repository: Хранилище
label_repository_plural: Хранилища
label_browse: Разглеждане
label_modification: "%{count} промяна"
label_modification_plural: "%{count} промени"
label_branch: работен вариант
label_tag: Версия
label_revision: Ревизия
label_revision_plural: Ревизии
label_revision_id: Ревизия %{value}
label_associated_revisions: Асоциирани ревизии
label_added: добавено
label_modified: променено
label_copied: копирано
label_renamed: преименувано
label_deleted: изтрито
label_latest_revision: Последна ревизия
label_latest_revision_plural: Последни ревизии
label_view_revisions: Виж ревизиите
label_view_all_revisions: Разглеждане на всички ревизии
label_max_size: Максимална големина
label_sort_highest: Премести най-горе
label_sort_higher: Премести по-горе
@@ -466,6 +664,7 @@ bg:
label_changes_details: Подробни промени
label_issue_tracking: Тракинг
label_spent_time: Отделено време
label_overall_spent_time: Общо употребено време
label_f_hour: "%{value} час"
label_f_hour_plural: "%{value} часа"
label_time_tracking: Отделяне на време
@@ -487,6 +686,7 @@ bg:
label_relation_delete: Изтриване на релация
label_relates_to: свързана със
label_duplicates: дублира
label_duplicated_by: дублирана от
label_blocks: блокира
label_blocked_by: блокирана от
label_precedes: предшества
@@ -502,10 +702,13 @@ bg:
label_board: Форум
label_board_new: Нов форум
label_board_plural: Форуми
label_board_locked: Заключена
label_board_sticky: Sticky
label_topic_plural: Теми
label_message_plural: Съобщения
label_message_last: Последно съобщение
label_message_new: Нова тема
label_message_posted: Добавено съобщение
label_reply_plural: Отговори
label_send_information: Изпращане на информацията до потребителя
label_year: Година
@@ -516,12 +719,81 @@ bg:
label_language_based: В зависимост от езика
label_sort_by: "Сортиране по %{value}"
label_send_test_email: Изпращане на тестов e-mail
label_feeds_access_key: RSS access ключ
label_missing_feeds_access_key: Липсващ RSS ключ за достъп
label_feeds_access_key_created_on: "%{value} от създаването на RSS ключа"
label_module_plural: Модули
label_added_time_by: "Публикувана от %{author} преди %{age}"
label_updated_time_by: "Обновена от %{author} преди %{age}"
label_updated_time: "Обновена преди %{value}"
label_jump_to_a_project: Проект...
label_file_plural: Файлове
label_changeset_plural: Ревизии
label_default_columns: По подразбиране
label_no_change_option: (Без промяна)
label_bulk_edit_selected_issues: Редактиране на задачи
label_theme: Тема
label_default: По подразбиране
label_search_titles_only: Само в заглавията
label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
label_user_mail_option_selected: "За всички събития само в избраните проекти..."
label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
label_user_mail_option_only_assigned: Само за неща, назначени на мен
label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
label_registration_activation_by_email: активиране на профила по email
label_registration_manual_activation: ръчно активиране
label_registration_automatic_activation: автоматично активиране
label_display_per_page: "На страница по: %{value}"
label_age: Възраст
label_change_properties: Промяна на настройки
label_general: Основни
label_more: Още
label_scm: SCM (Система за контрол на версиите)
label_plugins: Плъгини
label_ldap_authentication: LDAP оторизация
label_downloads_abbr: D/L
label_optional_description: Незадължително описание
label_add_another_file: Добавяне на друг файл
label_preferences: Предпочитания
label_chronological_order: Хронологичен ред
label_reverse_chronological_order: Обратен хронологичен ред
label_planning: Планиране
label_incoming_emails: Входящи e-mail-и
label_generate_key: Генериране на ключ
label_issue_watchers: Наблюдатели
label_example: Пример
label_display: Display
label_sort: Сортиране
label_ascending: Нарастващ
label_descending: Намаляващ
label_date_from_to: От %{start} до %{end}
label_wiki_content_added: Wiki страница беше добавена
label_wiki_content_updated: Wiki страница беше обновена
label_group: Група
label_group_plural: Групи
label_group_new: Нова група
label_time_entry_plural: Използвано време
label_version_sharing_none: Не споделен
label_version_sharing_descendants: С подпроекти
label_version_sharing_hierarchy: С проектна йерархия
label_version_sharing_tree: С дърво на проектите
label_version_sharing_system: С всички проекти
label_update_issue_done_ratios: Обновяване на процента на завършените задачи
label_copy_source: Източник
label_copy_target: Цел
label_copy_same_as_target: Също като целта
label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
label_api_access_key: API ключ за достъп
label_missing_api_access_key: Липсващ API ключ
label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
label_profile: Профил
label_subtask_plural: Подзадачи
label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
label_principal_search: "Търсене на потребител или група:"
label_user_search: "Търсене на потребител:"
button_login: Вход
button_submit: Прикачване
button_save: Запис
@@ -529,8 +801,10 @@ bg:
button_uncheck_all: Изчистване на всички
button_delete: Изтриване
button_create: Създаване
button_create_and_continue: Създаване и продължаване
button_test: Тест
button_edit: Редакция
button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
button_add: Добавяне
button_change: Промяна
button_apply: Приложи
@@ -541,6 +815,7 @@ bg:
button_list: Списък
button_view: Преглед
button_move: Преместване
button_move_and_follow: Преместване и продължаване
button_back: Назад
button_cancel: Отказ
button_activate: Активация
@@ -554,26 +829,49 @@ bg:
button_unarchive: Разархивиране
button_reset: Генериране наново
button_rename: Преименуване
button_change_password: Промяна на парола
button_copy: Копиране
button_copy_and_follow: Копиране и продължаване
button_annotate: Анотация
button_update: Обновяване
button_configure: Конфигуриране
button_quote: Цитат
button_duplicate: Дублиране
button_show: Показване
status_active: активен
status_registered: регистриран
status_locked: заключен
version_status_open: отворена
version_status_locked: заключена
version_status_closed: затворена
field_active: Активен
text_select_mail_notifications: Изберете събития за изпращане на e-mail.
text_regexp_info: пр. ^[A-Z0-9]+$
text_min_max_length_info: 0 - без ограничения
text_project_destroy_confirmation: Сигурни ли сте, че искате да изтриете проекта и данните в него?
text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
text_workflow_edit: Изберете роля и тракер за да редактирате работния процес
text_are_you_sure: Сигурни ли сте?
text_tip_task_begin_day: задача започваща този ден
text_tip_task_end_day: задача завършваща този ден
text_tip_task_begin_end_day: задача започваща и завършваща този ден
text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
text_journal_changed: "%{label} променен от %{old} на %{new}"
text_journal_set_to: "%{label} установен на %{value}"
text_journal_deleted: "%{label} изтрит (%{old})"
text_journal_added: "Добавено %{label} %{value}"
text_tip_issue_begin_day: задача, започваща този ден
text_tip_issue_end_day: задача, завършваща този ден
text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
text_project_identifier_info: 'Позволени са малки букви (a-z), цифри и тирета.<br />Невъзможна промяна след запис.'
text_caracters_maximum: "До %{count} символа."
text_caracters_minimum: "Минимум %{count} символа."
text_length_between: "От %{min} до %{max} символа."
text_tracker_no_workflow: Няма дефиниран работен процес за този тракер
text_unallowed_characters: Непозволени символи
text_comma_separated: Позволено е изброяване (с разделител запетая).
text_line_separated: Позволени са много стойности (по едно на ред).
text_issues_ref_in_commit_messages: Отбелязване и приключване на задачи от ревизии
text_issue_added: "Публикувана е нова задача с номер %{id} (от %{author})."
text_issue_updated: "Задача %{id} е обновена (от %{author})."
@@ -581,7 +879,36 @@ bg:
text_issue_category_destroy_question: "Има задачи (%{count}) обвързани с тази категория. Какво ще изберете?"
text_issue_category_destroy_assignments: Премахване на връзките с категорията
text_issue_category_reassign_to: Преобвързване с категория
text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
text_load_default_configuration: Зареждане на примерна информация
text_status_changed_by_changeset: "Приложено с ревизия %{value}."
text_time_logged_by_changeset: Приложено в ревизия %{value}.
text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
text_select_project_modules: 'Изберете активните модули за този проект:'
text_default_administrator_account_changed: Сменен фабричния администраторски профил
text_file_repository_writable: Възможност за писане в хранилището с файлове
text_plugin_assets_writable: Папката на приставките е разрешена за запис
text_rmagick_available: Наличен RMagick (по избор)
text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
text_destroy_time_entries: Изтриване на отделеното време
text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
text_user_wrote: "%{value} написа:"
text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/email.yml и рестартирайте Redmine, за да ги разрешите."
text_repository_usernames_mapping: "Изберете или променете потребителите в Redmine, съответстващи на потребителите в дневника на хранилището (repository).\nПотребителите с еднакви имена в Redmine и хранилищата се съвместяват автоматично."
text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
text_custom_field_possible_values_info: 'Една стойност на ред'
text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
text_own_membership_delete_confirmation: "Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това да не можете да редактирате този проект.\nСигурен ли сте, че искате да продължите?"
text_zoom_in: Увеличаване
text_zoom_out: Намаляване
default_role_manager: Мениджър
default_role_developer: Разработчик
default_role_reporter: Публикуващ
@@ -603,332 +930,9 @@ bg:
default_priority_immediate: Веднага
default_activity_design: Дизайн
default_activity_development: Разработка
enumeration_issue_priorities: Приоритети на задачи
enumeration_doc_categories: Категории документи
enumeration_activities: Дейности (time tracking)
label_file_plural: Файлове
label_changeset_plural: Ревизии
field_column_names: Колони
label_default_columns: По подразбиране
setting_issue_list_default_columns: Показвани колони по подразбиране
setting_repositories_encodings: Кодови таблици
notice_no_issue_selected: "Няма избрани задачи."
label_bulk_edit_selected_issues: Редактиране на задачи
label_no_change_option: (Без промяна)
notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
label_theme: Тема
label_default: По подразбиране
label_search_titles_only: Само в заглавията
label_nobody: никой
button_change_password: Промяна на парола
text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
label_user_mail_option_selected: "За всички събития само в избраните проекти..."
label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
setting_emails_footer: Подтекст за e-mail
label_float: Дробно
button_copy: Копиране
mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
mail_body_account_information: Информацията за профила ви
setting_protocol: Протокол
label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
setting_time_format: Формат на часа
label_registration_activation_by_email: активиране на профила по email
mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
label_registration_automatic_activation: автоматично активиране
label_registration_manual_activation: ръчно активиране
notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
field_time_zone: Часова зона
text_caracters_minimum: "Минимум %{count} символа."
setting_bcc_recipients: Получатели на скрито копие (bcc)
button_annotate: Анотация
label_issues_by: "Задачи по %{value}"
field_searchable: С възможност за търсене
label_display_per_page: "На страница по: %{value}"
setting_per_page_options: Опции за страниране
label_age: Възраст
notice_default_data_loaded: Примерната информацията е успешно заредена.
text_load_default_configuration: Зареждане на примерна информация
text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
button_update: Обновяване
label_change_properties: Промяна на настройки
label_general: Основни
label_repository_plural: Хранилища
label_associated_revisions: Асоциирани ревизии
setting_user_format: Потребителски формат
text_status_changed_by_changeset: "Приложено с ревизия %{value}."
label_more: Още
text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
label_scm: SCM (Система за контрол на кода)
text_select_project_modules: 'Изберете активните модули за този проект:'
label_issue_added: Добавена задача
label_issue_updated: Обновена задача
label_document_added: Добавен документ
label_message_posted: Добавено съобщение
label_file_added: Добавен файл
label_news_added: Добавена новина
project_module_boards: Форуми
project_module_issue_tracking: Тракинг
project_module_wiki: Wiki
project_module_files: Файлове
project_module_documents: Документи
project_module_repository: Хранилище
project_module_news: Новини
project_module_time_tracking: Отделяне на време
text_file_repository_writable: Възможност за писане в хранилището с файлове
text_default_administrator_account_changed: Сменен фабричния администраторски профил
text_rmagick_available: Наличен RMagick (по избор)
button_configure: Конфигуриране
label_plugins: Плъгини
label_ldap_authentication: LDAP оторизация
label_downloads_abbr: D/L
label_this_month: текущия месец
label_last_n_days: "последните %{count} дни"
label_all_time: всички
label_this_year: текущата година
label_date_range: Период
label_last_week: последната седмица
label_yesterday: вчера
label_last_month: последния месец
label_add_another_file: Добавяне на друг файл
label_optional_description: Незадължително описание
text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
text_destroy_time_entries: Изтриване на отделеното време
text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
setting_activity_days_default: Брой дни показвани на таб Дейност
label_chronological_order: Хронологичен ред
field_comments_sorting: Сортиране на коментарите
label_reverse_chronological_order: Обратен хронологичен ред
label_preferences: Предпочитания
setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
label_overall_activity: Цялостна дейност
setting_default_projects_public: Новите проекти са публични по подразбиране
error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
label_planning: Планиране
text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
label_and_its_subprojects: "%{value} и неговите подпроекти"
mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
text_user_wrote: "%{value} написа:"
label_duplicated_by: дублирана от
setting_enabled_scm: Разрешена SCM
text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
label_incoming_emails: Входящи e-mail-и
label_generate_key: Генериране на ключ
setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
setting_mail_handler_api_key: API ключ
text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/email.yml и рестартирайте Redmine, за да ги разрешите."
field_parent_title: Родителска страница
label_issue_watchers: Наблюдатели
setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
button_quote: Цитат
setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
notice_unable_delete_version: Невъзможност за изтриване на версия
label_renamed: преименуван
label_copied: копиран
setting_plain_text_mail: само чист текст (без HTML)
permission_view_files: Разглеждане на файлове
permission_edit_issues: Редактиране на задачи
permission_edit_own_time_entries: Редактиране на собствените time logs
permission_manage_public_queries: Управление на публичните заявки
permission_add_issues: Добавяне на задачи
permission_log_time: Log spent time
permission_view_changesets: Разглеждане на changesets
permission_view_time_entries: Разглеждане на изразходваното време
permission_manage_versions: Управление на версиите
permission_manage_wiki: Управление на wiki
permission_manage_categories: Управление на категориите задачи
permission_protect_wiki_pages: Заключване на wiki страници
permission_comment_news: Коментиране на новини
permission_delete_messages: Изтриване на съобщения
permission_select_project_modules: Избор на проектни модули
permission_manage_documents: Управление на документи
permission_edit_wiki_pages: Редактиране на wiki страници
permission_add_issue_watchers: Добавяне на наблюдатели
permission_view_gantt: Разглеждане на мрежов график
permission_move_issues: Преместване на задачи
permission_manage_issue_relations: Управление на връзките между задачите
permission_delete_wiki_pages: Изтриване на wiki страници
permission_manage_boards: Управление на boards
permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове
permission_view_wiki_edits: Разглеждане на wiki история
permission_add_messages: Публикуване на съобщения
permission_view_messages: Разглеждане на съобщения
permission_manage_files: Управление на файлове
permission_edit_issue_notes: Редактиране на бележки
permission_manage_news: Управление на новини
permission_view_calendar: Разглеждане на календари
permission_manage_members: Управление на членовете (на екип)
permission_edit_messages: Редактиране на съобщения
permission_delete_issues: Изтриване на задачи
permission_view_issue_watchers: Разглеждане на списък с наблюдатели
permission_manage_repository: Управление на хранилища
permission_commit_access: Поверяване
permission_browse_repository: Разглеждане на хранилища
permission_view_documents: Разглеждане на документи
permission_edit_project: Редактиране на проект
permission_add_issue_notes: Добаване на бележки
permission_save_queries: Запис на запитвания (queries)
permission_view_wiki_pages: Разглеждане на wiki
permission_rename_wiki_pages: Преименуване на wiki страници
permission_edit_time_entries: Редактиране на time logs
permission_edit_own_issue_notes: Редактиране на собствени бележки
setting_gravatar_enabled: Използване на портребителски икони от Gravatar
label_example: Пример
text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
permission_edit_own_messages: Редактиране на собствени съобщения
permission_delete_own_messages: Изтриване на собствени съобщения
label_user_activity: "Активност на %{value}"
label_updated_time_by: "Обновена от %{author} преди %{age}"
text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
setting_diff_max_lines_displayed: Максимален брой показани diff редове
text_plugin_assets_writable: Папката на приставките е разрешена за запис
warning_attachments_not_saved: "%{count} файла не бяха записани."
button_create_and_continue: Създаване и продължаване
text_custom_field_possible_values_info: 'Една стойност на ред'
label_display: Display
field_editable: Editable
setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
field_watcher: Наблюдател
setting_openid: Рарешаване на OpenID вход и регистрация
field_identity_url: OpenID URL
label_login_with_open_id_option: или вход чрез OpenID
field_content: Съдържание
label_descending: Намаляващ
label_sort: Сортиране
label_ascending: Нарастващ
label_date_from_to: От %{start} до %{end}
label_greater_or_equal: ">="
label_less_or_equal: <=
text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
setting_password_min_length: Минимална дължина на парола
field_group_by: Групиране на резултатите по
mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
label_wiki_content_added: Wiki страница беше добавена
mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
label_wiki_content_updated: Wiki страница беше обновена
mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
permission_add_project: Създаване на проект
setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
label_view_all_revisions: Разглеждане на всички ревизии
label_tag: Версия
label_branch: работен вариант
error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
text_journal_changed: "%{label} променен от %{old} на %{new}"
text_journal_set_to: "%{label} установен на %{value}"
text_journal_deleted: "%{label} изтрит (%{old})"
label_group_plural: Групи
label_group: Група
label_group_new: Нова група
label_time_entry_plural: Използвано време
text_journal_added: "Добавено %{label} %{value}"
field_active: Активен
enumeration_system_activity: Системна активност
permission_delete_issue_watchers: Изтриване на наблюдатели
version_status_closed: затворена
version_status_locked: заключена
version_status_open: отворена
error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
label_user_anonymous: Анонимен
button_move_and_follow: Преместване и продължаване
setting_default_projects_modules: Активирани модули по подразбиране за нов проект
setting_gravatar_default: Подразбиращо се изображение от Gravatar
field_sharing: Sharing
label_version_sharing_hierarchy: С проектна йерархия
label_version_sharing_system: С всички проекти
label_version_sharing_descendants: С подпроекти
label_version_sharing_tree: С дърво на проектите
label_version_sharing_none: Не споделен
error_can_not_archive_project: Този проект не може да бъде архивиран
button_duplicate: Дублиране
button_copy_and_follow: Копиране и продължаване
label_copy_source: Източник
setting_issue_done_ratio: Изчисление на процента на готови задачи с
setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
setting_issue_done_ratio_issue_field: Използване на поле 'задача'
label_copy_same_as_target: Също като целта
label_copy_target: Цел
notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
error_workflow_copy_source: Моля изберете source тракер или роля
label_update_issue_done_ratios: Обновяване на процента на завършените задачи
setting_start_of_week: Първи ден на седмицата
permission_view_issues: Разглеждане на задачите
label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
label_revision_id: Ревизия %{value}
label_api_access_key: API ключ за достъп
label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
label_feeds_access_key: RSS access ключ
notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
setting_rest_api_enabled: Разрешаване на REST web сървис
label_missing_api_access_key: Липсващ API ключ
label_missing_feeds_access_key: Липсващ RSS ключ за достъп
button_show: Показване
text_line_separated: Позволени са много стойности (по едно на ред).
setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
permission_add_subprojects: Създаване на подпроекти
label_subproject_new: Нов подпроект
text_own_membership_delete_confirmation: |-
Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това на да не можете да редатирате този проект.
Сигурен ли сте, че искате да продължите?
label_close_versions: Затваряне на завършените версии
label_board_sticky: Sticky
label_board_locked: Заключена
permission_export_wiki_pages: Експорт на wiki страници
setting_cache_formatted_text: Cache formatted text
permission_manage_project_activities: Управление на дейностите на проекта
error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
label_profile: Профил
permission_manage_subtasks: Управление на подзадачите
field_parent_issue: Родителска задача
label_subtask_plural: Подзадачи
label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
error_unable_to_connect: Невъзможност за свързване с (%{value})
error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
field_principal: Principal
label_my_page_block: Блокове в личната страница
notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
text_zoom_out: Намаляване
text_zoom_in: Увеличаване
notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
label_overall_spent_time: Общо употребено време
field_time_entries: Log time
notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
text_tip_issue_end_day: задача, завършваща този ден
field_text: Текстово поле
label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
field_member_of_group: Член на група
project_module_gantt: Мрежов график
text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
setting_default_notification_option: Подразбиращ се начин за известяване
project_module_calendar: Календар
label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
text_tip_issue_begin_day: задача, започваща този ден
label_user_mail_option_only_assigned: Само за неща, назначени на мен
button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
field_assigned_to_role: Assignee's role
label_principal_search: "Търсене на потребител или група:"
label_user_search: "Търсене на потребител:"
field_visible: Видим
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -161,7 +161,7 @@ ca:
notice_email_error: "S'ha produït un error en enviar el correu (%{value})"
notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS."
notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API."
notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de %{count} seleccionats: %{ids}."
notice_failed_to_save_issues: "No s'han pogut desar %{count} assumptes de %{total} seleccionats: %{ids}."
notice_failed_to_save_members: "No s'han pogut desar els membres: %{errors}."
notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar."
notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador."

View File

@@ -1,4 +1,9 @@
# Update to 1.1 by Michal Gebauer <mishak@mishak.net>
# Updated by Josef Liška <jl@chl.cz>
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
# Based on original CZ translation by Jan Kadleček
cs:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
@@ -26,7 +31,7 @@ cs:
long: "%B %d, %Y %H:%M"
am: "dop."
pm: "odp."
datetime:
distance_in_words:
half_a_minute: "půl minuty"
@@ -65,24 +70,26 @@ cs:
other: "téměř %{count} roky"
number:
# Výchozí formát pro čísla
format:
separator: "."
separator: "."
delimiter: ""
precision: 3
human:
format:
precision: 1
human:
format:
delimiter: ""
storage_units:
precision: 1
storage_units:
format: "%n %u"
units:
kb: KB
tb: TB
gb: GB
byte:
one: Byte
other: Bytes
mb: MB
units:
byte:
one: "Bajt"
other: "Bajtů"
kb: "kB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
@@ -94,8 +101,8 @@ cs:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "1 chyba zabránila uložení %{model}"
other: "%{count} chyb zabránilo uložení %{model}"
messages:
inclusion: "není zahrnuto v seznamu"
exclusion: "je rezervováno"
@@ -122,10 +129,6 @@ cs:
circular_dependency: "Tento vztah by vytvořil cyklickou závislost"
cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jedním z jeho dílčích úkolů"
# Updated by Josef Liška <jl@chl.cz>
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
# Based on original CZ translation by Jan Kadleček
actionview_instancetag_blank_option: Prosím vyberte
general_text_No: 'Ne'
@@ -154,20 +157,40 @@ cs:
notice_successful_connection: Úspěšné připojení.
notice_file_not_found: Stránka na kterou se snažíte zobrazit neexistuje nebo byla smazána.
notice_locking_conflict: Údaje byly změněny jiným uživatelem.
notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
notice_not_authorized: Nemáte dostatečná práva pro zobrazení této stránky.
notice_not_authorized_archived_project: Projekt ke kterému se snažíte přistupovat byl archivován.
notice_email_sent: "Na adresu %{value} byl odeslán email"
notice_email_error: "Při odesílání emailu nastala chyba (%{value})"
notice_feeds_access_key_reseted: Váš klíč pro přístup k RSS byl resetován.
notice_api_access_key_reseted: Váš API přístupový klíč byl resetován.
notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}."
notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}."
notice_no_issue_selected: "Nebyl zvolen žádný úkol. Prosím, zvolte úkoly, které chcete editovat"
notice_account_pending: "Váš účet byl vytvořen, nyní čeká na schválení administrátorem."
notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána.
notice_unable_delete_version: Nemohu odstanit verzi
notice_unable_delete_time_entry: Nelze smazat čas ze záznamu.
notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány.
notice_gantt_chart_truncated: Graf byl oříznut, počet položek přesáhl limit pro zobrazení (%{max})
error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}"
error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři."
error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}"
error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu'
error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
error_can_not_delete_custom_field: Nelze smazat volitelné pole
error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
error_can_not_archive_project: Tento projekt nemůže být archivován
error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován.
error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roly
error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roly(e)
error_unable_delete_issue_status: Nelze smazat stavy úkolů
error_unable_to_connect: Nelze se připojit (%{value})
warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
mail_subject_lost_password: "Vaše heslo (%{value})"
mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:'
@@ -177,6 +200,12 @@ cs:
mail_body_account_information: Informace o vašem účtu
mail_subject_account_activation_request: "Aktivace %{value} účtu"
mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho účtu závisí na vašem potvrzení."
mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
gui_validation_error: 1 chyba
gui_validation_error_plural: "%{count} chyb(y)"
@@ -216,6 +245,7 @@ cs:
field_priority: Priorita
field_fixed_version: Cílová verze
field_user: Uživatel
field_principal: Hlavní
field_role: Role
field_homepage: Domovská stránka
field_is_public: Veřejný
@@ -260,10 +290,23 @@ cs:
field_redirect_existing_links: Přesměrovat stvávající odkazy
field_estimated_hours: Odhadovaná doba
field_column_names: Sloupce
field_time_entries: Zaznamenaný čas
field_time_zone: Časové pásmo
field_searchable: Umožnit vyhledávání
field_default_value: Výchozí hodnota
field_comments_sorting: Zobrazit komentáře
field_parent_title: Rodičovská stránka
field_editable: Editovatelný
field_watcher: Sleduje
field_identity_url: OpenID URL
field_content: Obsah
field_group_by: Seskupovat výsledky podle
field_sharing: Sdílení
field_parent_issue: Rodičovský úkol
field_member_of_group: Skupina přiřaditele
field_assigned_to_role: Role přiřaditele
field_text: Textové pole
field_visible: Viditelný
setting_app_title: Název aplikace
setting_app_subtitle: Podtitulek aplikace
@@ -275,6 +318,7 @@ cs:
setting_issues_export_limit: Limit pro export úkolů
setting_mail_from: Odesílat emaily z adresy
setting_bcc_recipients: Příjemci skryté kopie (bcc)
setting_plain_text_mail: pouze prostý text (ne HTML)
setting_host_name: Jméno serveru
setting_text_formatting: Formátování textu
setting_wiki_compression: Komprese historie Wiki
@@ -290,12 +334,94 @@ cs:
setting_cross_project_issue_relations: Povolit vazby úkolů napříč projekty
setting_issue_list_default_columns: Výchozí sloupce zobrazené v seznamu úkolů
setting_repositories_encodings: Kódování
setting_commit_logs_encoding: Kódování zpráv při commitu
setting_emails_header: Hlavička emailů
setting_emails_footer: Patička emailů
setting_protocol: Protokol
setting_per_page_options: Povolené počty řádků na stránce
setting_user_format: Formát zobrazení uživatele
setting_activity_days_default: Dny zobrazené v činnosti projektu
setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavním projektu
setting_enabled_scm: Povolené SCM
setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů
setting_gravatar_enabled: Použít uživatelské ikony Gravatar
setting_gravatar_default: Výchozí Gravatar
setting_diff_max_lines_displayed: Maximální počet zobrazenách řádků rozdílů
setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce
setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru
setting_openid: Umožnit přihlašování a registrace s OpenID
setting_password_min_length: Minimální délka hesla
setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt
setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s
setting_issue_done_ratio_issue_field: Použít pole úkolu
setting_issue_done_ratio_issue_status: Použít stav úkolu
setting_start_of_week: Začínat kalendáře
setting_rest_api_enabled: Zapnout službu REST
setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti
setting_default_notification_option: Výchozí nastavení oznámení
setting_commit_logtime_enabled: Povolit zapisování času
setting_commit_logtime_activity_id: Aktivita pro zapsaný čas
setting_gantt_items_limit: Maximální počet položek zobrazený na ganttově grafu
permission_add_project: Vytvořit projekt
permission_add_subprojects: Vytvořit podprojekty
permission_edit_project: Úprava projektů
permission_select_project_modules: Výběr modulů projektu
permission_manage_members: Spravování členství
permission_manage_project_activities: Spravovat aktivity projektu
permission_manage_versions: Spravování verzí
permission_manage_categories: Spravování kategorií úkolů
permission_view_issues: Zobrazit úkoly
permission_add_issues: Přidávání úkolů
permission_edit_issues: Upravování úkolů
permission_manage_issue_relations: Spravování vztahů mezi úkoly
permission_add_issue_notes: Přidávání poznámek
permission_edit_issue_notes: Upravování poznámek
permission_edit_own_issue_notes: Upravování vlastních poznámek
permission_move_issues: Přesouvání úkolů
permission_delete_issues: Mazání úkolů
permission_manage_public_queries: Správa veřejných dotazů
permission_save_queries: Ukládání dotazů
permission_view_gantt: Zobrazené Ganttova diagramu
permission_view_calendar: Prohlížení kalendáře
permission_view_issue_watchers: Zobrazení seznamu sledujícíh uživatelů
permission_add_issue_watchers: Přidání sledujících uživatelů
permission_delete_issue_watchers: Smazat přihlížející
permission_log_time: Zaznamenávání stráveného času
permission_view_time_entries: Zobrazení stráveného času
permission_edit_time_entries: Upravování záznamů o stráveném času
permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase
permission_manage_news: Spravování novinek
permission_comment_news: Komentování novinek
permission_manage_documents: Správa dokumentů
permission_view_documents: Prohlížení dokumentů
permission_manage_files: Spravování souborů
permission_view_files: Prohlížení souborů
permission_manage_wiki: Spravování Wiki
permission_rename_wiki_pages: Přejmenovávání Wiki stránek
permission_delete_wiki_pages: Mazání stránek na Wiki
permission_view_wiki_pages: Prohlížení Wiki
permission_view_wiki_edits: Prohlížení historie Wiki
permission_edit_wiki_pages: Upravování stránek Wiki
permission_delete_wiki_pages_attachments: Mazání příloh
permission_protect_wiki_pages: Zabezpečení Wiki stránek
permission_manage_repository: Spravování repozitáře
permission_browse_repository: Procházení repozitáře
permission_view_changesets: Zobrazování sady změn
permission_commit_access: Commit přístup
permission_manage_boards: Správa diskusních fór
permission_view_messages: Prohlížení zpráv
permission_add_messages: Posílání zpráv
permission_edit_messages: Upravování zpráv
permission_edit_own_messages: Upravit vlastní zprávy
permission_delete_messages: Mazání zpráv
permission_delete_own_messages: Smazat vlastní zprávy
permission_export_wiki_pages: Exportovat Wiki stránky
permission_manage_subtasks: Spravovat podúkoly
project_module_issue_tracking: Sledování úkolů
project_module_time_tracking: Sledování času
@@ -305,10 +431,13 @@ cs:
project_module_wiki: Wiki
project_module_repository: Repozitář
project_module_boards: Diskuse
project_module_calendar: Kalendář
project_module_gantt: Gantt
label_user: Uživatel
label_user_plural: Uživatelé
label_user_new: Nový uživatel
label_user_anonymous: Anonymní
label_project: Projekt
label_project_new: Nový projekt
label_project_plural: Projekty
@@ -355,11 +484,13 @@ cs:
label_information_plural: Informace
label_please_login: Prosím přihlašte se
label_register: Registrovat
label_login_with_open_id_option: nebo se přihlašte s OpenID
label_password_lost: Zapomenuté heslo
label_home: Úvodní
label_my_page: Moje stránka
label_my_account: Můj účet
label_my_projects: Moje projekty
label_my_page_block: Bloky na mé stránce
label_administration: Administrace
label_login: Přihlášení
label_logout: Odhlášení
@@ -370,6 +501,7 @@ cs:
label_registered_on: Registrován
label_activity: Aktivita
label_overall_activity: Celková aktivita
label_user_activity: "Aktivita uživatele: %{value}"
label_new: Nový
label_logged_as: Přihlášen jako
label_environment: Prostředí
@@ -378,6 +510,8 @@ cs:
label_auth_source_new: Nový mód autentifikace
label_auth_source_plural: Módy autentifikace
label_subproject_plural: Podprojekty
label_subproject_new: Nový podprojekt
label_and_its_subprojects: "%{value} a jeho podprojekty"
label_min_max_length: Min - Max délka
label_list: Seznam
label_date: Datum
@@ -411,6 +545,7 @@ cs:
label_version: Verze
label_version_new: Nová verze
label_version_plural: Verze
label_close_versions: Zavřít dokončené verze
label_confirmation: Potvrzení
label_export_to: 'Také k dispozici:'
label_read: Načítá se...
@@ -469,6 +604,8 @@ cs:
label_not_equals: není
label_in_less_than: je měší než
label_in_more_than: je větší než
label_greater_or_equal: '>='
label_less_or_equal: '<='
label_in: v
label_today: dnes
label_all_time: vše
@@ -491,15 +628,21 @@ cs:
label_browse: Procházet
label_modification: "%{count} změna"
label_modification_plural: "%{count} změn"
label_branch: Větev
label_tag: Tag
label_revision: Revize
label_revision_plural: Revizí
label_revision_id: "Revize %{value}"
label_associated_revisions: Související verze
label_added: přidáno
label_modified: změněno
label_copied: zkopírováno
label_renamed: přejmenováno
label_deleted: odstraněno
label_latest_revision: Poslední revize
label_latest_revision_plural: Poslední revize
label_view_revisions: Zobrazit revize
label_view_all_revisions: Zobrazit všechny revize
label_max_size: Maximální velikost
label_sort_highest: Přesunout na začátek
label_sort_higher: Přesunout nahoru
@@ -525,6 +668,7 @@ cs:
label_changes_details: Detail všech změn
label_issue_tracking: Sledování úkolů
label_spent_time: Strávený čas
label_overall_spent_time: Celkem strávený čas
label_f_hour: "%{value} hodina"
label_f_hour_plural: "%{value} hodin"
label_time_tracking: Sledování času
@@ -545,8 +689,9 @@ cs:
label_relation_new: Nová souvislost
label_relation_delete: Odstranit souvislost
label_relates_to: související s
label_duplicates: duplicity
label_blocks: bloků
label_duplicates: duplikuje
label_duplicated_by: zduplikován
label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: předchází
label_follows: následuje
@@ -561,6 +706,8 @@ cs:
label_board: Fórum
label_board_new: Nové fórum
label_board_plural: Fóra
label_board_locked: Uzamčeno
label_board_sticky: Nálepka
label_topic_plural: Témata
label_message_plural: Zprávy
label_message_last: Poslední zpráva
@@ -576,9 +723,12 @@ cs:
label_language_based: Podle výchozího jazyku
label_sort_by: "Seřadit podle %{value}"
label_send_test_email: Poslat testovací email
label_feeds_access_key: Přístupový klíč pro RSS
label_missing_feeds_access_key: Postrádá přístupový klíč pro RSS
label_feeds_access_key_created_on: "Přístupový klíč pro RSS byl vytvořen před %{value}"
label_module_plural: Moduly
label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}"
label_updated_time: "Aktualizováno před %{value}"
label_jump_to_a_project: Vyberte projekt...
label_file_plural: Soubory
@@ -591,6 +741,10 @@ cs:
label_search_titles_only: Vyhledávat pouze v názvech
label_user_mail_option_all: "Pro všechny události všech mých projektů"
label_user_mail_option_selected: "Pro všechny události vybraných projektů..."
label_user_mail_option_none: "Žádné události"
label_user_mail_option_only_my_events: "Jen pro věci co sleduji nebo jsem v nich zapojen"
label_user_mail_option_only_assigned: "Jen pro všeci kterým sem přiřazen"
label_user_mail_option_only_owner: "Jen pro věci které vlastním"
label_user_mail_no_self_notified: "Nezasílat informace o mnou vytvořených změnách"
label_registration_activation_by_email: aktivace účtu emailem
label_registration_manual_activation: manuální aktivace účtu
@@ -609,6 +763,40 @@ cs:
label_preferences: Nastavení
label_chronological_order: V chronologickém pořadí
label_reverse_chronological_order: V obrácaném chronologickém pořadí
label_planning: Plánování
label_incoming_emails: Příchozí e-maily
label_generate_key: Generovat klíč
label_issue_watchers: Sledování
label_example: Příklad
label_display: Zobrazit
label_sort: Řazení
label_ascending: Vzestupně
label_descending: Sestupně
label_date_from_to: Od %{start} do %{end}
label_wiki_content_added: Wiki stránka přidána
label_wiki_content_updated: Wiki stránka aktualizována
label_group: Skupina
label_group_plural: Skupiny
label_group_new: Nová skupina
label_time_entry_plural: Strávený čas
label_version_sharing_none: Nesdíleno
label_version_sharing_descendants: S podprojekty
label_version_sharing_hierarchy: S hierarchií projektu
label_version_sharing_tree: Se stromem projektu
label_version_sharing_system: Se všemi projekty
label_update_issue_done_ratios: Aktualizovat koeficienty dokončení úkolů
label_copy_source: Zdroj
label_copy_target: Cíl
label_copy_same_as_target: Stejný jako cíl
label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
label_api_access_key: API přístupový klíč
label_missing_api_access_key: Chybějící přístupový klíč API
label_api_access_key_created_on: API přístupový klíč vytvořen %{value}
label_profile: Profil
label_subtask_plural: Podúkol
label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
label_principal_search: "Hledat uživatele nebo skupinu:"
label_user_search: "Hledat uživatele:"
button_login: Přihlásit
button_submit: Potvrdit
@@ -617,8 +805,10 @@ cs:
button_uncheck_all: Odšrtnout vše
button_delete: Odstranit
button_create: Vytvořit
button_test: Test
button_create_and_continue: Vytvořit a pokračovat
button_test: Testovat
button_edit: Upravit
button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
button_add: Přidat
button_change: Změnit
button_apply: Použít
@@ -629,6 +819,7 @@ cs:
button_list: Vypsat
button_view: Zobrazit
button_move: Přesunout
button_move_and_follow: Přesunout a následovat
button_back: Zpět
button_cancel: Storno
button_activate: Aktivovat
@@ -640,24 +831,40 @@ cs:
button_reply: Odpovědět
button_archive: Archivovat
button_unarchive: Odarchivovat
button_reset: Reset
button_reset: Resetovat
button_rename: Přejmenovat
button_change_password: Změnit heslo
button_copy: Kopírovat
button_copy_and_follow: Kopírovat a následovat
button_annotate: Komentovat
button_update: Aktualizovat
button_configure: Konfigurovat
button_quote: Citovat
button_duplicate: Duplikovat
button_show: Zobrazit
status_active: aktivní
status_registered: registrovaný
status_locked: uzamčený
version_status_open: otevřený
version_status_locked: uzamčený
version_status_closed: zavřený
field_active: Aktivní
text_select_mail_notifications: Vyberte akci při které bude zasláno upozornění emailem.
text_regexp_info: např. ^[A-Z0-9]+$
text_min_max_length_info: 0 znamená bez limitu
text_project_destroy_confirmation: Jste si jisti, že chcete odstranit tento projekt a všechna související data ?
text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
text_workflow_edit: Vyberte roli a frontu k editaci průběhu práce
text_are_you_sure: Jste si jisti?
text_are_you_sure_with_children: Smazat úkol včetně všech podúkolů?
text_journal_changed: "%{label} změněn z %{old} na %{new}"
text_journal_set_to: "%{label} nastaven na %{value}"
text_journal_deleted: "%{label} smazán (%{old})"
text_journal_added: "%{label} %{value} přidán"
text_tip_issue_begin_day: úkol začíná v tento den
text_tip_issue_end_day: úkol končí v tento den
text_tip_issue_begin_end_day: úkol začíná a končí v tento den
@@ -668,6 +875,7 @@ cs:
text_tracker_no_workflow: Pro tuto frontu není definován žádný průběh práce
text_unallowed_characters: Nepovolené znaky
text_comma_separated: Povoleno více hodnot (oddělěné čárkou).
text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu).
text_issues_ref_in_commit_messages: Odkazování a opravování úkolů ve zprávách commitů
text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
@@ -679,15 +887,31 @@ cs:
text_no_configuration_data: "Role, fronty, stavy úkolů ani průběh práce nebyly zatím nakonfigurovány.\nVelice doporučujeme nahrát výchozí konfiguraci. Po té si můžete vše upravit"
text_load_default_configuration: Nahrát výchozí konfiguraci
text_status_changed_by_changeset: "Použito v changesetu %{value}."
text_time_logged_by_changeset: Aplikováno v changesetu %{value}.
text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
text_select_project_modules: 'Aktivní moduly v tomto projektu:'
text_default_administrator_account_changed: Výchozí nastavení administrátorského účtu změněno
text_file_repository_writable: Povolen zápis do adresáře ukládání souborů
text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
text_rmagick_available: RMagick k dispozici (volitelné)
text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
text_destroy_time_entries: Odstranit evidované hodiny.
text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
text_user_wrote: "%{value} napsal:"
text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
text_enumeration_category_reassign_to: 'Přeřadit je do této:'
text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
text_wiki_page_reassign_children: Přiřadit podstránky k tomuto rodiči
text_own_membership_delete_confirmation: "Chystáte se odebrat si některá nebo všechny svá oprávnění a potom již nemusíte být schopni upravit tento projekt.\nOpravdu chcete pokračovat?"
text_zoom_in: Přiblížit
text_zoom_out: Oddálit
default_role_manager: Manažer
default_role_developer: Vývojář
@@ -714,225 +938,4 @@ cs:
enumeration_issue_priorities: Priority úkolů
enumeration_doc_categories: Kategorie dokumentů
enumeration_activities: Aktivity (sledování času)
error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
label_planning: Plánování
text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
label_and_its_subprojects: "%{value} a jeho podprojekty"
mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
text_user_wrote: "%{value} napsal:"
label_duplicated_by: duplikováno od
setting_enabled_scm: Povolené SCM
text_enumeration_category_reassign_to: 'Přeřadit je do této:'
text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
label_incoming_emails: Příchozí e-maily
label_generate_key: Generovat klíč
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
field_parent_title: Rodičovská stránka
label_issue_watchers: Sledování
setting_commit_logs_encoding: Kódování zpráv při commitu
button_quote: Citovat
setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů
notice_unable_delete_version: Nemohu odstanit verzi
label_renamed: přejmenováno
label_copied: zkopírováno
setting_plain_text_mail: pouze prostý text (ne HTML)
permission_view_files: Prohlížení souborů
permission_edit_issues: Upravování úkolů
permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase
permission_manage_public_queries: Správa veřejných dotazů
permission_add_issues: Přidávání úkolů
permission_log_time: Zaznamenávání stráveného času
permission_view_changesets: Zobrazování sady změn
permission_view_time_entries: Zobrazení stráveného času
permission_manage_versions: Spravování verzí
permission_manage_wiki: Spravování Wiki
permission_manage_categories: Spravování kategorií úkolů
permission_protect_wiki_pages: Zabezpečení Wiki stránek
permission_comment_news: Komentování novinek
permission_delete_messages: Mazání zpráv
permission_select_project_modules: Výběr modulů projektu
permission_manage_documents: Správa dokumentů
permission_edit_wiki_pages: Upravování stránek Wiki
permission_add_issue_watchers: Přidání sledujících uživatelů
permission_view_gantt: Zobrazené Ganttova diagramu
permission_move_issues: Přesouvání úkolů
permission_manage_issue_relations: Spravování vztahů mezi úkoly
permission_delete_wiki_pages: Mazání stránek na Wiki
permission_manage_boards: Správa diskusních fór
permission_delete_wiki_pages_attachments: Mazání příloh
permission_view_wiki_edits: Prohlížení historie Wiki
permission_add_messages: Posílání zpráv
permission_view_messages: Prohlížení zpráv
permission_manage_files: Spravování souborů
permission_edit_issue_notes: Upravování poznámek
permission_manage_news: Spravování novinek
permission_view_calendar: Prohlížení kalendáře
permission_manage_members: Spravování členství
permission_edit_messages: Upravování zpráv
permission_delete_issues: Mazání úkolů
permission_view_issue_watchers: Zobrazení seznamu sledujícíh uživatelů
permission_manage_repository: Spravování repozitáře
permission_commit_access: Commit přístup
permission_browse_repository: Procházení repozitáře
permission_view_documents: Prohlížení dokumentů
permission_edit_project: Úprava projektů
permission_add_issue_notes: Přidávání poznámek
permission_save_queries: Ukládání dotazů
permission_view_wiki_pages: Prohlížení Wiki
permission_rename_wiki_pages: Přejmenovávání Wiki stránek
permission_edit_time_entries: Upravování záznamů o stráveném času
permission_edit_own_issue_notes: Upravování vlastních poznámek
setting_gravatar_enabled: Použít uživatelské ikony Gravatar
label_example: Příklad
text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
permission_edit_own_messages: Upravit vlastní zprávy
permission_delete_own_messages: Smazat vlastní zprávy
label_user_activity: "Aktivita uživatele: %{value}"
label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
setting_diff_max_lines_displayed: Maximální počet zobrazenách řádků rozdílů
text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
button_create_and_continue: Vytvořit a pokračovat
text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
label_display: Zobrazit
field_editable: Editovatelný
setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru
setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce
field_watcher: Sleduje
setting_openid: Umožnit přihlašování a registrace s OpenID
field_identity_url: OpenID URL
label_login_with_open_id_option: nebo se přihlašte s OpenID
field_content: Obsah
label_descending: Sestupně
label_sort: Řazení
label_ascending: Vzestupně
label_date_from_to: Od %{start} do %{end}
label_greater_or_equal: ">="
label_less_or_equal: <=
text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
text_wiki_page_reassign_children: Přiřadit podstránky k tomuto rodiči
text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
setting_password_min_length: Minimální délka hesla
field_group_by: Seskupovat výsledky podle
mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
label_wiki_content_added: Wiki stránka přidána
mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
label_wiki_content_updated: Wiki stránka aktualizována
mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
permission_add_project: Vytvořit projekt
setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
label_view_all_revisions: Zobrazit všechny revize
label_tag: Tag
label_branch: Branch
error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
text_journal_changed: "%{label} změněn z %{old} na %{new}"
text_journal_set_to: "%{label} nastaven na %{value}"
text_journal_deleted: "%{label} smazán (%{old})"
label_group_plural: Skupiny
label_group: Skupina
label_group_new: Nová skupina
label_time_entry_plural: Strávený čas
text_journal_added: "%{label} %{value} přidán"
field_active: Aktivní
enumeration_system_activity: Systémová aktivita
permission_delete_issue_watchers: Smazat přihlížející
version_status_closed: zavřený
version_status_locked: uzamčený
version_status_open: otevřený
error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
label_user_anonymous: Anonymní
button_move_and_follow: Přesunout a následovat
setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt
setting_gravatar_default: Výchozí Gravatar
field_sharing: Sdílení
label_version_sharing_hierarchy: S hierarchií projektu
label_version_sharing_system: Se všemi projekty
label_version_sharing_descendants: S podprojekty
label_version_sharing_tree: Se stromem projektu
label_version_sharing_none: Nesdíleno
error_can_not_archive_project: Tento projekt nemůže být archivován
button_duplicate: Duplikát
button_copy_and_follow: Kopírovat a následovat
label_copy_source: Zdroj
setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s
setting_issue_done_ratio_issue_status: Použít stav úkolu
error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován.
error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roly(e)
setting_issue_done_ratio_issue_field: Použít pole úkolu
label_copy_same_as_target: Stejný jako cíl
label_copy_target: Cíl
notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány.
error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roly
label_update_issue_done_ratios: Aktualizovat koeficienty dokončení úkolů
setting_start_of_week: Začínat kalendáře
permission_view_issues: Zobrazit úkoly
label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
label_revision_id: Revize %{value}
label_api_access_key: API přístupový klíč
label_api_access_key_created_on: API přístupový klíč vytvořen %{value}
label_feeds_access_key: RSS přístupový klíč
notice_api_access_key_reseted: Váš API přístupový klíč byl resetován.
setting_rest_api_enabled: Zapnout službu REST
label_missing_api_access_key: Chybějící přístupový klíč API
label_missing_feeds_access_key: Chybějící přístupový klíč RSS
button_show: Zobrazit
text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu).
setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
permission_add_subprojects: Vytvořit podprojekty
label_subproject_new: Nový podprojekt
text_own_membership_delete_confirmation: |-
Chystáte se odebrat si některá nebo všechny svá oprávnění a potom již nemusíte být schopni upravit tento projekt.
Opravdu chcete pokračovat?
label_close_versions: Zavřít dokončené verze
label_board_sticky: Nálepka
label_board_locked: Uzamčeno
permission_export_wiki_pages: Exportovat Wiki stránky
setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti
permission_manage_project_activities: Spravovat aktivity projektu
error_unable_delete_issue_status: Nelze smazat stavy úkolů
label_profile: Profil
permission_manage_subtasks: Spravovat podúkoly
field_parent_issue: Rodičovský úkol
label_subtask_plural: Podúkol
label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
error_can_not_delete_custom_field: Nelze smazat volitelné pole
error_unable_to_connect: Nelze se připojit (%{value})
error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
field_principal: Hlavní
label_my_page_block: Bloky na mé stránce
notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}."
text_zoom_out: Oddálit
text_zoom_in: Přiblížit
notice_unable_delete_time_entry: Nelze smazat čas ze záznamu.
label_overall_spent_time: Celkově strávený čas
field_time_entries: Zaznamenaný čas
project_module_gantt: Gantt
project_module_calendar: Kalendář
button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
text_are_you_sure_with_children: Smazat úkol včetně všech podúkolů?
field_text: Textové pole
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -858,6 +858,7 @@ de:
text_subprojects_destroy_warning: "Dessen Unterprojekte (%{value}) werden ebenfalls gelöscht."
text_workflow_edit: Workflow zum Bearbeiten auswählen
text_are_you_sure: Sind Sie sicher?
text_are_you_sure_with_children: "Lösche Aufgabe und alle Unteraufgaben?"
text_journal_changed: "%{label} wurde von %{old} zu %{new} geändert"
text_journal_set_to: "%{label} wurde auf %{value} gesetzt"
text_journal_deleted: "%{label} %{old} wurde gelöscht"
@@ -936,20 +937,19 @@ de:
enumeration_activities: Aktivitäten (Zeiterfassung)
enumeration_system_activity: System-Aktivität
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
field_text: Textfeld
label_user_mail_option_only_owner: Nur für Aufgaben die ich angelegt habe
setting_default_notification_option: Standard Benachrichtigungsoptionen
label_user_mail_option_only_my_events: Nur für Aufgaben die ich beobachte oder an welchen ich mitarbeite
label_user_mail_option_only_assigned: Nur für Aufgaben für die ich zuständig bin.
notice_not_authorized_archived_project: Das Projekt wurde archiviert und ist daher nicht nicht verfügbar.
label_user_mail_option_none: keine Ereignisse
field_member_of_group: Zuständigkeitsgruppe
field_assigned_to_role: Zuständigkeitsrolle
field_visible: Sichtbar
setting_emails_header: Emailkopf
setting_commit_logtime_activity_id: Aktivität für die Zeiterfassung
text_time_logged_by_changeset: Angewendet in Changeset %{value}.
setting_commit_logtime_enabled: Aktiviere Zeitlogging
notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max})
setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden.

View File

@@ -677,7 +677,7 @@ es:
notice_default_data_loaded: Configuración por defecto cargada correctamente.
notice_email_error: "Ha ocurrido un error mientras enviando el correo (%{value})"
notice_email_sent: "Se ha enviado un correo a %{value}"
notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %{count} seleccionado: %{ids}."
notice_failed_to_save_issues: "Imposible grabar %{count} peticion(es) de %{total} seleccionada(s): %{ids}."
notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
notice_file_not_found: La página a la que intenta acceder no existe.
notice_locking_conflict: Los datos han sido modificados por otro usuario.

View File

@@ -99,8 +99,8 @@ eu:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "Errore batek %{model} hau godetzea galarazi du."
other: "%{count} errorek %{model} hau gordetzea galarazi dute."
messages:
inclusion: "ez dago zerrendan"
exclusion: "erreserbatuta dago"
@@ -125,7 +125,7 @@ eu:
greater_than_start_date: "hasiera data baino handiagoa izan behar du"
not_same_project: "ez dago proiektu berdinean"
circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
cant_link_an_issue_with_a_descendant: "Zeregin bat ezin da bere azpiataza batekin estekatu."
actionview_instancetag_blank_option: Hautatu mesedez
@@ -277,7 +277,7 @@ eu:
field_issue_to: Erlazionatutako zereginak
field_delay: Atzerapena
field_assignable: Arazoak rol honetara esleitu daitezke
field_redirect_existing_links: Existitzen diren estelak berbideratu
field_redirect_existing_links: Existitzen diren estekak berbideratu
field_estimated_hours: Estimatutako denbora
field_column_names: Zutabeak
field_time_zone: Ordu zonaldea
@@ -318,7 +318,7 @@ eu:
setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
setting_repositories_encodings: Biltegien kodeketak
setting_commit_logs_encoding: Commit-en mezuen kodetzea
setting_commit_logs_encoding: Commit-en egunkarien kodetzea
setting_emails_footer: Eposten oina
setting_protocol: Protokoloa
setting_per_page_options: Orriko objektuen aukerak
@@ -363,7 +363,7 @@ eu:
permission_delete_issues: Zereginak ezabatu
permission_manage_public_queries: Galdera publikoak kudeatu
permission_save_queries: Galderak gorde
permission_view_gantt: Gantt diagrama ikusi
permission_view_gantt: Gantt grafikoa ikusi
permission_view_calendar: Egutegia ikusi
permission_view_issue_watchers: Behatzaileen zerrenda ikusi
permission_add_issue_watchers: Behatzaileak gehitu
@@ -441,7 +441,7 @@ eu:
label_tracker: Aztarnaria
label_tracker_plural: Aztarnariak
label_tracker_new: Aztarnari berria
label_workflow: Workflow
label_workflow: Lan-fluxua
label_issue_status: Zeregin egoera
label_issue_status_plural: Zeregin egoerak
label_issue_status_new: Egoera berria
@@ -506,7 +506,7 @@ eu:
label_file_added: Fitxategia gehituta
label_report: Berri ematea
label_report_plural: Berri emateak
label_news: Beria
label_news: Berria
label_news_new: Berria gehitu
label_news_plural: Berriak
label_news_latest: Azken berriak
@@ -553,7 +553,7 @@ eu:
label_add_note: Oharra gehitu
label_per_page: Orriko
label_calendar: Egutegia
label_months_from: months from
label_months_from: hilabete noiztik
label_gantt: Gantt
label_internal: Barnekoa
label_last_changes: "azken %{count} aldaketak"
@@ -784,7 +784,7 @@ eu:
button_cancel: Ezeztatu
button_activate: Gahitu
button_sort: Ordenatu
button_log_time: Denbora apuntatu
button_log_time: Denbora erregistratu
button_rollback: Itzuli bertsio honetara
button_watch: Behatu
button_unwatch: Behatzen utzi
@@ -824,9 +824,9 @@ eu:
text_journal_set_to: "%{label}-k %{value} balioa hartu du"
text_journal_deleted: "%{label} ezabatuta (%{old})"
text_journal_added: "%{label} %{value} gehituta"
text_tip_issue_begin_day: gaur hasten diren atazak
text_tip_issue_end_day: gaur bukatzen diren atazak
text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
text_tip_issue_begin_day: gaur hasten diren zereginak
text_tip_issue_end_day: gaur bukatzen diren zereginak
text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren zereginak
text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
text_caracters_maximum: "%{count} karaktere gehienez."
text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
@@ -895,7 +895,7 @@ eu:
enumeration_doc_categories: Dokumentu kategoriak
enumeration_activities: Jarduerak (denbora kontrola))
enumeration_system_activity: Sistemako Jarduera
label_board_sticky: Itxaskorra
label_board_sticky: Itsaskorra
label_board_locked: Blokeatuta
permission_export_wiki_pages: Wiki orriak esportatu
setting_cache_formatted_text: Formatudun testua katxeatu
@@ -903,40 +903,40 @@ eu:
error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
label_profile: Profila
permission_manage_subtasks: Azpiatazak kudeatu
field_parent_issue: Guraso ataza
field_parent_issue: Zeregin gurasoa
label_subtask_plural: Azpiatazak
label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
error_can_not_delete_custom_field: Ezin da eremu pertsonalizatua ezabatu
error_unable_to_connect: Ezin da konektatu (%{value})
error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
field_principal: Principal
label_my_page_block: My page block
notice_failed_to_save_members: "Failed to save member(s): %{errors}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
notice_unable_delete_time_entry: Unable to delete time log entry.
label_overall_spent_time: Overall spent time
field_time_entries: Log time
field_principal: Ekintzaile
label_my_page_block: "Nire orriko blokea"
notice_failed_to_save_members: "Kidea(k) gordetzean errorea: %{errors}."
text_zoom_out: Zooma txikiagotu
text_zoom_in: Zooma handiagotu
notice_unable_delete_time_entry: "Ezin da hautatutako denbora erregistroa ezabatu."
label_overall_spent_time: Igarotako denbora guztira
field_time_entries: "Denbora erregistratu"
project_module_gantt: Gantt
project_module_calendar: Calendar
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
project_module_calendar: Egutegia
button_edit_associated_wikipage: "Esleitutako wiki orria editatu: %{page_title}"
text_are_you_sure_with_children: "Zeregina eta azpi zeregin guztiak ezabatu?"
field_text: Testu eremua
label_user_mail_option_only_owner: "Jabea naizen gauzetarako barrarik"
setting_default_notification_option: "Lehenetsitako ohartarazpen aukera"
label_user_mail_option_only_my_events: "Behatzen ditudan edo partaide naizen gauzetarako bakarrik"
label_user_mail_option_only_assigned: "Niri esleitutako gauzentzat bakarrik"
label_user_mail_option_none: "Gertakaririk ez"
field_member_of_group: "Esleituta duenaren taldea"
field_assigned_to_role: "Esleituta duenaren rola"
notice_not_authorized_archived_project: "Atzitu nahi duzun proiektua artxibatua izan da."
label_principal_search: "Bilatu erabiltzaile edo taldea:"
label_user_search: "Erabiltzailea bilatu:"
field_visible: Ikusgai
setting_emails_header: "Eposten goiburua"
setting_commit_logtime_activity_id: "Erregistratutako denboraren jarduera"
text_time_logged_by_changeset: "%{value} aldaketan egindakoa."
setting_commit_logtime_enabled: "Erregistrutako denbora gaitu"
notice_gantt_chart_truncated: Grafikoa moztu da bistara daitekeen elementuen kopuru maximoa gainditu delako (%{max})
setting_gantt_items_limit: "Gantt grafikoan bistara daitekeen elementu kopuru maximoa"

View File

@@ -166,10 +166,10 @@ fr:
notice_successful_create: Création effectuée avec succès.
notice_successful_update: Mise à jour effectuée avec succès.
notice_successful_delete: Suppression effectuée avec succès.
notice_successful_connection: Connection réussie.
notice_successful_connection: Connexion réussie.
notice_file_not_found: "La page à laquelle vous souhaitez accéder n'existe pas ou a été supprimée."
notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
notice_not_authorized: "Vous n'êtes pas autorisés à accéder à cette page."
notice_not_authorized: "Vous n'êtes pas autorisé à accéder à cette page."
notice_not_authorized_archived_project: Le projet auquel vous tentez d'accéder a été archivé.
notice_email_sent: "Un email a été envoyé à %{value}"
notice_email_error: "Erreur lors de l'envoi de l'email (%{value})"
@@ -323,11 +323,11 @@ fr:
setting_text_formatting: Formatage du texte
setting_wiki_compression: Compression historique wiki
setting_feeds_limit: Limite du contenu des flux RSS
setting_default_projects_public: Définir les nouveaux projects comme publics par défaut
setting_default_projects_public: Définir les nouveaux projets comme publics par défaut
setting_autofetch_changesets: Récupération auto. des commits
setting_sys_api_enabled: Activer les WS pour la gestion des dépôts
setting_commit_ref_keywords: Mot-clés de référencement
setting_commit_fix_keywords: Mot-clés de résolution
setting_commit_ref_keywords: Mots-clés de référencement
setting_commit_fix_keywords: Mots-clés de résolution
setting_autologin: Autologin
setting_date_format: Format de date
setting_time_format: Format d'heure
@@ -349,7 +349,7 @@ fr:
setting_gravatar_enabled: Afficher les Gravatar des utilisateurs
setting_diff_max_lines_displayed: Nombre maximum de lignes de diff affichées
setting_file_max_size_displayed: Taille maximum des fichiers texte affichés en ligne
setting_repository_log_display_limit: "Nombre maximum de revisions affichées sur l'historique d'un fichier"
setting_repository_log_display_limit: "Nombre maximum de révisions affichées sur l'historique d'un fichier"
setting_openid: "Autoriser l'authentification et l'enregistrement OpenID"
setting_password_min_length: Longueur minimum des mots de passe
setting_new_project_user_role_id: Rôle donné à un utilisateur non-administrateur qui crée un projet
@@ -369,7 +369,7 @@ fr:
permission_add_subprojects: Créer des sous-projets
permission_edit_project: Modifier le projet
permission_select_project_modules: Choisir les modules
permission_manage_members: Gérer les members
permission_manage_members: Gérer les membres
permission_manage_versions: Gérer les versions
permission_manage_categories: Gérer les catégories de demandes
permission_view_issues: Voir les demandes
@@ -449,6 +449,9 @@ fr:
label_issue_view_all: Voir toutes les demandes
label_issue_added: Demande ajoutée
label_issue_updated: Demande mise à jour
label_issue_note_added: Note ajoutée
label_issue_status_updated: Statut changé
label_issue_priority_updated: Priorité changée
label_issues_by: "Demandes par %{value}"
label_document: Document
label_document_new: Nouveau document
@@ -486,7 +489,7 @@ fr:
label_my_page: Ma page
label_my_account: Mon compte
label_my_projects: Mes projets
label_my_page_block: Ma page bloque
label_my_page_block: Blocs disponibles
label_administration: Administration
label_login: Connexion
label_logout: Déconnexion
@@ -856,7 +859,7 @@ fr:
text_issue_added: "La demande %{id} a été soumise par %{author}."
text_issue_updated: "La demande %{id} a été mise à jour par %{author}."
text_wiki_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce wiki et tout son contenu ?
text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégorie. Que voulez-vous faire ?"
text_issue_category_destroy_assignments: N'affecter les demandes à aucune autre catégorie
text_issue_category_reassign_to: Réaffecter les demandes à cette catégorie
text_user_mail_option: "Pour les projets non sélectionnés, vous recevrez seulement des notifications pour ce que vous surveillez ou à quoi vous participez (exemple: demandes dont vous êtes l'auteur ou la personne assignée)."

View File

@@ -654,7 +654,7 @@ gl:
notice_default_data_loaded: Configuración por defecto cargada correctamente.
notice_email_error: "Ocorreu un error enviando o correo (%{value})"
notice_email_sent: "Enviouse un correo a %{value}"
notice_failed_to_save_issues: "Imposible gravar %s petición(s) en %{count} seleccionado: %{ids}."
notice_failed_to_save_issues: "Imposible gravar %{count} petición(s) de %{total} seleccionada(s): %{ids}."
notice_feeds_access_key_reseted: A súa clave de acceso para RSS reiniciouse.
notice_file_not_found: A páxina á que tenta acceder non existe.
notice_locking_conflict: Os datos modificáronse por outro usuario.

View File

@@ -1,6 +1,7 @@
# Italian translations for Ruby on Rails
# by Claudio Poli (masterkain@gmail.com)
# by Diego Pierotto (ita.translations@tiscali.it)
# by Emidio Stani (emidiostani@gmail.com)
it:
direction: ltr
@@ -126,7 +127,7 @@ it:
greater_than_start_date: "deve essere maggiore della data di partenza"
not_same_project: "non appartiene allo stesso progetto"
circular_dependency: "Questa relazione creerebbe una dipendenza circolare"
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
cant_link_an_issue_with_a_descendant: "Una segnalazione non può essere collegata a una delle sue discendenti"
actionview_instancetag_blank_option: Scegli
@@ -135,17 +136,17 @@ it:
general_text_no: 'no'
general_text_yes: 'sì'
general_lang_name: 'Italiano'
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_separator: ';'
general_csv_decimal_separator: ','
general_csv_encoding: ISO-8859-1
general_pdf_encoding: ISO-8859-1
general_first_day_of_week: '1'
notice_account_updated: L'utente è stata aggiornato.
notice_account_updated: L'utente è stato aggiornato.
notice_account_invalid_creditentials: Nome utente o password non validi.
notice_account_password_updated: La password è stata aggiornata.
notice_account_wrong_password: Password errata
notice_account_register_done: L'utente è stata creato.
notice_account_register_done: L'utente è stato creato.
notice_account_unknown_email: Utente sconosciuto.
notice_can_t_change_password: Questo utente utilizza un metodo di autenticazione esterno. Impossibile cambiare la password.
notice_account_lost_email_sent: Ti è stata spedita una email con le istruzioni per cambiare la password.
@@ -462,7 +463,7 @@ it:
label_all_words: Tutte le parole
label_wiki: Wiki
label_wiki_edit: Modifica wiki
label_wiki_edit_plural: Modfiche wiki
label_wiki_edit_plural: Modifiche wiki
label_wiki_page: Pagina Wiki
label_wiki_page_plural: Pagine wiki
label_index_by_title: Ordina per titolo
@@ -913,26 +914,26 @@ it:
text_zoom_in: Aumenta ingrandimento
notice_unable_delete_time_entry: Impossibile eliminare il valore time log.
label_overall_spent_time: Totale tempo impiegato
field_time_entries: Log time
field_time_entries: Tempo di collegamento
project_module_gantt: Gantt
project_module_calendar: Calendar
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
project_module_calendar: Calendario
button_edit_associated_wikipage: "Modifica la pagina wiki associata: %{page_title}"
text_are_you_sure_with_children: Eliminare la segnalazione e tutte le discendenti?
field_text: Campo di testo
label_user_mail_option_only_owner: Solo se io sono il proprietario
setting_default_notification_option: Opzione di notifica predefinita
label_user_mail_option_only_my_events: Solo se sono un osservatore o sono coinvolto
label_user_mail_option_only_assigned: Solo quando mi assegnano attività
label_user_mail_option_none: Nessun evento
field_member_of_group: Gruppo dell'assegnatario
field_assigned_to_role: Ruolo dell'assegnatario
notice_not_authorized_archived_project: Il progetto a cui stai accedendo è stato archiviato.
label_principal_search: "Cerca utente o gruppo:"
label_user_search: "Cerca utente:"
field_visible: Visibile
setting_emails_header: Intestazione email
setting_commit_logtime_activity_id: Attività per il tempo di collegamento
text_time_logged_by_changeset: Usato nel changeset %{value}.
setting_commit_logtime_enabled: Abilita registrazione del tempo di collegamento
notice_gantt_chart_truncated: Il grafico è stato troncato perchè eccede il numero di oggetti (%{max}) da visualizzare
setting_gantt_items_limit: Massimo numero di oggetti da visualizzare sul diagramma di gantt

View File

@@ -188,6 +188,7 @@ ja:
notice_unable_delete_version: バージョンを削除できません
notice_unable_delete_time_entry: 作業時間を削除できません
notice_issue_done_ratios_updated: チケットの進捗が更新されました。
notice_gantt_chart_truncated: ガントチャートは、最大表示項目数(%{max})を超えたたため切り捨てられました。
error_can_t_load_default_data: "デフォルト設定がロードできませんでした: %{value}"
error_scm_not_found: リポジトリに、エントリ/リビジョンが存在しません。
@@ -380,6 +381,9 @@ ja:
setting_start_of_week: 週の開始曜日
setting_rest_api_enabled: RESTによるWebサービスを有効にする
setting_default_notification_option: デフォルトのメール通知オプション
setting_commit_logtime_enabled: コミット時に作業時間を記録する
setting_commit_logtime_activity_id: 作業時間の作業分類
setting_gantt_items_limit: ガントチャート最大表示項目数
permission_add_project: プロジェクトの追加
permission_add_subprojects: サブプロジェクトの追加
@@ -901,6 +905,7 @@ ja:
text_no_configuration_data: "ロール、トラッカー、チケットのステータス、ワークフローがまだ設定されていません。\nデフォルト設定のロードを強くお勧めします。ロードした後、それを修正することができます。"
text_load_default_configuration: デフォルト設定をロード
text_status_changed_by_changeset: "更新履歴 %{value} で適用されました。"
text_time_logged_by_changeset: "更新履歴 %{value} で適用されました。"
text_issues_destroy_confirmation: '本当に選択したチケットを削除しますか?'
text_select_project_modules: 'このプロジェクトで使用するモジュールを選択してください:'
text_default_administrator_account_changed: デフォルト管理アカウントが変更済
@@ -952,8 +957,3 @@ ja:
enumeration_doc_categories: 文書カテゴリ
enumeration_activities: 作業分類 (時間トラッキング)
enumeration_system_activity: システム作業分類
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -5,25 +5,25 @@ nl:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"
default: "%d-%m-%Y"
short: "%e %b"
long: "%d %B, %Y"
day_names: [Zondag, Maandag, Dinsdag, Woensdag, Donderdag, Vrijdag, Zaterdag]
abbr_day_names: [Zo, Ma, Di, Woe, Do, Vr, Zat]
day_names: [zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag]
abbr_day_names: [zo, ma, di, wo, do, vr, za]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, Januari, Februari, Maart, April, Mei, Juni, Juli, Augustus, September, Oktober, November, December]
abbr_month_names: [~, Jan, Feb, Mar, Apr, Mei, Jun, Jul, Aug, Sep, Okt, Nov, Dec]
month_names: [~, januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december]
abbr_month_names: [~, jan, feb, mar, apr, mei, jun, jul, aug, sep, okt, nov, dec]
# Used in date_select and datime_select.
order: [ :year, :month, :day ]
order: [ :day, :month, :year ]
time:
formats:
default: "%a, %d %b %Y %H:%M:%S %z"
time: "%H:%M"
short: "%d %b %H:%M"
long: "%B %d, %Y %H:%M"
short: "%e %b %H:%M"
long: "%d %B, %Y %H:%M"
am: "am"
pm: "pm"
@@ -32,7 +32,7 @@ nl:
half_a_minute: "halve minuut"
less_than_x_seconds:
one: "minder dan een seconde"
other: "mindera dan %{count} seconden"
other: "minder dan %{count} seconden"
x_seconds:
one: "1 seconde"
other: "%{count} seconden"
@@ -56,13 +56,13 @@ nl:
other: "%{count} maanden"
about_x_years:
one: "ongeveer 1 jaar"
other: "ongeveer %{count} jaren"
other: "ongeveer %{count} jaar"
over_x_years:
one: "over 1 jaar"
other: "over %{count} jaren"
one: "meer dan 1 jaar"
other: "meer dan %{count} jaar"
almost_x_years:
one: "almost 1 year"
other: "almost %{count} years"
one: "bijna 1 jaar"
other: "bijna %{count} jaar"
number:
format:
@@ -94,8 +94,8 @@ nl:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "Door een fout kon dit %{model} niet worden opgeslagen"
other: "Door %{count} fouten kon dit %{model} niet worden opgeslagen"
messages:
inclusion: "staat niet in de lijst"
exclusion: "is gereserveerd"
@@ -143,7 +143,7 @@ nl:
button_edit: Bewerk
button_list: Lijst
button_lock: Sluit
button_log_time: Log tijd
button_log_time: Registreer tijd
button_login: Inloggen
button_move: Verplaatsen
button_quote: Citaat
@@ -275,9 +275,9 @@ nl:
field_user: Gebruiker
field_value: Waarde
field_version: Versie
general_csv_decimal_separator: '.'
general_csv_decimal_separator: ','
general_csv_encoding: ISO-8859-1
general_csv_separator: ','
general_csv_separator: ';'
general_first_day_of_week: '7'
general_lang_name: 'Nederlands'
general_pdf_encoding: ISO-8859-1
@@ -513,9 +513,9 @@ nl:
one: 1 project
other: "%{count} projects"
label_public_projects: Publieke projecten
label_query: Eigen zoekvraag
label_query_new: Nieuwe zoekvraag
label_query_plural: Eigen zoekvragen
label_query: Eigen zoekopdracht
label_query_new: Nieuwe zoekopdracht
label_query_plural: Eigen zoekopdrachten
label_read: Lees...
label_register: Registreer
label_registered_on: Geregistreerd op
@@ -581,7 +581,7 @@ nl:
label_used_by: Gebruikt door
label_user: Gebruiker
label_user_activity: "%{value}'s activiteit"
label_user_mail_no_self_notified: "Ik wil niet op de hoogte gehouden worden van wijzigingen die ik zelf maak."
label_user_mail_no_self_notified: Ik wil niet op de hoogte gehouden worden van mijn eigen wijzigingen
label_user_mail_option_all: "Bij elk gebeurtenis in al mijn projecten..."
label_user_mail_option_selected: "Enkel bij elke gebeurtenis op het geselecteerde project..."
label_user_new: Nieuwe gebruiker
@@ -718,7 +718,7 @@ nl:
setting_mail_from: Afzender e-mail adres
setting_mail_handler_api_enabled: Schakel WS in voor inkomende mail.
setting_mail_handler_api_key: API sleutel
setting_per_page_options: Objects per pagina-opties
setting_per_page_options: Aantal objecten per pagina (opties)
setting_plain_text_mail: platte tekst (geen HTML)
setting_protocol: Protocol
setting_repositories_encodings: Repositories coderingen
@@ -773,7 +773,7 @@ nl:
text_tip_issue_end_day: issue die op deze dag eindigt
text_tracker_no_workflow: Geen workflow gedefinieerd voor deze tracker
text_unallowed_characters: Niet toegestane tekens
text_user_mail_option: "Bij niet-geselecteerde projecten zult u enkel notificaties ontvangen voor issues die u monitort of waar u bij betrokken bent (als auteur of toegewezen persoon)."
text_user_mail_option: "Bij niet-geselecteerde projecten zult u enkel mededelingen ontvangen voor issues die u monitort of waar u bij betrokken bent (als auteur of toegewezen persoon)."
text_user_wrote: "%{value} schreef:"
text_wiki_destroy_confirmation: Weet u zeker dat u deze wiki en zijn inhoud wenst te verwijderen?
text_workflow_edit: Selecteer een rol en een tracker om de workflow te wijzigen
@@ -795,7 +795,7 @@ nl:
label_date_from_to: Van %{start} tot %{end}
label_greater_or_equal: ">="
label_less_or_equal: <=
text_wiki_page_destroy_question: Deze pagina heeft %{descendants} subpagina's en onderliggende pagina's?. Wil wil je ermee doen?
text_wiki_page_destroy_question: Deze pagina heeft %{descendants} subpagina's en onderliggende pagina's?. Wat wilt u hiermee doen?
text_wiki_page_reassign_children: Alle subpagina's toewijzen aan deze hoofdpagina
text_wiki_page_nullify_children: Behoud subpagina's als hoofdpagina's
text_wiki_page_destroy_children: Verwijder alle subpagina's en onderliggende pagina's
@@ -804,9 +804,9 @@ nl:
mail_subject_wiki_content_updated: "'%{id}' wiki pagina is bijgewerkt"
label_wiki_content_added: Wiki pagina toegevoegd
mail_subject_wiki_content_added: "'%{id}' wiki pagina is toegevoegd"
mail_body_wiki_content_added: The '%{id}' wiki pagina is toegevoegd door %{author}.
mail_body_wiki_content_added: De '%{id}' wiki pagina is toegevoegd door %{author}.
label_wiki_content_updated: Wiki pagina bijgewerkt
mail_body_wiki_content_updated: The '%{id}' wiki pagina is bijgewerkt door %{author}.
mail_body_wiki_content_updated: De '%{id}' wiki pagina is bijgewerkt door %{author}.
permission_add_project: Maak project
setting_new_project_user_role_id: Rol van gebruiker die een project maakt
label_view_all_revisions: Bekijk alle revisies
@@ -895,26 +895,26 @@ nl:
text_zoom_in: Zoom in
notice_unable_delete_time_entry: Verwijderen niet mogelijk van tijd log invoer.
label_overall_spent_time: Totaal bestede tijd
field_time_entries: Log tijd
field_time_entries: Registreer tijd
project_module_gantt: Gantt
project_module_calendar: Kalender
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
button_edit_associated_wikipage: "Bewerk bijbehorende wiki pagina: %{page_title}"
text_are_you_sure_with_children: Verwijder issue en alle onderliggende issues?
field_text: Tekst veld
label_user_mail_option_only_owner: Alleen voor dingen waarvan ik de auteur ben
setting_default_notification_option: Standaard instelling voor mededelingen
label_user_mail_option_only_my_events: Alleen voor dingen die ik volg of bij betrokken ben
label_user_mail_option_only_assigned: Alleen voor dingen die aan mij zijn toegewezen
label_user_mail_option_none: Bij geen enkele gebeurtenis
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
notice_not_authorized_archived_project: Het project dat u wilt bezoeken is gearchiveerd.
label_principal_search: "Zoek naar gebruiker of groep:"
label_user_search: "Zoek naar gebruiker:"
field_visible: Zichtbaar
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
setting_commit_logtime_activity_id: Standaard activiteit voor tijdregistratie
text_time_logged_by_changeset: Toegepast in changeset %{value}.
setting_commit_logtime_enabled: Activeer tijdregistratie
notice_gantt_chart_truncated: De gantt chart is ingekort omdat het meer objecten bevat dan kan worden weergegeven, (%{max})
setting_gantt_items_limit: Max. aantal objecten op gantt chart

View File

@@ -294,9 +294,9 @@ pl:
field_version: Wersja
field_vf_personnel: Personel
field_vf_watcher: Obserwator
general_csv_decimal_separator: '.'
general_csv_decimal_separator: ','
general_csv_encoding: UTF-8
general_csv_separator: ','
general_csv_separator: ';'
general_first_day_of_week: '1'
general_lang_name: 'Polski'
general_pdf_encoding: UTF-8
@@ -334,7 +334,7 @@ pl:
label_auth_source_plural: Tryby identyfikacji
label_authentication: Identyfikacja
label_blocked_by: zablokowane przez
label_blocks: blokady
label_blocks: blokuje
label_board: Forum
label_board_new: Nowe forum
label_board_plural: Fora
@@ -410,7 +410,7 @@ pl:
label_download_plural: "%{count} Pobrania"
label_downloads_abbr: Pobieranie
label_duplicated_by: zduplikowane przez
label_duplicates: duplikaty
label_duplicates: duplikuje
label_end_to_end: koniec do końca
label_end_to_start: koniec do początku
label_enumeration_new: Nowa wartość

View File

@@ -315,7 +315,7 @@ pt-BR:
setting_issue_list_default_columns: Colunas padrão visíveis na lista de tarefas
setting_repositories_encodings: Codificação dos repositórios
setting_commit_logs_encoding: Codificação das mensagens de commit
setting_emails_footer: Rodapé dos e-mails
setting_emails_footer: Rodapé do e-mail
setting_protocol: Protocolo
setting_per_page_options: Número de itens exibidos por página
setting_user_format: Formato de exibição de nome de usuário
@@ -354,6 +354,9 @@ pt-BR:
label_issues_by: "Tarefas por %{value}"
label_issue_added: Tarefa adicionada
label_issue_updated: Tarefa atualizada
label_issue_note_added: Nota adicionada
label_issue_status_updated: Situação atualizada
label_issue_priority_updated: Prioridade atualizada
label_document: Documento
label_document_new: Novo documento
label_document_plural: Documentos
@@ -557,7 +560,7 @@ pt-BR:
label_spent_time: Tempo gasto
label_f_hour: "%{value} hora"
label_f_hour_plural: "%{value} horas"
label_time_tracking: Controle de horas
label_time_tracking: Registro de horas
label_change_plural: Alterações
label_statistics: Estatísticas
label_commits_per_month: Commits por mês
@@ -754,7 +757,7 @@ pt-BR:
enumeration_issue_priorities: Prioridade das tarefas
enumeration_doc_categories: Categorias de documento
enumeration_activities: Atividades (time tracking)
enumeration_activities: Atividades (registro de horas)
notice_unable_delete_version: Não foi possível excluir a versão
label_renamed: renomeado
label_copied: copiado
@@ -943,16 +946,16 @@ pt-BR:
setting_default_notification_option: Opção padrão de notificação
label_user_mail_option_only_my_events: Somente para as coisas que eu esteja observando ou esteja envolvido
label_user_mail_option_only_assigned: Somente para as coisas que estejam atribuídas a mim
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
label_user_mail_option_none: Sem eventos
field_member_of_group: Grupo do responsável
field_assigned_to_role: Papel do responsável
notice_not_authorized_archived_project: O projeto que você está tentando acessar foi arquivado.
label_principal_search: "Pesquisar por usuários ou grupos:"
label_user_search: "Pesquisar por usuário:"
field_visible: Visível
setting_emails_header: Cabeçalho do e-mail
setting_commit_logtime_activity_id: Atividade para registrar horas
text_time_logged_by_changeset: Aplicado no changeset %{value}.
setting_commit_logtime_enabled: Habilitar registro de horas
notice_gantt_chart_truncated: O gráfico foi cortado por exceder o tamanho máximo de linhas que podem ser exibidas (%{max})
setting_gantt_items_limit: Número máximo de itens exibidos no gráfico gatt

View File

@@ -132,7 +132,7 @@ sl:
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: UTF-8
general_pdf_encoding: UFT-8
general_pdf_encoding: UTF-8
general_first_day_of_week: '1'
notice_account_updated: Račun je bil uspešno posodobljen.

View File

@@ -208,6 +208,7 @@ sv:
notice_unable_delete_version: Denna version var inte möjlig att ta bort.
notice_unable_delete_time_entry: Tidloggning kunde inte tas bort.
notice_issue_done_ratios_updated: % klart uppdaterade.
notice_gantt_chart_truncated: "Schemat förminskades eftersom det överskrider det maximala antalet aktiviteter som får visas (%{max})"
error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
@@ -217,7 +218,7 @@ sv:
error_no_tracker_in_project: 'Ingen ärendetyp är associerad med projektet. Vänligen kontrollera projektinställningarna.'
error_no_default_issue_status: 'Ingen status är definierad som standard för nya ärenden. Vänligen kontrollera din konfiguration (Gå till "Administration -> Ärendestatus").'
error_can_not_delete_custom_field: Kan inte ta bort användardefinerat fält
error_can_not_delete_tracker: Det finns ärenden av denna typ och den är därför inte möjlig att ta bort.
error_can_not_delete_tracker: "Det finns ärenden av denna typ och den är därför inte möjlig att ta bort."
error_can_not_remove_role: "Denna roll används och den är därför inte möjlig att ta bort."
error_can_not_reopen_issue_on_closed_version: 'Ett ärende tilldelat en stängd version kan inte öppnas på nytt'
error_can_not_archive_project: Detta projekt kan inte arkiveras
@@ -225,7 +226,7 @@ sv:
error_workflow_copy_source: 'Vänligen välj källans ärendetyp eller roll'
error_workflow_copy_target: 'Vänligen välj ärendetyp(er) och roll(er) för mål'
error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
error_unable_to_connect: Kan inte ansluta (%{value})
error_unable_to_connect: "Kan inte ansluta (%{value})"
warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
@@ -240,9 +241,9 @@ sv:
mail_subject_reminder: "%{count} ärende(n) har deadline under de kommande %{days} dagarna"
mail_body_reminder: "%{count} ärende(n) som är tilldelat dig har deadline under de %{days} dagarna:"
mail_subject_wiki_content_added: "'%{id}' wikisida has lagts till"
mail_body_wiki_content_added: The '%{id}' wikisida has lagts till av %{author}.
mail_body_wiki_content_added: "The '%{id}' wikisida has lagts till av %{author}."
mail_subject_wiki_content_updated: "'%{id}' wikisida har uppdaterats"
mail_body_wiki_content_updated: The '%{id}' wikisida har uppdaterats av %{author}.
mail_body_wiki_content_updated: "The '%{id}' wikisida har uppdaterats av %{author}."
gui_validation_error: 1 fel
gui_validation_error_plural: "%{count} fel"
@@ -340,8 +341,8 @@ sv:
field_group_by: Gruppera resultat efter
field_sharing: Delning
field_parent_issue: Förälderaktivitet
field_member_of_group: Tilldelad användares grupp
field_assigned_to_role: Tilldelad användares roll
field_member_of_group: "Tilldelad användares grupp"
field_assigned_to_role: "Tilldelad användares roll"
field_text: Textfält
field_visible: Synlig
@@ -380,7 +381,7 @@ sv:
setting_activity_days_default: Dagar som visas på projektaktivitet
setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt
setting_enabled_scm: Aktivera SCM
setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
setting_mail_handler_body_delimiters: "Trunkera mail efter en av följande rader"
setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
setting_mail_handler_api_key: API-nyckel
setting_sequential_project_identifiers: Generera projektidentifierare sekventiellt
@@ -400,6 +401,9 @@ sv:
setting_rest_api_enabled: Aktivera REST webbtjänst
setting_cache_formatted_text: Cacha formaterad text
setting_default_notification_option: Standard notifieringsalternativ
setting_commit_logtime_enabled: Aktivera tidloggning
setting_commit_logtime_activity_id: Aktivitet för loggad tid
setting_gantt_items_limit: Maximalt antal aktiviteter som visas i gantt-schemat
permission_add_project: Skapa projekt
permission_add_subprojects: Skapa underprojekt
@@ -581,7 +585,7 @@ sv:
label_version_plural: Versioner
label_close_versions: Stäng klara versioner
label_confirmation: Bekräftelse
label_export_to: Exportera till
label_export_to: 'Finns även som:'
label_read: Läs...
label_public_projects: Publika projekt
label_open_issues: öppen
@@ -666,7 +670,7 @@ sv:
label_tag: Tag
label_revision: Revision
label_revision_plural: Revisioner
label_revision_id: Revision %{value}
label_revision_id: "Revision %{value}"
label_associated_revisions: Associerade revisioner
label_added: tillagd
label_modified: modifierad
@@ -775,10 +779,10 @@ sv:
label_search_titles_only: Sök endast i titlar
label_user_mail_option_all: "För alla händelser i mina projekt"
label_user_mail_option_selected: "För alla händelser i markerade projekt..."
label_user_mail_option_none: Inga händelser
label_user_mail_option_only_my_events: Endast för saker jag bevakar eller är inblandad i
label_user_mail_option_only_assigned: Endast för saker jag är tilldelad
label_user_mail_option_only_owner: Endast för saker jag äger
label_user_mail_option_none: "Inga händelser"
label_user_mail_option_only_my_events: "Endast för saker jag bevakar eller är inblandad i"
label_user_mail_option_only_assigned: "Endast för saker jag är tilldelad"
label_user_mail_option_only_owner: "Endast för saker jag äger"
label_user_mail_no_self_notified: "Jag vill inte bli underrättad om ändringar som jag har gjort"
label_registration_activation_by_email: kontoaktivering med mail
label_registration_manual_activation: manuell kontoaktivering
@@ -825,7 +829,7 @@ sv:
label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
label_api_access_key: API-nyckel
label_missing_api_access_key: Saknar en API-nyckel
label_api_access_key_created_on: API-nyckel skapad för %{value} sedan
label_api_access_key_created_on: "API-nyckel skapad för %{value} sedan"
label_profile: Profil
label_subtask_plural: Underaktiviteter
label_project_copy_notifications: Skicka mailnotifieringar när projektet kopieras
@@ -921,6 +925,7 @@ sv:
text_no_configuration_data: "Roller, ärendetyper, ärendestatus och arbetsflöden har inte konfigurerats ännu.\nDet rekommenderas att läsa in standardkonfigurationen. Du kommer att kunna göra ändringar efter att den blivit inläst."
text_load_default_configuration: Läs in standardkonfiguration
text_status_changed_by_changeset: "Tilldelad i changeset %{value}."
text_time_logged_by_changeset: "Tilldelad i changeset %{value}."
text_issues_destroy_confirmation: 'Är du säker på att du vill radera markerade ärende(n) ?'
text_select_project_modules: 'Välj vilka moduler som ska vara aktiva för projektet:'
text_default_administrator_account_changed: Standardadministratörens konto ändrat
@@ -938,10 +943,10 @@ sv:
text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller mailadress i både Redmine och versionsarkivet mappas automatiskt."
text_diff_truncated: '... Denna diff har förminskats eftersom den överskrider den maximala storlek som kan visas.'
text_custom_field_possible_values_info: 'Ett värde per rad'
text_wiki_page_destroy_question: Denna sida har %{descendants} underliggande sidor. Vad vill du göra?
text_wiki_page_nullify_children: Behåll undersidor som rotsidor
text_wiki_page_destroy_children: Ta bort alla underliggande sidor
text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
text_wiki_page_destroy_question: "Denna sida har %{descendants} underliggande sidor. Vad vill du göra?"
text_wiki_page_nullify_children: "Behåll undersidor som rotsidor"
text_wiki_page_destroy_children: "Ta bort alla underliggande sidor"
text_wiki_page_reassign_children: "Flytta undersidor till denna föräldersida"
text_own_membership_delete_confirmation: "Några av, eller alla, dina behörigheter kommer att tas bort och du kanske inte längre kommer kunna göra ändringar i det här projektet.\nVill du verkligen fortsätta?"
text_zoom_out: Zooma ut
text_zoom_in: Zooma in
@@ -972,8 +977,3 @@ sv:
enumeration_doc_categories: Dokumentkategorier
enumeration_activities: Aktiviteter (tidsuppföljning)
enumeration_system_activity: Systemaktivitet
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -248,6 +248,7 @@
notice_unable_delete_version: 無法刪除版本。
notice_unable_delete_time_entry: 無法刪除工時記錄項目。
notice_issue_done_ratios_updated: 項目完成百分比已更新。
notice_gantt_chart_truncated: "由於項目數量超過可顯示數量的最大值 (%{max}),故此甘特圖尾部已被截斷"
error_can_t_load_default_data: "無法載入預設組態: %{value}"
error_scm_not_found: "在 SCM 儲存庫中找不到這個項目或版次。"
@@ -442,6 +443,7 @@
setting_default_notification_option: 預設通知選項
setting_commit_logtime_enabled: 啟用送交中的時間記錄
setting_commit_logtime_activity_id: 時間記錄對應的活動
setting_gantt_items_limit: 甘特圖中項目顯示數量的最大值
permission_add_project: 建立專案
permission_add_subprojects: 建立子專案
@@ -1015,6 +1017,3 @@
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
enumeration_system_activity: 系統活動
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -1,29 +1,35 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%Y-%m-%d"
short: "%b%d日"
long: "%Y年%b%d日"
day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
# Used in date_select and datime_select.
order: [ :year, :month, :day ]
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S"
time: "%H:%M"
time: "%H:%M"
short: "%b%d日 %H:%M"
long: "%Y年%b%d日 %H:%M"
am: "上午"
pm: "下午"
datetime:
distance_in_words:
half_a_minute: "半分钟"
@@ -60,32 +66,13 @@ zh:
almost_x_years:
one: "将近 1 年"
other: "将近 %{count} 年"
prompts:
year: "年"
month: "月"
day: "日"
hour: "时"
minute: "分"
second: "秒"
number:
# Default format for numbers
format:
separator: "."
delimiter: ","
separator: "."
delimiter: ""
precision: 3
currency:
format:
format: "%n %u"
unit: "元"
separator: "."
delimiter: ","
precision: 2
percentage:
format:
delimiter: ""
precision:
format:
delimiter: ""
human:
format:
delimiter: ""
@@ -96,24 +83,24 @@ zh:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
kb: "kB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
words_connector: ", "
two_words_connector: " 和 "
last_word_connector: ", 和 "
sentence_connector: ""
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "有 1 个错误发生导致「%{model}无法保存"
other: "%{count} 个错误发生导致「%{model}无法保存"
body: "如下字段出现错误:"
header:
one: "由于发生了一个错误 %{model} 无法保存"
other: "%{count} 个错误使得 %{model} 无法保存"
messages:
inclusion: "不包含于列表中"
exclusion: "是保留关键字"
@@ -127,6 +114,7 @@ zh:
wrong_length: "长度非法(必须为 %{count} 个字符)"
taken: "已经被使用"
not_a_number: "不是数字"
not_a_date: "不是合法日期"
greater_than: "必须大于 %{count}"
greater_than_or_equal_to: "必须大于或等于 %{count}"
equal_to: "必须等于 %{count}"
@@ -137,7 +125,7 @@ zh:
greater_than_start_date: "必须在起始日期之后"
not_same_project: "不属于同一个项目"
circular_dependency: "此关联将导致循环依赖"
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
cant_link_an_issue_with_a_descendant: "问题不能关联到它的子任务"
actionview_instancetag_blank_option: 请选择
@@ -168,17 +156,21 @@ zh:
notice_file_not_found: 您访问的页面不存在或已被删除。
notice_locking_conflict: 数据已被另一位用户更新
notice_not_authorized: 对不起,您无权访问此页面。
notice_email_sent: "邮件已成功发送到 %{value}"
notice_not_authorized_archived_project: 要访问的项目已经归档。
notice_email_sent: "邮件已发送至 %{value}"
notice_email_error: "发送邮件时发生错误 (%{value})"
notice_feeds_access_key_reseted: 您的RSS存取键已被重置。
notice_api_access_key_reseted: 您的API访问键已被重置。
notice_failed_to_save_issues: "%{count} 个问题保存失败(共选择 %{total} 个问题):%{ids}."
notice_failed_to_save_members: "成员保存失败: %{errors}."
notice_no_issue_selected: "未选择任何问题!请选择您要编辑的问题。"
notice_account_pending: "您的帐号已被成功创建,正在等待管理员的审核。"
notice_default_data_loaded: 成功载入默认设置。
notice_unable_delete_version: 无法删除版本
notice_unable_delete_time_entry: 无法删除工时
notice_issue_done_ratios_updated: 问题完成度已更新。
notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})"
error_can_t_load_default_data: "无法载入默认设置:%{value}"
error_scm_not_found: "版本库中不存在该条目和(或)其修订版本。"
error_scm_command_failed: "访问版本库时发生错误:%{value}"
@@ -186,13 +178,17 @@ zh:
error_issue_not_found_in_project: '问题不存在或不属于此项目'
error_no_tracker_in_project: 该项目未设定跟踪标签,请检查项目配置。
error_no_default_issue_status: 未设置默认的问题状态。请检查系统设置("管理" -> "问题状态")。
error_can_not_delete_custom_field: 无法删除自定义属性
error_can_not_delete_tracker: "该跟踪标签已包含问题,无法删除"
error_can_not_remove_role: "该角色正在使用中,无法删除"
error_can_not_reopen_issue_on_closed_version: 该问题被关联到一个已经关闭的版本,因此无法重新打开。
error_can_not_archive_project: 该项目无法被存档
error_issue_done_ratios_not_updated: 问题完成度未能被更新。
error_workflow_copy_source: 请选择一个源跟踪标签或者角色
error_workflow_copy_target: 请选择目标跟踪标签和角色
warning_attachments_not_saved: "%{count} 个文件保存失败。"
error_unable_delete_issue_status: '无法删除问题状态'
error_unable_to_connect: "无法连接 (%{value})"
warning_attachments_not_saved: "%{count} 个文件保存失败"
mail_subject_lost_password: "您的 %{value} 密码"
mail_body_lost_password: '请点击以下链接来修改您的密码:'
@@ -206,9 +202,9 @@ zh:
mail_body_reminder: "指派给您的 %{count} 个问题需要在 %{days} 天内完成:"
mail_subject_wiki_content_added: "'%{id}' wiki页面已添加"
mail_body_wiki_content_added: "'%{id}' wiki页面已由 %{author} 添加。"
mail_subject_wiki_content_updated: "'%{id}' wiki页面已更新"
mail_subject_wiki_content_updated: "'%{id}' wiki页面已更新"
mail_body_wiki_content_updated: "'%{id}' wiki页面已由 %{author} 更新。"
gui_validation_error: 1 个错误
gui_validation_error_plural: "%{count} 个错误"
@@ -247,11 +243,12 @@ zh:
field_priority: 优先级
field_fixed_version: 目标版本
field_user: 用户
field_principal: 用户/用户组
field_role: 角色
field_homepage: 主页
field_is_public: 公开
field_parent: 上级项目
field_is_in_roadmap: 在路线图中显示问题
field_is_in_roadmap: 在路线图中显示
field_login: 登录名
field_mail_notification: 邮件通知
field_admin: 管理员
@@ -272,8 +269,8 @@ zh:
field_attr_lastname: 姓氏属性
field_attr_mail: 邮件属性
field_onthefly: 即时用户生成
field_start_date: 开始
field_done_ratio: 完成
field_start_date: 开始日期
field_done_ratio: % 完成
field_auth_source: 认证模式
field_hide_mail: 隐藏我的邮件地址
field_comments: 注释
@@ -291,6 +288,7 @@ zh:
field_redirect_existing_links: 重定向到现有链接
field_estimated_hours: 预期时间
field_column_names:
field_time_entries: 工时
field_time_zone: 时区
field_searchable: 可用作搜索条件
field_default_value: 默认值
@@ -302,7 +300,12 @@ zh:
field_content: 内容
field_group_by: 根据此条件分组
field_sharing: 共享
field_parent_issue: 父任务
field_member_of_group: 用户组的成员
field_assigned_to_role: 角色的成员
field_text: 文本字段
field_visible: 可见的
setting_app_title: 应用程序标题
setting_app_subtitle: 应用程序子标题
setting_welcome_text: 欢迎文字
@@ -310,7 +313,7 @@ zh:
setting_login_required: 要求认证
setting_self_registration: 允许自注册
setting_attachment_max_size: 附件大小限制
setting_issues_export_limit: 问题出条目的限制
setting_issues_export_limit: 问题出条目的限制
setting_mail_from: 邮件发件人地址
setting_bcc_recipients: 使用密件抄送 (bcc)
setting_plain_text_mail: 纯文本无HTML
@@ -330,6 +333,7 @@ zh:
setting_issue_list_default_columns: 问题列表中显示的默认列
setting_repositories_encodings: 版本库编码
setting_commit_logs_encoding: 提交注释的编码
setting_emails_header: 邮件头
setting_emails_footer: 邮件签名
setting_protocol: 协议
setting_per_page_options: 每页显示条目个数的设置
@@ -355,12 +359,18 @@ zh:
setting_issue_done_ratio_issue_status: 使用问题状态
setting_start_of_week: 日历开始于
setting_rest_api_enabled: 启用REST web service
setting_cache_formatted_text: 缓存格式化文字
setting_default_notification_option: 默认提醒选项
setting_commit_logtime_enabled: 激活时间日志
setting_commit_logtime_activity_id: 记录的活动
setting_gantt_items_limit: 在甘特图上显示的最大记录数
permission_add_project: 新建项目
permission_add_subprojects: 新建子项目
permission_edit_project: 编辑项目
permission_select_project_modules: 选择项目模块
permission_manage_members: 管理成员
permission_manage_project_activities: 管理项目活动
permission_manage_versions: 管理版本
permission_manage_categories: 管理问题类别
permission_view_issues: 查看问题
@@ -408,7 +418,9 @@ zh:
permission_edit_own_messages: 编辑自己的帖子
permission_delete_messages: 删除帖子
permission_delete_own_messages: 删除自己的帖子
permission_export_wiki_pages: 导出 wiki 页面
permission_manage_subtasks: 管理子任务
project_module_issue_tracking: 问题跟踪
project_module_time_tracking: 时间跟踪
project_module_news: 新闻
@@ -417,6 +429,8 @@ zh:
project_module_wiki: Wiki
project_module_repository: 版本库
project_module_boards: 讨论区
project_module_calendar: 日历
project_module_gantt: 甘特图
label_user: 用户
label_user_plural: 用户
@@ -474,6 +488,7 @@ zh:
label_my_page: 我的工作台
label_my_account: 我的帐号
label_my_projects: 我的项目
label_my_page_block: 我的工作台模块
label_administration: 管理
label_login: 登录
label_logout: 退出
@@ -483,7 +498,7 @@ zh:
label_last_login: 最后登录
label_registered_on: 注册于
label_activity: 活动
label_overall_activity: 全部活动
label_overall_activity: 活动概览
label_user_activity: "%{value} 的活动"
label_new: 新建
label_logged_as: 登录为
@@ -546,18 +561,18 @@ zh:
one: 1 打开
other: "%{count} 打开"
label_x_closed_issues_abbr:
zero: 0 关闭
one: 1 关闭
other: "%{count} 关闭"
zero: 0 关闭
one: 1 关闭
other: "%{count} 关闭"
label_total: 合计
label_permissions: 权限
label_current_status: 当前状态
label_new_statuses_allowed: 可变更的新状态
label_new_statuses_allowed: 允许的新状态
label_all: 全部
label_none:
label_nobody: 无人
label_next: 下一
label_previous: 上一
label_next: 下一
label_previous: 上一
label_used_by: 使用中
label_details: 详情
label_add_note: 添加说明
@@ -651,6 +666,7 @@ zh:
label_changes_details: 所有变更的详情
label_issue_tracking: 问题跟踪
label_spent_time: 耗时
label_overall_spent_time: 总体耗时
label_f_hour: "%{value} 小时"
label_f_hour_plural: "%{value} 小时"
label_time_tracking: 时间跟踪
@@ -688,6 +704,8 @@ zh:
label_board: 讨论区
label_board_new: 新建讨论区
label_board_plural: 讨论区
label_board_locked: 锁定
label_board_sticky: 置顶
label_topic_plural: 主题
label_message_plural: 帖子
label_message_last: 最新的帖子
@@ -721,12 +739,16 @@ zh:
label_search_titles_only: 仅在标题中搜索
label_user_mail_option_all: "收取我的项目的所有通知"
label_user_mail_option_selected: "收取选中项目的所有通知..."
label_user_mail_option_none: "不收取任何通知"
label_user_mail_option_only_my_events: "只收取我跟踪或参与的项目的通知"
label_user_mail_option_only_assigned: "只收取分配给我的"
label_user_mail_option_only_owner: "只收取我是创建者的"
label_user_mail_no_self_notified: "不要发送对我自己提交的修改的通知"
label_registration_activation_by_email: 通过邮件认证激活帐号
label_registration_manual_activation: 手动激活帐号
label_registration_automatic_activation: 自动激活帐号
label_display_per_page: "每页显示:%{value}"
label_age: 年龄
label_age: 提交时间
label_change_properties: 修改属性
label_general: 一般
label_more: 更多
@@ -768,6 +790,11 @@ zh:
label_api_access_key: API访问键
label_missing_api_access_key: 缺少API访问键
label_api_access_key_created_on: API访问键是在 %{value} 之前建立的
label_profile: 简介
label_subtask_plural: 子任务
label_project_copy_notifications: 复制项目时发送邮件通知
label_principal_search: "搜索用户或组:"
label_user_search: "搜索用户:"
button_login: 登录
button_submit: 提交
@@ -779,6 +806,7 @@ zh:
button_create_and_continue: 创建并继续
button_test: 测试
button_edit: 编辑
button_edit_associated_wikipage: "编辑相关wiki页面: %{page_title}"
button_add: 新增
button_change: 修改
button_apply: 应用
@@ -816,13 +844,13 @@ zh:
status_active: 活动的
status_registered: 已注册
status_locked: 已锁定
version_status_open: 打开
version_status_locked: 锁定
version_status_closed: 关闭
field_active: 活动
text_select_mail_notifications: 选择需要发送邮件通知的动作
text_regexp_info: 例如:^[A-Z0-9]+$
text_min_max_length_info: 0 表示没有限制
@@ -830,6 +858,7 @@ zh:
text_subprojects_destroy_warning: "以下子项目也将被同时删除:%{value}"
text_workflow_edit: 选择角色和跟踪标签来编辑工作流程
text_are_you_sure: 您确定?
text_are_you_sure_with_children: "删除问题及子任务?"
text_journal_changed: "%{label} 从 %{old} 变更为 %{new}"
text_journal_set_to: "%{label} 被设置为 %{value}"
text_journal_deleted: "%{label} 已删除 (%{old})"
@@ -856,6 +885,7 @@ zh:
text_no_configuration_data: "角色、跟踪标签、问题状态和工作流程还没有设置。\n强烈建议您先载入默认设置然后在此基础上进行修改。"
text_load_default_configuration: 载入默认设置
text_status_changed_by_changeset: "已应用到变更列表 %{value}."
text_time_logged_by_changeset: "已应用到修订版本 %{value}."
text_issues_destroy_confirmation: '您确定要删除选中的问题吗?'
text_select_project_modules: '请选择此项目可以使用的模块:'
text_default_administrator_account_changed: 默认的管理员帐号已改变
@@ -905,48 +935,7 @@ zh:
enumeration_doc_categories: 文档类别
enumeration_activities: 活动(时间跟踪)
enumeration_system_activity: 系统活动
label_board_sticky: 置顶
label_board_locked: 锁定
permission_export_wiki_pages: 导出 wiki 页面
setting_cache_formatted_text: 缓存格式化文本
permission_manage_project_activities: 管理项目活动
error_unable_delete_issue_status: 无法删除问题状态
label_profile: 简介
permission_manage_subtasks: 管理子任务
field_parent_issue: 父任务
label_subtask_plural: 子任务
label_project_copy_notifications: 复制项目时发送邮件通知
error_can_not_delete_custom_field: 不能删除自定义属性
error_unable_to_connect: 不能连接到 (%{value})
error_can_not_remove_role: 该角色正在使用中, 不能删除.
error_can_not_delete_tracker: 该跟踪标签包含问题, 不能删除.
field_principal: 用户/用户组
label_my_page_block: 我的工作台模块
notice_failed_to_save_members: "成员保存失败:%{errors}。"
text_zoom_out: 缩小
text_zoom_in: 放大
notice_unable_delete_time_entry: 无法删除工时记录。
label_overall_spent_time: 所有项目耗用工时
field_time_entries: Log time
project_module_gantt: Gantt
project_module_calendar: Calendar
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
text_zoom_in: Zoom in
text_zoom_out: Zoom out

View File

@@ -17,5 +17,6 @@ class AddUniqueIndexOnMembers < ActiveRecord::Migration
end
def self.down
remove_index :members, [:user_id, :project_id]
end
end

View File

@@ -1,9 +1,147 @@
== Redmine changelog
Redmine - project management software
Copyright (C) 2006-2010 Jean-Philippe Lang
Copyright (C) 2006-2011 Jean-Philippe Lang
http://www.redmine.org/
== 2011-04-29 v1.1.3
* Defect #5773: Email reminders are sent to locked users
* Defect #6590: Wrong file list link in email notification on new file upload
* Defect #7589: Wiki page with backslash in title can not be found
* Defect #7785: Mailhandler keywords are not removed when updating issues
* Defect #7794: Internal server error on formatting an issue as a PDF in Japanese
* Defect #7838: Gantt- Issues does not show up in green when start and end date are the same
* Defect #7846: Headers (h1, etc.) containing backslash followed by a digit are not displayed correctly
* Defect #7875: CSV export separators in polish locale (pl.yml)
* Defect #7890: Internal server error when referencing an issue without project in commit message
* Defect #7904: Subprojects not properly deleted when deleting a parent project
* Defect #7939: Simultaneous Wiki Updates Cause Internal Error
* Defect #7951: Atom links broken on wiki index
* Defect #7954: IE 9 can not select issues, does not display context menu
* Defect #7985: Trying to do a bulk edit results in "Internal Error"
* Defect #8003: Error raised by reposman.rb under Windows server 2003
* Defect #8012: Wrong selection of modules when adding new project after validation error
* Defect #8038: Associated Revisions OL/LI items are not styled properly in issue view
* Defect #8067: CSV exporting in Italian locale
* Defect #8235: bulk edit issues and copy issues error in es, gl and ca locales
* Defect #8244: selected modules are not activated when copying a project
* Patch #7278: Update Simplified Chinese translation to 1.1
* Patch #7390: Fixes in Czech localization
* Patch #7963: Reminder email: Link for show all issues does not sort
== 2011-03-07 v1.1.2
* Defect #3132: Bulk editing menu non-functional in Opera browser
* Defect #6090: Most binary files become corrupted when downloading from CVS repository browser when Redmine is running on a Windows server
* Defect #7280: Issues subjects wrap in Gantt
* Defect #7288: Non ASCII filename downloaded from repo is broken on Internet Explorer.
* Defect #7317: Gantt tab gives internal error due to nil avatar icon
* Defect #7497: Aptana Studio .project file added to version 1.1.1-stable
* Defect #7611: Workflow summary shows X icon for workflow with exactly 1 status transition
* Defect #7625: Syntax highlighting unavailable from board new topic or topic edit preview
* Defect #7630: Spent time in commits not recognized
* Defect #7656: MySQL SQL Syntax Error when filtering issues by Assignee's Group
* Defect #7718: Minutes logged in commit message are converted to hours
* Defect #7763: Email notification are sent to watchers even if 'No events' setting is chosen
* Feature #7608: Add "retro" gravatars
* Patch #7598: Extensible MailHandler
* Patch #7795: Internal server error at journals#index with custom fields
== 2011-01-30 v1.1.1
* Defect #4899: Redmine fails to list files for darcs repository
* Defect #7245: Wiki fails to find pages with cyrillic characters using postgresql
* Defect #7256: redmine/public/.htaccess must be moved for non-fastcgi installs/upgrades
* Defect #7258: Automatic spent time logging does not work properly with SQLite3
* Defect #7259: Released 1.1.0 uses "devel" label inside admin information
* Defect #7265: "Loading..." icon does not disappear after add project member
* Defect #7266: Test test_due_date_distance_in_words fail due to undefined locale
* Defect #7274: CSV value separator in dutch locale
* Defect #7277: Enabling gravatas causes usernames to overlap first name field in user list
* Defect #7294: "Notifiy for only project I select" is not available anymore in 1.1.0
* Defect #7307: HTTP 500 error on query for empty revision
* Defect #7313: Label not translated in french in Settings/Email Notification tab
* Defect #7329: <code class="javascript"> with long strings may hang server
* Defect #7337: My page french translation
* Defect #7348: French Translation of "Connection"
* Defect #7385: Error when viewing an issue which was related to a deleted subtask
* Defect #7386: NoMethodError on pdf export
* Defect #7415: Darcs adapter recognizes new files as modified files above Darcs 2.4
* Defect #7421: no email sent with 'Notifiy for any event on the selected projects only'
* Feature #5344: Update to latest CodeRay 0.9.x
== 2011-01-09 v1.1.0
* Defect #2038: Italics in wiki headers show-up wrong in the toc
* Defect #3449: Redmine Takes Too Long On Large Mercurial Repository
* Defect #3567: Sorting for changesets might go wrong on Mercurial repos
* Defect #3707: {{toc}} doesn't work with {{include}}
* Defect #5096: Redmine hangs up while browsing Git repository
* Defect #6000: Safe Attributes prevents plugin extension of Issue model...
* Defect #6064: Modules not assigned to projects created via API
* Defect #6110: MailHandler should allow updating Issue Priority and Custom fields
* Defect #6136: JSON API holds less information than XML API
* Defect #6345: xml used by rest API is invalid
* Defect #6348: Gantt chart PDF rendering errors
* Defect #6403: Updating an issue with custom fields fails
* Defect #6467: "Member of role", "Member of group" filter not work correctly
* Defect #6473: New gantt broken after clearing issue filters
* Defect #6541: Email notifications send to everybody
* Defect #6549: Notification settings not migrated properly
* Defect #6591: Acronyms must have a minimum of three characters
* Defect #6674: Delete time log broken after changes to REST
* Defect #6681: Mercurial, Bazaar and Darcs auto close issue text should be commit id instead of revision number
* Defect #6724: Wiki uploads does not work anymore (SVN 4266)
* Defect #6746: Wiki links are broken on Activity page
* Defect #6747: Wiki diff does not work since r4265
* Defect #6763: New gantt charts: subject displayed twice on issues
* Defect #6826: Clicking "Add" twice creates duplicate member record
* Defect #6844: Unchecking status filter on the issue list has no effect
* Defect #6895: Wrong Polish translation of "blocks"
* Defect #6943: Migration from boolean to varchar fails on PostgreSQL 8.1
* Defect #7064: Mercurial adapter does not recognize non alphabetic nor numeric in UTF-8 copied files
* Defect #7128: New gantt chart does not render subtasks under parent task
* Defect #7135: paging mechanism returns the same last page forever
* Defect #7188: Activity page not refreshed when changing language
* Defect #7195: Apply CLI-supplied defaults for incoming mail only to new issues not replies
* Defect #7197: Tracker reset to default when replying to an issue email
* Defect #7213: Copy project does not copy all roles and permissions
* Defect #7225: Project settings: Trackers & Custom fields only relevant if module Issue tracking is active
* Feature #630: Allow non-unique names for projects
* Feature #1738: Add a "Visible" flag to project/user custom fields
* Feature #2803: Support for Javascript in Themes
* Feature #2852: Clean Incoming Email of quoted text "----- Reply above this line ------"
* Feature #2995: Improve error message when trying to access an archived project
* Feature #3170: Autocomplete issue relations on subject
* Feature #3503: Administrator Be Able To Modify Email settings Of Users
* Feature #4155: Automatic spent time logging from commit messages
* Feature #5136: Parent select on Wiki rename page
* Feature #5338: Descendants (subtasks) should be available via REST API
* Feature #5494: Wiki TOC should display heading from level 4
* Feature #5594: Improve MailHandler's keyword handling
* Feature #5622: Allow version to be set via incoming email
* Feature #5712: Reload themes
* Feature #5869: Issue filters by Group and Role
* Feature #6092: Truncate Git revision labels in Activity page/feed and allow configurable length
* Feature #6112: Accept localized keywords when receiving emails
* Feature #6140: REST issues response with issue count limit and offset
* Feature #6260: REST API for Users
* Feature #6276: Gantt Chart rewrite
* Feature #6446: Remove length limits on project identifier and name
* Feature #6628: Improvements in truncate email
* Feature #6779: Project JSON API
* Feature #6823: REST API for time tracker.
* Feature #7072: REST API for news
* Feature #7111: Expose more detail on journal entries
* Feature #7141: REST API: get information about current user
* Patch #4807: Allow to set the done_ratio field with the incoming mail system
* Patch #5441: Initialize TimeEntry attributes with params[:time_entry]
* Patch #6762: Use GET instead of POST to retrieve context_menu
* Patch #7160: French translation ofr "not_a_date" is missing
* Patch #7212: Missing remove_index in AddUniqueIndexOnMembers down migration
== 2010-12-23 v1.0.5
* #6656: Mercurial adapter loses seconds of commit times

View File

@@ -1,40 +0,0 @@
= Contributing to Redmine with git and github
(This is a beta document. If you can improve it, fork it and send a patch/pull request.)
The official repository is at http://github.com/edavis10/redmine
Official branches:
* master - is automatically mirrored to svn trunk. DO NOT COMMIT OR MERGE INTO THIS BRANCH
* [0.6, 0.7, 0.8, 0.9, 1.0,...]-stable - is automatically mirrored to svn release branches. DO NOT COMMIT OR MERGE INTO THIS BRANCH
* integration-to-svn-trunk - this branch is a git-only branch that will track master (trunk). Any code in here will be eventually merged into master but it may be rebased as any time (git-svn needs to rebase to commit to svn)
* integration-to-svn-stable-1.0 - this branch is a git-only branch that will track the 1.0-stable branch in svn. Any code in here will be eventually merged into master and 1.0-stable but it may be rebased as any time (git-svn needs to rebase to commit to svn)
I (edavis10) might have some other branches on the repository for work in progress.
== Branch naming standards
Redmine has two kinds of development:
* bug fixes
* new feature development
Both bug fixes and new feature development should be done in a branch named after the issue number on Redmine.org. So if you are fixing Issue #6244 your branch should be named:
* 6244
* 6244-sort-people-by-display-name (optional description)
* issue/6244 (optional "issue" prefix)
* issue/6244-sort-people-by-display-name (optional prefix and description)
That way when the branch is merged into the Redmine core, the correct issue can be updated.
Longer term feature development might require multiple branches. Just your best judgment and try to keep the issue id in the name.
If you don't have an issue for your patch, create an issue on redmine.org and say it's a placeholder issue for your work. Better yet, add a brief overview of what you are working on to the issue and you might get some help with it.
== Coding Standards
Follow the coding standards on the Redmine wiki: http://www.redmine.org/wiki/redmine/Coding_Standards#Commits. Make sure you commit logs conform to the standards, otherwise someone else will have to rewrite them for you and you might lose attribution during the conversion to svn.

View File

@@ -205,7 +205,7 @@ end
log("retrieved #{projects.size} projects", :level => 1)
def set_owner_and_rights(project, repos_path, &block)
if RUBY_PLATFORM =~ /mswin/
if mswin?
yield if block_given?
else
uid, gid = Etc.getpwnam($svn_owner).uid, ($use_groupid ? Etc.getgrnam(project.identifier).gid : Etc.getgrnam($svn_group).gid)

View File

@@ -707,11 +707,13 @@ class RedCloth3 < String
atts = pba( atts )
# pass to prefix handler
replacement = nil
if respond_to? "textile_#{ tag }", true
text.gsub!( $&, method( "textile_#{ tag }" ).call( tag, atts, cite, content ) )
replacement = method( "textile_#{ tag }" ).call( tag, atts, cite, content )
elsif respond_to? "textile_#{ tagpre }_", true
text.gsub!( $&, method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content ) )
replacement = method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content )
end
text.gsub!( $& ) { replacement } if replacement
end
end

View File

@@ -255,7 +255,7 @@ module Redmine
pdf.SetFontStyle('B',9)
pdf.Cell(35,5, l(:field_description) + ":")
pdf.SetFontStyle('',9)
pdf.MultiCell(155,5, issue.description,"BR")
pdf.MultiCell(155,5, issue.description.to_s,"BR")
pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
@@ -271,7 +271,7 @@ module Redmine
pdf.Ln
unless changeset.comments.blank?
pdf.SetFontStyle('',8)
pdf.MultiCell(190,5, changeset.comments)
pdf.MultiCell(190,5, changeset.comments.to_s)
end
pdf.Ln
end
@@ -291,7 +291,7 @@ module Redmine
end
if journal.notes?
pdf.SetFontStyle('',8)
pdf.MultiCell(190,5, journal.notes)
pdf.MultiCell(190,5, journal.notes.to_s)
end
pdf.Ln
end

View File

@@ -353,11 +353,11 @@ module Redmine
subject = "<span class='#{css_classes}'>"
if issue.assigned_to.present?
assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string).to_s
end
subject << view.link_to_issue(issue)
subject << '</span>'
html_subject(options, subject, :css => "issue-subject") + "\n"
html_subject(options, subject, :css => "issue-subject", :title => issue.subject) + "\n"
when :image
image_subject(options, issue.subject)
when :pdf
@@ -642,10 +642,10 @@ module Redmine
end
if progress
progress_date = start_date + (end_date - start_date) * (progress / 100.0)
progress_date = start_date + (end_date - start_date + 1) * (progress / 100.0)
if progress_date > self.date_from && progress_date > start_date
if progress_date < self.date_to
coords[:bar_progress_end] = progress_date - self.date_from + 1
coords[:bar_progress_end] = progress_date - self.date_from
else
coords[:bar_progress_end] = self.date_to - self.date_from + 1
end
@@ -709,9 +709,10 @@ module Redmine
end
def html_subject(params, subject, options={})
output = "<div class=' #{options[:css] }' style='position: absolute;line-height:1.2em;height:16px;top:#{params[:top]}px;left:#{params[:indent]}px;overflow:hidden;'>"
output << subject
output << "</div>"
style = "position: absolute;top:#{params[:top]}px;left:#{params[:indent]}px;"
style << "width:#{params[:subject_width] - params[:indent]}px;" if params[:subject_width]
output = view.content_tag 'div', subject, :class => options[:css], :style => style, :title => options[:title]
@subjects << output
output
end

View File

@@ -271,7 +271,8 @@ module Redmine
end
class Revision
attr_accessor :identifier, :scmid, :name, :author, :time, :message, :paths, :revision, :branch
attr_accessor :scmid, :name, :author, :time, :message, :paths, :revision, :branch
attr_writer :identifier
def initialize(attributes={})
self.identifier = attributes[:identifier]
@@ -285,6 +286,16 @@ module Redmine
self.branch = attributes[:branch]
end
# Returns the identifier of this revision; see also Changeset model
def identifier
(@identifier || revision).to_s
end
# Returns the readable identifier.
def format_identifier
identifier
end
def save(repo)
Changeset.transaction do
changeset = Changeset.new(

View File

@@ -249,6 +249,7 @@ module Redmine
cmd << " -p #{shell_quote path_with_project}"
cat = nil
shellout(cmd) do |io|
io.binmode
cat = io.read
end
return nil if $? && $?.exitstatus != 0

View File

@@ -31,16 +31,14 @@ module Redmine
end
def darcs_binary_version
cmd = "#{DARCS_BIN} --version"
version = nil
shellout(cmd) do |io|
# Read darcs version in first returned line
if m = io.gets.match(%r{((\d+\.)+\d+)})
version = m[0].scan(%r{\d+}).collect(&:to_i)
end
darcsversion = darcs_binary_version_from_command_line
if m = darcsversion.match(%r{\A(.*?)((\d+\.)+\d+)})
m[2].scan(%r{\d+}).collect(&:to_i)
end
return nil if $? && $?.exitstatus != 0
version
end
def darcs_binary_version_from_command_line
shellout("#{DARCS_BIN} --version") { |io| io.read }.to_s
end
end
@@ -64,7 +62,9 @@ module Redmine
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path_prefix = (path.blank? ? '' : "#{path}/")
path = '.' if path.blank?
if path.blank?
path = ( self.class.client_version_above?([2, 2, 0]) ? @url : '.' )
end
entries = Entries.new
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
@@ -167,9 +167,38 @@ module Redmine
})
})
end
def get_paths_for_patch(hash)
paths = get_paths_for_patch_raw(hash)
if self.class.client_version_above?([2, 4])
orig_paths = paths
paths = []
add_paths = []
add_paths_name = []
mod_paths = []
other_paths = []
orig_paths.each do |path|
if path[:action] == 'A'
add_paths << path
add_paths_name << path[:path]
elsif path[:action] == 'M'
mod_paths << path
else
other_paths << path
end
end
add_paths_name.each do |add_path|
mod_paths.delete_if { |m| m[:path] == add_path }
end
paths.concat add_paths
paths.concat mod_paths
paths.concat other_paths
end
paths
end
# Retrieve changed paths for a single patch
def get_paths_for_patch(hash)
def get_paths_for_patch_raw(hash)
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
cmd << " --match #{shell_quote("hash #{hash}")} "
paths = []

View File

@@ -89,12 +89,13 @@ module Redmine
cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --date=iso --pretty=fuller --no-merges -n 1 "
cmd << " #{shell_quote rev} " if rev
cmd << "-- #{shell_quote path} " unless path.empty?
shellout(cmd) do |io|
begin
id = io.gets.split[1]
author = io.gets.match('Author:\s+(.*)$')[1]
2.times { io.gets }
time = Time.parse(io.gets.match('CommitDate:\s+(.*)$')[1]).localtime
lines = []
shellout(cmd) { |io| lines = io.readlines }
return nil if $? && $?.exitstatus != 0
begin
id = lines[0].split[1]
author = lines[1].match('Author:\s+(.*)$')[1]
time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1]).localtime
Revision.new({
:identifier => id,
@@ -104,10 +105,9 @@ module Redmine
:message => nil,
:paths => nil
})
rescue NoMethodError => e
rescue NoMethodError => e
logger.error("The revision '#{path}' has a wrong format")
return nil
end
end
end
@@ -264,6 +264,13 @@ module Redmine
return nil if $? && $?.exitstatus != 0
cat
end
class Revision < Redmine::Scm::Adapters::Revision
# Returns the readable identifier
def format_identifier
identifier[0,8]
end
end
end
end
end

View File

@@ -3,10 +3,10 @@ changeset_quiet = 'This template must be used with --debug option\n'
changeset_verbose = 'This template must be used with --debug option\n'
changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodate}</date>\n<paths>\n{files}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
file = '<path action="M">{file|escape}</path>\n'
file_add = '<path action="A">{file_add|escape}</path>\n'
file_del = '<path action="D">{file_del|escape}</path>\n'
file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
file = '<path action="M">{file|urlescape}</path>\n'
file_add = '<path action="A">{file_add|urlescape}</path>\n'
file_del = '<path action="D">{file_del|urlescape}</path>\n'
file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
tag = '<tag>{tag|escape}</tag>\n'
header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
# footer="</log>"

View File

@@ -3,10 +3,10 @@ changeset_quiet = 'This template must be used with --debug option\n'
changeset_verbose = 'This template must be used with --debug option\n'
changeset_debug = '<logentry revision="{rev}" node="{node|short}">\n<author>{author|escape}</author>\n<date>{date|isodatesec}</date>\n<paths>\n{file_mods}{file_adds}{file_dels}{file_copies}</paths>\n<msg>{desc|escape}</msg>\n{tags}</logentry>\n\n'
file_mod = '<path action="M">{file_mod|escape}</path>\n'
file_add = '<path action="A">{file_add|escape}</path>\n'
file_del = '<path action="D">{file_del|escape}</path>\n'
file_copy = '<path-copied copyfrom-path="{source|escape}">{name|urlescape}</path-copied>\n'
file_mod = '<path action="M">{file_mod|urlescape}</path>\n'
file_add = '<path action="A">{file_add|urlescape}</path>\n'
file_del = '<path action="D">{file_del|urlescape}</path>\n'
file_copy = '<path-copied copyfrom-path="{source|urlescape}">{name|urlescape}</path-copied>\n'
tag = '<tag>{tag|escape}</tag>\n'
header='<?xml version="1.0" encoding="UTF-8" ?>\n<log>\n\n'
# footer="</log>"

View File

@@ -16,6 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'redmine/scm/adapters/abstract_adapter'
require 'cgi'
module Redmine
module Scm
@@ -127,8 +128,8 @@ module Redmine
from_rev = logentry.attributes['revision']
end
paths << {:action => path.attributes['action'],
:path => "/#{path.text}",
:from_path => from_path ? "/#{from_path}" : nil,
:path => "/#{CGI.unescape(path.text)}",
:from_path => from_path ? "/#{CGI.unescape(from_path)}" : nil,
:from_revision => from_rev ? from_rev : nil
}
end

View File

@@ -3,14 +3,14 @@ require 'rexml/document'
module Redmine
module VERSION #:nodoc:
MAJOR = 1
MINOR = 0
TINY = 5
MINOR = 1
TINY = 3
# Branch values:
# * official release: nil
# * stable branch: stable
# * trunk: devel
BRANCH = 'devel'
BRANCH = 'stable'
def self.revision
revision = nil

View File

@@ -16,6 +16,7 @@ namespace :ci do
Rake::Task["db:create"].invoke
Rake::Task["db:migrate"].invoke
Rake::Task["db:schema:dump"].invoke
Rake::Task["test:scm:update"].invoke
end
desc "Build Redmine"

View File

@@ -1,3 +1,10 @@
desc 'Updates and checks locales against en.yml'
task :locales do
%w(locales:update locales:check_interpolation).collect do |task|
Rake::Task[task].invoke
end
end
namespace :locales do
desc 'Updates language files based on en.yml content (only works for new top level keys).'
task :update do
@@ -28,6 +35,26 @@ namespace :locales do
lang.close
end
end
desc 'Checks interpolation arguments in locals against en.yml'
task :check_interpolation do
dir = ENV['DIR'] || './config/locales'
en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en']
files = Dir.glob(File.join(dir,'*.{yaml,yml}'))
files.each do |file|
file_strings = YAML.load(File.read(file))
file_strings = file_strings[file_strings.keys.first]
file_strings.each do |key, string|
next unless string.is_a?(String)
string.scan /%\{\w+\}/ do |match|
unless en_strings[key].nil? || en_strings[key].include?(match)
puts "#{file}: #{key} uses #{match} not found in en.yml"
end
end
end
end
end
desc <<-END_DESC
Removes a translation string from all locale file (only works for top-level childless non-multiline keys, probably doesn\'t work on windows).

View File

@@ -289,7 +289,7 @@ task :migrate_from_mantis => :environment do
project.versions.each do |version|
v = Version.new :name => encode(version.version),
:description => encode(version.description),
:effective_date => version.date_order.to_date
:effective_date => (version.date_order ? version.date_order.to_date : nil)
v.project = p
v.save
versions_map[version.id] = v.id

View File

@@ -1,68 +1,90 @@
### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
namespace :test do
desc 'Measures test coverage'
task :coverage do
rm_f "coverage"
rm_f "coverage.data"
rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
files = Dir.glob("test/**/*_test.rb").join(" ")
system("#{rcov} #{files}")
system("open coverage/index.html") if PLATFORM['darwin']
end
desc 'Run unit and functional scm tests'
task :scm do
errors = %w(test:scm:units test:scm:functionals).collect do |task|
begin
Rake::Task[task].invoke
nil
rescue => e
task
end
end.compact
abort "Errors running #{errors.to_sentence(:locale => :en)}!" if errors.any?
end
namespace :scm do
namespace :setup do
desc "Creates directory for test repositories"
task :create_dir do
FileUtils.mkdir_p Rails.root + '/tmp/test'
end
supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
desc "Creates a test subversion repository"
task :subversion => :create_dir do
repo_path = "tmp/test/subversion_repository"
system "svnadmin create #{repo_path}"
system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
end
(supported_scms - [:subversion]).each do |scm|
desc "Creates a test #{scm} repository"
task scm => :create_dir do
system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
end
end
desc "Creates all test repositories"
task :all => supported_scms
end
Rake::TestTask.new(:units => "db:test:prepare") do |t|
t.libs << "test"
t.verbose = true
t.test_files = FileList['test/unit/repository*_test.rb'] + FileList['test/unit/lib/redmine/scm/**/*_test.rb']
end
Rake::Task['test:scm:units'].comment = "Run the scm unit tests"
Rake::TestTask.new(:functionals => "db:test:prepare") do |t|
t.libs << "test"
t.verbose = true
t.test_files = FileList['test/functional/repositories*_test.rb']
end
Rake::Task['test:scm:functionals'].comment = "Run the scm functional tests"
end
end
### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake
namespace :test do
desc 'Measures test coverage'
task :coverage do
rm_f "coverage"
rm_f "coverage.data"
rcov = "rcov --rails --aggregate coverage.data --text-summary -Ilib --html"
files = Dir.glob("test/**/*_test.rb").join(" ")
system("#{rcov} #{files}")
system("open coverage/index.html") if PLATFORM['darwin']
end
desc 'Run unit and functional scm tests'
task :scm do
errors = %w(test:scm:units test:scm:functionals).collect do |task|
begin
Rake::Task[task].invoke
nil
rescue => e
task
end
end.compact
abort "Errors running #{errors.to_sentence(:locale => :en)}!" if errors.any?
end
namespace :scm do
namespace :setup do
desc "Creates directory for test repositories"
task :create_dir do
FileUtils.mkdir_p Rails.root + '/tmp/test'
end
supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem]
desc "Creates a test subversion repository"
task :subversion => :create_dir do
repo_path = "tmp/test/subversion_repository"
system "svnadmin create #{repo_path}"
system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}"
end
desc "Creates a test mercurial repository"
task :mercurial => :create_dir do
repo_path = "tmp/test/mercurial_repository"
bundle_path = "test/fixtures/repositories/mercurial_repository.hg"
system "hg init #{repo_path}"
system "hg -R #{repo_path} pull #{bundle_path}"
end
(supported_scms - [:subversion, :mercurial]).each do |scm|
desc "Creates a test #{scm} repository"
task scm => :create_dir do
system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
end
end
desc "Creates all test repositories"
task :all => supported_scms
end
desc "Updates installed test repositories"
task :update do
require 'fileutils'
Dir.glob("tmp/test/*_repository").each do |dir|
next unless File.basename(dir) =~ %r{^(.+)_repository$} && File.directory?(dir)
scm = $1
next unless fixture = Dir.glob("test/fixtures/repositories/#{scm}_repository.*").first
next if File.stat(dir).ctime > File.stat(fixture).mtime
FileUtils.rm_rf dir
Rake::Task["test:scm:setup:#{scm}"].execute
end
end
Rake::TestTask.new(:units => "db:test:prepare") do |t|
t.libs << "test"
t.verbose = true
t.test_files = FileList['test/unit/repository*_test.rb'] + FileList['test/unit/lib/redmine/scm/**/*_test.rb']
end
Rake::Task['test:scm:units'].comment = "Run the scm unit tests"
Rake::TestTask.new(:functionals => "db:test:prepare") do |t|
t.libs << "test"
t.verbose = true
t.test_files = FileList['test/functional/repositories*_test.rb']
end
Rake::Task['test:scm:functionals'].comment = "Run the scm functional tests"
end
end

View File

@@ -232,6 +232,24 @@ function observeRelatedIssueField(url) {
});
}
function setVisible(id, visible) {
var el = $(id);
if (el) {if (visible) {el.show();} else {el.hide();}}
}
function observeProjectModules() {
var f = function() {
/* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */
var c = ($('project_enabled_module_names_issue_tracking').checked == true);
setVisible('project_trackers', c);
setVisible('project_issue_custom_fields', c);
};
Event.observe(window, 'load', f);
Event.observe('project_enabled_module_names_issue_tracking', 'change', f);
}
/* shows and hides ajax indicator */
Ajax.Responders.register({
onCreate: function(){

View File

@@ -11,7 +11,7 @@ ContextMenu.prototype = {
if (!observingContextMenuClick) {
Event.observe(document, 'click', this.Click.bindAsEventListener(this));
Event.observe(document, (window.opera ? 'click' : 'contextmenu'), this.RightClick.bindAsEventListener(this));
Event.observe(document, 'contextmenu', this.RightClick.bindAsEventListener(this));
observingContextMenuClick = true;
}
@@ -23,8 +23,6 @@ ContextMenu.prototype = {
this.hideMenu();
// do not show the context menu on links
if (Event.element(e).tagName == 'A') { return; }
// right-click simulated by Alt+Click with Opera
if (window.opera && !e.altKey) { return; }
var tr = Event.findElement(e, 'tr');
if (tr == document || tr == undefined || !tr.hasClassName('hascontextmenu')) { return; }
Event.stop(e);
@@ -39,7 +37,6 @@ ContextMenu.prototype = {
Click: function(e) {
this.hideMenu();
if (Event.element(e).tagName == 'A') { return; }
if (window.opera && e.altKey) { return; }
if (Event.isLeftClick(e) || (navigator.appVersion.match(/\bMSIE\b/))) {
var tr = Event.findElement(e, 'tr');
if (tr!=null && tr!=document && tr.hasClassName('hascontextmenu')) {

File diff suppressed because it is too large Load Diff

View File

@@ -179,6 +179,8 @@ tr.user td { white-space: nowrap; }
tr.user.locked, tr.user.registered { color: #aaa; }
tr.user.locked a, tr.user.registered a { color: #aaa; }
tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
tr.time-entry { text-align: center; white-space: nowrap; }
tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
@@ -781,6 +783,7 @@ background-image:url('../images/close_hl.png');
}
.gantt_subjects { font-size: 0.8em; }
.gantt_subjects div { line-height:1.2em;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
.task {
position: absolute;
@@ -912,8 +915,8 @@ h4 img.gravatar {
}
td.username img.gravatar {
float: left;
margin: 0 1em 0 0;
margin: 0 0.5em 0 0;
vertical-align: top;
}
#activity dt img.gravatar {

View File

@@ -56,6 +56,7 @@ table.list td.buttons a { padding-right: 20px; }
.changeset-changes { direction: ltr; padding-left: 2em }
.changesets { direction: ltr; }
div#issue-changesets { float: left; margin-right: 1em; margin-left: 0 }
div#issue-changesets div.wiki { direction: ltr; padding-left: 2em }
#activity dt, .journal { clear: right; }
.journal-link { float: left; }
div.wiki pre { direction: ltr; }

View File

@@ -20,3 +20,10 @@ journal_details_003:
value: "6"
prop_key: fixed_version_id
journal_id: 4
journal_details_005:
old_value: Old value
property: cf
id: 5
value: New value
prop_key: 2
journal_id: 3

Binary file not shown.

View File

@@ -7,6 +7,7 @@ roles_001:
---
- :add_project
- :edit_project
- :select_project_modules
- :manage_members
- :manage_versions
- :manage_categories

View File

@@ -95,4 +95,12 @@ wiki_contents_009:
version: 1
author_id: 1
comments:
wiki_contents_010:
text: Page with cyrillic title
updated_on: 2007-03-08 00:18:07 +01:00
page_id: 10
id: 10
version: 1
author_id: 1
comments:

View File

@@ -62,4 +62,10 @@ wiki_pages_009:
wiki_id: 2
protected: false
parent_id: 8
wiki_pages_010:
created_on: 2007-03-08 00:18:07 +01:00
title: Этикаенеджмента
id: 10
wiki_id: 1
protected: false
parent_id:

View File

@@ -33,6 +33,19 @@ class IssueRelationsControllerTest < ActionController::TestCase
end
end
def test_new_xhr
assert_difference 'IssueRelation.count' do
@request.session[:user_id] = 3
xhr :post, :new,
:issue_id => 3,
:relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''}
assert_select_rjs 'relations' do
assert_select 'table', 1
assert_select 'tr', 2 # relations
end
end
end
def test_new_should_accept_id_with_hash
assert_difference 'IssueRelation.count' do
@request.session[:user_id] = 3
@@ -68,4 +81,20 @@ class IssueRelationsControllerTest < ActionController::TestCase
post :destroy, :id => '2', :issue_id => '3'
end
end
def test_destroy_xhr
IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r|
r.issue_from_id = 3
r.issue_to_id = 1
end
assert_difference 'IssueRelation.count', -1 do
@request.session[:user_id] = 3
xhr :post, :destroy, :id => '2', :issue_id => '3'
assert_select_rjs 'relations' do
assert_select 'table', 1
assert_select 'tr', 1 # relation left
end
end
end
end

View File

@@ -1286,6 +1286,18 @@ class IssuesControllerTest < ActionController::TestCase
assert !(Issue.find_by_id(1) || Issue.find_by_id(2) || Issue.find_by_id(6))
end
def test_destroy_parent_and_child_issues
parent = Issue.generate!(:project_id => 1, :tracker_id => 1)
child = Issue.generate!(:project_id => 1, :tracker_id => 1, :parent_issue_id => parent.id)
assert child.is_descendant_of?(parent.reload)
@request.session[:user_id] = 2
assert_difference 'Issue.count', -2 do
post :destroy, :ids => [parent.id, child.id], :todo => 'destroy'
end
assert_response 302
end
def test_default_search_scope
get :index
assert_tag :div, :attributes => {:id => 'quick-search'},

View File

@@ -22,7 +22,8 @@ require 'journals_controller'
class JournalsController; def rescue_action(e) raise e end; end
class JournalsControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules
fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules,
:trackers, :issue_statuses, :enumerations, :custom_fields, :custom_values, :custom_fields_projects
def setup
@controller = JournalsController.new

View File

@@ -154,7 +154,8 @@ class ProjectsControllerTest < ActionController::TestCase
:custom_field_values => { '3' => 'Beta' },
:tracker_ids => ['1', '3'],
# an issue custom field that is not for all project
:issue_custom_field_ids => ['9']
:issue_custom_field_ids => ['9'],
:enabled_module_names => ['issue_tracking', 'news', 'repository']
}
assert_redirected_to '/projects/blog/settings'
@@ -167,6 +168,7 @@ class ProjectsControllerTest < ActionController::TestCase
assert_nil project.parent
assert_equal 'Beta', project.custom_value_for(3).value
assert_equal [1, 3], project.trackers.map(&:id).sort
assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
assert project.issue_custom_fields.include?(IssueCustomField.find(9))
end
@@ -197,7 +199,9 @@ class ProjectsControllerTest < ActionController::TestCase
:description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' }
:custom_field_values => { '3' => 'Beta' },
:tracker_ids => ['1', '3'],
:enabled_module_names => ['issue_tracking', 'news', 'repository']
}
assert_redirected_to '/projects/blog/settings'
@@ -206,6 +210,8 @@ class ProjectsControllerTest < ActionController::TestCase
assert_kind_of Project, project
assert_equal 'weblog', project.description
assert_equal true, project.is_public?
assert_equal [1, 3], project.trackers.map(&:id).sort
assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
# User should be added as a project member
assert User.find(9).member_of?(project)
@@ -282,6 +288,28 @@ class ProjectsControllerTest < ActionController::TestCase
end
end
def test_create_should_preserve_modules_on_validation_failure
with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
@request.session[:user_id] = 1
assert_no_difference 'Project.count' do
post :create, :project => {
:name => "blog",
:identifier => "",
:enabled_module_names => %w(issue_tracking news)
}
end
assert_response :success
project = assigns(:project)
assert_equal %w(issue_tracking news), project.enabled_module_names.sort
end
end
def test_create_should_not_accept_get
@request.session[:user_id] = 1
get :create
assert_response :method_not_allowed
end
def test_show_by_id
get :show, :id => 1
assert_response :success
@@ -359,6 +387,21 @@ class ProjectsControllerTest < ActionController::TestCase
project = Project.find(1)
assert_equal 'Test changed name', project.name
end
def test_modules
@request.session[:user_id] = 2
Project.find(1).enabled_module_names = ['issue_tracking', 'news']
post :modules, :id => 1, :enabled_module_names => ['issue_tracking', 'repository', 'documents']
assert_redirected_to '/projects/ecookbook/settings/modules'
assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort
end
def test_modules_should_not_allow_get
@request.session[:user_id] = 1
get :modules, :id => 1
assert_response :method_not_allowed
end
def test_get_destroy
@request.session[:user_id] = 1 # admin
@@ -405,7 +448,7 @@ class ProjectsControllerTest < ActionController::TestCase
end
end
def test_copy_with_project
def test_get_copy
@request.session[:user_id] = 1 # admin
get :copy, :id => 1
assert_response :success
@@ -413,14 +456,42 @@ class ProjectsControllerTest < ActionController::TestCase
assert assigns(:project)
assert_equal Project.find(1).description, assigns(:project).description
assert_nil assigns(:project).id
assert_tag :tag => 'input',
:attributes => {:name => 'project[enabled_module_names][]', :value => 'issue_tracking'}
end
def test_copy_without_project
def test_get_copy_without_project
@request.session[:user_id] = 1 # admin
get :copy
assert_response :redirect
assert_redirected_to :controller => 'admin', :action => 'projects'
end
def test_post_copy_should_copy_requested_items
@request.session[:user_id] = 1 # admin
CustomField.delete_all
assert_difference 'Project.count' do
post :copy, :id => 1,
:project => {
:name => 'Copy',
:identifier => 'unique-copy',
:tracker_ids => ['1', '2', '3', ''],
:enabled_module_names => %w(issue_tracking time_tracking)
},
:only => %w(issues versions)
end
project = Project.find('unique-copy')
source = Project.find(1)
assert_equal %w(issue_tracking time_tracking), project.enabled_module_names.sort
assert_equal source.versions.count, project.versions.count, "All versions were not copied"
# issues assigned to a closed version won't be copied
assert_equal source.issues.select {|i| i.fixed_version.nil? || i.fixed_version.open?}.size,
project.issues.count, "All issues were not copied"
assert_equal 0, project.members.count
end
context "POST :copy" do
should "TODO: test the rest of the method"
@@ -429,7 +500,7 @@ class ProjectsControllerTest < ActionController::TestCase
@request.session[:user_id] = 1 # admin
post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
assert_response :redirect
assert_redirected_to :controller => 'projects', :action => 'settings'
assert_redirected_to :controller => 'projects', :action => 'settings', :id => 'unique-copy'
end
end

View File

@@ -33,9 +33,10 @@ class RepositoriesGitControllerTest < ActionController::TestCase
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
@repository = Repository::Git.create(:project => Project.find(3), :url => REPOSITORY_PATH)
assert @repository
end
if File.directory?(REPOSITORY_PATH)
def test_show
get :show, :id => 3
@@ -126,8 +127,11 @@ class RepositoriesGitControllerTest < ActionController::TestCase
assert_not_nil assigns(:entry)
assert_equal 'sources', assigns(:entry).name
end
def test_diff
@repository.fetch_changesets
@repository.reload
# Full diff of changeset 2f9c0091
get :diff, :id => 3, :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success
@@ -138,6 +142,21 @@ class RepositoriesGitControllerTest < ActionController::TestCase
:sibling => { :tag => 'td',
:attributes => { :class => /diff_out/ },
:content => /def remove/ }
assert_tag :tag => 'h2', :content => /2f9c0091/
end
def test_diff_two_revs
@repository.fetch_changesets
@repository.reload
get :diff, :id => 3, :rev => '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
:rev_to => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success
assert_template 'diff'
diff = assigns(:diff)
assert_not_nil diff
assert_tag :tag => 'h2', :content => /2f9c0091:61b685fb/
end
def test_annotate
@@ -150,13 +169,33 @@ class RepositoriesGitControllerTest < ActionController::TestCase
:sibling => { :tag => 'td', :content => /jsmith/ },
:sibling => { :tag => 'td', :content => /watcher =/ }
end
def test_annotate_binary_file
get :annotate, :id => 3, :path => ['images', 'edit.png']
assert_response 500
assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
:content => /can not be annotated/
end
def test_revision
@repository.fetch_changesets
@repository.reload
['61b685fbe55ab05b5ac68402d5720c1a6ac973d1', '61b685f'].each do |r|
get :revision, :id => 3, :rev => r
assert_response :success
assert_template 'revision'
end
end
def test_empty_revision
@repository.fetch_changesets
@repository.reload
['', ' ', nil].each do |r|
get :revision, :id => 3, :rev => r
assert_response 404
assert_error_tag :content => /was not found/
end
end
else
puts "Git test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end

Some files were not shown because too many files have changed in this diff Show More