Revision 1297:0a574315af3e .svn/pristine/d8

View differences:

.svn/pristine/d8/d820b362da40aaa2b6531056312ceeddee3d097b.svn-base
1
# Redmine - project management software
2
# Copyright (C) 2006-2012  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require File.expand_path('../../test_helper', __FILE__)
19

  
20
class RepositoriesCvsControllerTest < ActionController::TestCase
21
  tests RepositoriesController
22

  
23
  fixtures :projects, :users, :roles, :members, :member_roles,
24
           :repositories, :enabled_modules
25

  
26
  REPOSITORY_PATH = Rails.root.join('tmp/test/cvs_repository').to_s
27
  REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
28
  # CVS module
29
  MODULE_NAME = 'test'
30
  PRJ_ID = 3
31
  NUM_REV = 7
32

  
33
  def setup
34
    Setting.default_language = 'en'
35
    User.current = nil
36

  
37
    @project = Project.find(PRJ_ID)
38
    @repository  = Repository::Cvs.create(:project      => Project.find(PRJ_ID),
39
                                          :root_url     => REPOSITORY_PATH,
40
                                          :url          => MODULE_NAME,
41
                                          :log_encoding => 'UTF-8')
42
    assert @repository
43
  end
44

  
45
  if File.directory?(REPOSITORY_PATH)
46
    def test_get_new
47
      @request.session[:user_id] = 1
48
      @project.repository.destroy
49
      get :new, :project_id => 'subproject1', :repository_scm => 'Cvs'
50
      assert_response :success
51
      assert_template 'new'
52
      assert_kind_of Repository::Cvs, assigns(:repository)
53
      assert assigns(:repository).new_record?
54
    end
55

  
56
    def test_browse_root
57
      assert_equal 0, @repository.changesets.count
58
      @repository.fetch_changesets
59
      @project.reload
60
      assert_equal NUM_REV, @repository.changesets.count
61
      get :show, :id => PRJ_ID
62
      assert_response :success
63
      assert_template 'show'
64
      assert_not_nil assigns(:entries)
65
      assert_equal 3, assigns(:entries).size
66

  
67
      entry = assigns(:entries).detect {|e| e.name == 'images'}
68
      assert_equal 'dir', entry.kind
69

  
70
      entry = assigns(:entries).detect {|e| e.name == 'README'}
71
      assert_equal 'file', entry.kind
72

  
73
      assert_not_nil assigns(:changesets)
74
      assert assigns(:changesets).size > 0
75
    end
76

  
77
    def test_browse_directory
78
      assert_equal 0, @repository.changesets.count
79
      @repository.fetch_changesets
80
      @project.reload
81
      assert_equal NUM_REV, @repository.changesets.count
82
      get :show, :id => PRJ_ID, :path => repository_path_hash(['images'])[:param]
83
      assert_response :success
84
      assert_template 'show'
85
      assert_not_nil assigns(:entries)
86
      assert_equal ['add.png', 'delete.png', 'edit.png'], assigns(:entries).collect(&:name)
87
      entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
88
      assert_not_nil entry
89
      assert_equal 'file', entry.kind
90
      assert_equal 'images/edit.png', entry.path
91
    end
92

  
93
    def test_browse_at_given_revision
94
      assert_equal 0, @repository.changesets.count
95
      @repository.fetch_changesets
96
      @project.reload
97
      assert_equal NUM_REV, @repository.changesets.count
98
      get :show, :id => PRJ_ID, :path => repository_path_hash(['images'])[:param],
99
          :rev => 1
100
      assert_response :success
101
      assert_template 'show'
102
      assert_not_nil assigns(:entries)
103
      assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
104
    end
105

  
106
    def test_entry
107
      assert_equal 0, @repository.changesets.count
108
      @repository.fetch_changesets
109
      @project.reload
110
      assert_equal NUM_REV, @repository.changesets.count
111
      get :entry, :id => PRJ_ID,
112
          :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param]
113
      assert_response :success
114
      assert_template 'entry'
115
      assert_no_tag :tag => 'td',
116
                    :attributes => { :class => /line-code/},
117
                    :content => /before_filter/
118
    end
119

  
120
    def test_entry_at_given_revision
121
      # changesets must be loaded
122
      assert_equal 0, @repository.changesets.count
123
      @repository.fetch_changesets
124
      @project.reload
125
      assert_equal NUM_REV, @repository.changesets.count
126
      get :entry, :id => PRJ_ID,
127
          :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param],
128
          :rev => 2
129
      assert_response :success
130
      assert_template 'entry'
131
      # this line was removed in r3
132
      assert_tag :tag => 'td',
133
                 :attributes => { :class => /line-code/},
134
                 :content => /before_filter/
135
    end
136

  
137
    def test_entry_not_found
138
      assert_equal 0, @repository.changesets.count
139
      @repository.fetch_changesets
140
      @project.reload
141
      assert_equal NUM_REV, @repository.changesets.count
142
      get :entry, :id => PRJ_ID,
143
          :path => repository_path_hash(['sources', 'zzz.c'])[:param]
144
      assert_tag :tag => 'p',
145
                 :attributes => { :id => /errorExplanation/ },
146
                 :content => /The entry or revision was not found in the repository/
147
    end
148

  
149
    def test_entry_download
150
      assert_equal 0, @repository.changesets.count
151
      @repository.fetch_changesets
152
      @project.reload
153
      assert_equal NUM_REV, @repository.changesets.count
154
      get :entry, :id => PRJ_ID,
155
          :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param],
156
          :format => 'raw'
157
      assert_response :success
158
    end
159

  
160
    def test_directory_entry
161
      assert_equal 0, @repository.changesets.count
162
      @repository.fetch_changesets
163
      @project.reload
164
      assert_equal NUM_REV, @repository.changesets.count
165
      get :entry, :id => PRJ_ID,
166
          :path => repository_path_hash(['sources'])[:param]
167
      assert_response :success
168
      assert_template 'show'
169
      assert_not_nil assigns(:entry)
170
      assert_equal 'sources', assigns(:entry).name
171
    end
172

  
173
    def test_diff
174
      assert_equal 0, @repository.changesets.count
175
      @repository.fetch_changesets
176
      @project.reload
177
      assert_equal NUM_REV, @repository.changesets.count
178
      ['inline', 'sbs'].each do |dt|
179
        get :diff, :id => PRJ_ID, :rev => 3, :type => dt
180
        assert_response :success
181
        assert_template 'diff'
182
        assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_out' },
183
                                 :content => /before_filter :require_login/
184
        assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
185
                                 :content => /with one change/
186
      end
187
    end
188

  
189
    def test_diff_new_files
190
      assert_equal 0, @repository.changesets.count
191
      @repository.fetch_changesets
192
      @project.reload
193
      assert_equal NUM_REV, @repository.changesets.count
194
      ['inline', 'sbs'].each do |dt|
195
        get :diff, :id => PRJ_ID, :rev => 1, :type => dt
196
        assert_response :success
197
        assert_template 'diff'
198
        assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
199
                                 :content => /watched.remove_watcher/
200
        assert_tag :tag => 'th', :attributes => { :class => 'filename' },
201
                                 :content => /test\/README/
202
        assert_tag :tag => 'th', :attributes => { :class => 'filename' },
203
                                 :content => /test\/images\/delete.png	/
204
        assert_tag :tag => 'th', :attributes => { :class => 'filename' },
205
                                 :content => /test\/images\/edit.png/
206
        assert_tag :tag => 'th', :attributes => { :class => 'filename' },
207
                                 :content => /test\/sources\/watchers_controller.rb/
208
      end
209
    end
210

  
211
    def test_annotate
212
      assert_equal 0, @repository.changesets.count
213
      @repository.fetch_changesets
214
      @project.reload
215
      assert_equal NUM_REV, @repository.changesets.count
216
      get :annotate, :id => PRJ_ID,
217
          :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param]
218
      assert_response :success
219
      assert_template 'annotate'
220

  
221
      # 1.1 line
222
      assert_select 'tr' do
223
        assert_select 'th.line-num', :text => '21'
224
        assert_select 'td.revision', :text => /1.1/
225
        assert_select 'td.author', :text => /LANG/
226
      end
227
      # 1.2 line
228
      assert_select 'tr' do
229
        assert_select 'th.line-num', :text => '32'
230
        assert_select 'td.revision', :text => /1.2/
231
        assert_select 'td.author', :text => /LANG/
232
      end
233
    end
234

  
235
    def test_destroy_valid_repository
236
      @request.session[:user_id] = 1 # admin
237
      assert_equal 0, @repository.changesets.count
238
      @repository.fetch_changesets
239
      @project.reload
240
      assert_equal NUM_REV, @repository.changesets.count
241

  
242
      assert_difference 'Repository.count', -1 do
243
        delete :destroy, :id => @repository.id
244
      end
245
      assert_response 302
246
      @project.reload
247
      assert_nil @project.repository
248
    end
249

  
250
    def test_destroy_invalid_repository
251
      @request.session[:user_id] = 1 # admin
252
      @project.repository.destroy
253
      @repository  = Repository::Cvs.create!(
254
                              :project      => Project.find(PRJ_ID),
255
                              :root_url     => "/invalid",
256
                              :url          => MODULE_NAME,
257
                              :log_encoding => 'UTF-8'
258
                              )
259
      @repository.fetch_changesets
260
      @project.reload
261
      assert_equal 0, @repository.changesets.count
262

  
263
      assert_difference 'Repository.count', -1 do
264
        delete :destroy, :id => @repository.id
265
      end
266
      assert_response 302
267
      @project.reload
268
      assert_nil @project.repository
269
    end
270
  else
271
    puts "CVS test repository NOT FOUND. Skipping functional tests !!!"
272
    def test_fake; assert true end
273
  end
274
end
.svn/pristine/d8/d8240e0ef2bf417ed03d747eb93bd62ad19a2085.svn-base
1
# Update to 2.2 by Karel Picman <karel.picman@kontron.com>
2
# Update to 1.1 by Michal Gebauer <mishak@mishak.net>
3
# Updated by Josef Liška <jl@chl.cz>
4
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
5
# Based on original CZ translation by Jan Kadleček
6
cs:
7
  # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
8
  direction: ltr
9
  date:
10
    formats:
11
      # Use the strftime parameters for formats.
12
      # When no format has been given, it uses default.
13
      # You can provide other formats here if you like!
14
      default: "%Y-%m-%d"
15
      short: "%b %d"
16
      long: "%B %d, %Y"
17

  
18
    day_names: [Neděle, Pondělí, Úterý, Středa, Čtvrtek, Pátek, Sobota]
19
    abbr_day_names: [Ne, Po, Út, St, Čt, Pá, So]
20

  
21
    # Don't forget the nil at the beginning; there's no such thing as a 0th month
22
    month_names: [~, Leden, Únor, Březen, Duben, Květen, Červen, Červenec, Srpen, Září, Říjen, Listopad, Prosinec]
23
    abbr_month_names: [~, Led, Úno, Bře, Dub, Kvě, Čer, Čec, Srp, Zář, Říj, Lis, Pro]
24
    # Used in date_select and datime_select.
25
    order:
26
      - :year
27
      - :month
28
      - :day
29

  
30
  time:
31
    formats:
32
      default: "%a, %d %b %Y %H:%M:%S %z"
33
      time: "%H:%M"
34
      short: "%d %b %H:%M"
35
      long: "%B %d, %Y %H:%M"
36
    am: "dop."
37
    pm: "odp."
38

  
39
  datetime:
40
    distance_in_words:
41
      half_a_minute: "půl minuty"
42
      less_than_x_seconds:
43
        one:   "méně než sekunda"
44
        other: "méně než %{count} sekund"
45
      x_seconds:
46
        one:   "1 sekunda"
47
        other: "%{count} sekund"
48
      less_than_x_minutes:
49
        one:   "méně než minuta"
50
        other: "méně než %{count} minut"
51
      x_minutes:
52
        one:   "1 minuta"
53
        other: "%{count} minut"
54
      about_x_hours:
55
        one:   "asi 1 hodina"
56
        other: "asi %{count} hodin"
57
      x_hours:
58
        one:   "1 hour"
59
        other: "%{count} hours"
60
      x_days:
61
        one:   "1 den"
62
        other: "%{count} dnů"
63
      about_x_months:
64
        one:   "asi 1 měsíc"
65
        other: "asi %{count} měsíců"
66
      x_months:
67
        one:   "1 měsíc"
68
        other: "%{count} měsíců"
69
      about_x_years:
70
        one:   "asi 1 rok"
71
        other: "asi %{count} let"
72
      over_x_years:
73
        one:   "více než 1 rok"
74
        other: "více než %{count} roky"
75
      almost_x_years:
76
        one:   "témeř 1 rok"
77
        other: "téměř %{count} roky"
78

  
79
  number:
80
    # Výchozí formát pro čísla
81
    format:
82
      separator: "."
83
      delimiter: ""
84
      precision: 3
85
    human:
86
      format:
87
        delimiter: ""
88
        precision: 3
89
      storage_units:
90
        format: "%n %u"
91
        units:
92
          byte:
93
            one: "Bajt"
94
            other: "Bajtů"
95
          kb: "KB"
96
          mb: "MB"
97
          gb: "GB"
98
          tb: "TB"
99

  
100
# Used in array.to_sentence.
101
  support:
102
    array:
103
      sentence_connector: "a"
104
      skip_last_comma: false
105

  
106
  activerecord:
107
    errors:
108
      template:
109
        header:
110
          one:    "1 chyba zabránila uložení %{model}"
111
          other:  "%{count} chyb zabránilo uložení %{model}"
112
      messages:
113
        inclusion: "není zahrnuto v seznamu"
114
        exclusion: "je rezervováno"
115
        invalid: "je neplatné"
116
        confirmation: "se neshoduje s potvrzením"
117
        accepted: "musí být akceptováno"
118
        empty: "nemůže být prázdný"
119
        blank: "nemůže být prázdný"
120
        too_long: "je příliš dlouhý"
121
        too_short: "je příliš krátký"
122
        wrong_length: "má chybnou délku"
123
        taken: "je již použito"
124
        not_a_number: "není číslo"
125
        not_a_date: "není platné datum"
126
        greater_than: "musí být větší než %{count}"
127
        greater_than_or_equal_to: "musí být větší nebo rovno %{count}"
128
        equal_to: "musí být přesně %{count}"
129
        less_than: "musí být méně než %{count}"
130
        less_than_or_equal_to: "musí být méně nebo rovno %{count}"
131
        odd: "musí být liché"
132
        even: "musí být sudé"
133
        greater_than_start_date: "musí být větší než počáteční datum"
134
        not_same_project: "nepatří stejnému projektu"
135
        circular_dependency: "Tento vztah by vytvořil cyklickou závislost"
136
        cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jedním z jeho dílčích úkolů"
137

  
138
  actionview_instancetag_blank_option: Prosím vyberte
139

  
140
  general_text_No: 'Ne'
141
  general_text_Yes: 'Ano'
142
  general_text_no: 'ne'
143
  general_text_yes: 'ano'
144
  general_lang_name: 'Czech (Čeština)'
145
  general_csv_separator: ','
146
  general_csv_decimal_separator: '.'
147
  general_csv_encoding: UTF-8
148
  general_pdf_encoding: UTF-8
149
  general_first_day_of_week: '1'
150

  
151
  notice_account_updated: Účet byl úspěšně změněn.
152
  notice_account_invalid_creditentials: Chybné jméno nebo heslo
153
  notice_account_password_updated: Heslo bylo úspěšně změněno.
154
  notice_account_wrong_password: Chybné heslo
155
  notice_account_register_done: Účet byl úspěšně vytvořen. Pro aktivaci účtu klikněte na odkaz v emailu, který vám byl zaslán.
156
  notice_account_unknown_email: Neznámý uživatel.
157
  notice_can_t_change_password: Tento účet používá externí autentifikaci. Zde heslo změnit nemůžete.
158
  notice_account_lost_email_sent: Byl vám zaslán email s intrukcemi jak si nastavíte nové heslo.
159
  notice_account_activated: Váš účet byl aktivován. Nyní se můžete přihlásit.
160
  notice_successful_create: Úspěšně vytvořeno.
161
  notice_successful_update: Úspěšně aktualizováno.
162
  notice_successful_delete: Úspěšně odstraněno.
163
  notice_successful_connection: Úspěšné připojení.
164
  notice_file_not_found: Stránka na kterou se snažíte zobrazit neexistuje nebo byla smazána.
165
  notice_locking_conflict: Údaje byly změněny jiným uživatelem.
166
  notice_not_authorized: Nemáte dostatečná práva pro zobrazení této stránky.
167
  notice_not_authorized_archived_project: Projekt ke kterému se snažíte přistupovat byl archivován.
168
  notice_email_sent: "Na adresu %{value} byl odeslán email"
169
  notice_email_error: "Při odesílání emailu nastala chyba (%{value})"
170
  notice_feeds_access_key_reseted: Váš klíč pro přístup k RSS byl resetován.
171
  notice_api_access_key_reseted: Váš API přístupový klíč byl resetován.
172
  notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}."
173
  notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}."
174
  notice_no_issue_selected: "Nebyl zvolen žádný úkol. Prosím, zvolte úkoly, které chcete editovat"
175
  notice_account_pending: "Váš účet byl vytvořen, nyní čeká na schválení administrátorem."
176
  notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána.
177
  notice_unable_delete_version: Nemohu odstanit verzi
178
  notice_unable_delete_time_entry: Nelze smazat čas ze záznamu.
179
  notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány.
180
  notice_gantt_chart_truncated: Graf byl oříznut, počet položek přesáhl limit pro zobrazení (%{max})
181

  
182
  error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}"
183
  error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři."
184
  error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}"
185
  error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
186
  error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu'
187
  error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
188
  error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
189
  error_can_not_delete_custom_field: Nelze smazat volitelné pole
190
  error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
191
  error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
192
  error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
193
  error_can_not_archive_project: Tento projekt nemůže být archivován
194
  error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován.
195
  error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roly
196
  error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roly(e)
197
  error_unable_delete_issue_status: Nelze smazat stavy úkolů
198
  error_unable_to_connect: Nelze se připojit (%{value})
199
  warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
200

  
201
  mail_subject_lost_password: "Vaše heslo (%{value})"
202
  mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:'
203
  mail_subject_register: "Aktivace účtu (%{value})"
204
  mail_body_register: 'Pro aktivaci vašeho účtu klikněte na následující odkaz:'
205
  mail_body_account_information_external: "Pomocí vašeho účtu %{value} se můžete přihlásit."
206
  mail_body_account_information: Informace o vašem účtu
207
  mail_subject_account_activation_request: "Aktivace %{value} účtu"
208
  mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho účtu závisí na vašem potvrzení."
209
  mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
210
  mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
211
  mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
212
  mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
213
  mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
214
  mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
215

  
216
  gui_validation_error: 1 chyba
217
  gui_validation_error_plural: "%{count} chyb(y)"
218

  
219
  field_name: Název
220
  field_description: Popis
221
  field_summary: Přehled
222
  field_is_required: Povinné pole
223
  field_firstname: Jméno
224
  field_lastname: Příjmení
225
  field_mail: Email
226
  field_filename: Soubor
227
  field_filesize: Velikost
228
  field_downloads: Staženo
229
  field_author: Autor
230
  field_created_on: Vytvořeno
231
  field_updated_on: Aktualizováno
232
  field_field_format: Formát
233
  field_is_for_all: Pro všechny projekty
234
  field_possible_values: Možné hodnoty
235
  field_regexp: Regulární výraz
236
  field_min_length: Minimální délka
237
  field_max_length: Maximální délka
238
  field_value: Hodnota
239
  field_category: Kategorie
240
  field_title: Název
241
  field_project: Projekt
242
  field_issue: Úkol
243
  field_status: Stav
244
  field_notes: Poznámka
245
  field_is_closed: Úkol uzavřen
246
  field_is_default: Výchozí stav
247
  field_tracker: Fronta
248
  field_subject: Předmět
249
  field_due_date: Uzavřít do
250
  field_assigned_to: Přiřazeno
251
  field_priority: Priorita
252
  field_fixed_version: Cílová verze
253
  field_user: Uživatel
254
  field_principal: Hlavní
255
  field_role: Role
256
  field_homepage: Domovská stránka
257
  field_is_public: Veřejný
258
  field_parent: Nadřazený projekt
259
  field_is_in_roadmap: Úkoly zobrazené v plánu
260
  field_login: Přihlášení
261
  field_mail_notification: Emailová oznámení
262
  field_admin: Administrátor
263
  field_last_login_on: Poslední přihlášení
264
  field_language: Jazyk
265
  field_effective_date: Datum
266
  field_password: Heslo
267
  field_new_password: Nové heslo
268
  field_password_confirmation: Potvrzení
269
  field_version: Verze
270
  field_type: Typ
271
  field_host: Host
272
  field_port: Port
273
  field_account: Účet
274
  field_base_dn: Base DN
275
  field_attr_login: Přihlášení (atribut)
276
  field_attr_firstname: Jméno (atribut)
277
  field_attr_lastname: Příjemní (atribut)
278
  field_attr_mail: Email (atribut)
279
  field_onthefly: Automatické vytváření uživatelů
280
  field_start_date: Začátek
281
  field_done_ratio: "% Hotovo"
282
  field_auth_source: Autentifikační mód
283
  field_hide_mail: Nezobrazovat můj email
284
  field_comments: Komentář
285
  field_url: URL
286
  field_start_page: Výchozí stránka
287
  field_subproject: Podprojekt
288
  field_hours: Hodiny
289
  field_activity: Aktivita
290
  field_spent_on: Datum
291
  field_identifier: Identifikátor
292
  field_is_filter: Použít jako filtr
293
  field_issue_to: Související úkol
294
  field_delay: Zpoždění
295
  field_assignable: Úkoly mohou být přiřazeny této roli
296
  field_redirect_existing_links: Přesměrovat stvávající odkazy
297
  field_estimated_hours: Odhadovaná doba
298
  field_column_names: Sloupce
299
  field_time_entries: Zaznamenaný čas
300
  field_time_zone: Časové pásmo
301
  field_searchable: Umožnit vyhledávání
302
  field_default_value: Výchozí hodnota
303
  field_comments_sorting: Zobrazit komentáře
304
  field_parent_title: Rodičovská stránka
305
  field_editable: Editovatelný
306
  field_watcher: Sleduje
307
  field_identity_url: OpenID URL
308
  field_content: Obsah
309
  field_group_by: Seskupovat výsledky podle
310
  field_sharing: Sdílení
311
  field_parent_issue: Rodičovský úkol
312
  field_member_of_group: Skupina přiřaditele
313
  field_assigned_to_role: Role přiřaditele
314
  field_text: Textové pole
315
  field_visible: Viditelný
316

  
317
  setting_app_title: Název aplikace
318
  setting_app_subtitle: Podtitulek aplikace
319
  setting_welcome_text: Uvítací text
320
  setting_default_language: Výchozí jazyk
321
  setting_login_required: Autentifikace vyžadována
322
  setting_self_registration: Povolena automatická registrace
323
  setting_attachment_max_size: Maximální velikost přílohy
324
  setting_issues_export_limit: Limit pro export úkolů
325
  setting_mail_from: Odesílat emaily z adresy
326
  setting_bcc_recipients: Příjemci skryté kopie (bcc)
327
  setting_plain_text_mail: pouze prostý text (ne HTML)
328
  setting_host_name: Jméno serveru
329
  setting_text_formatting: Formátování textu
330
  setting_wiki_compression: Komprese historie Wiki
331
  setting_feeds_limit: Limit obsahu příspěvků
332
  setting_default_projects_public: Nové projekty nastavovat jako veřejné
333
  setting_autofetch_changesets: Automaticky stahovat commity
334
  setting_sys_api_enabled: Povolit WS pro správu repozitory
335
  setting_commit_ref_keywords: Klíčová slova pro odkazy
336
  setting_commit_fix_keywords: Klíčová slova pro uzavření
337
  setting_autologin: Automatické přihlašování
338
  setting_date_format: Formát data
339
  setting_time_format: Formát času
340
  setting_cross_project_issue_relations: Povolit vazby úkolů napříč projekty
341
  setting_issue_list_default_columns: Výchozí sloupce zobrazené v seznamu úkolů
342
  setting_emails_header: Hlavička emailů
343
  setting_emails_footer: Patička emailů
344
  setting_protocol: Protokol
345
  setting_per_page_options: Povolené počty řádků na stránce
346
  setting_user_format: Formát zobrazení uživatele
347
  setting_activity_days_default: Dny zobrazené v činnosti projektu
348
  setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavním projektu
349
  setting_enabled_scm: Povolené SCM
350
  setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
351
  setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
352
  setting_mail_handler_api_key: API klíč
353
  setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů
354
  setting_gravatar_enabled: Použít uživatelské ikony Gravatar
355
  setting_gravatar_default: Výchozí Gravatar
356
  setting_diff_max_lines_displayed: Maximální počet zobrazených řádků rozdílů
357
  setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce
358
  setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru
359
  setting_openid: Umožnit přihlašování a registrace s OpenID
360
  setting_password_min_length: Minimální délka hesla
361
  setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
362
  setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt
363
  setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s
364
  setting_issue_done_ratio_issue_field: Použít pole úkolu
365
  setting_issue_done_ratio_issue_status: Použít stav úkolu
366
  setting_start_of_week: Začínat kalendáře
367
  setting_rest_api_enabled: Zapnout službu REST
368
  setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti
369
  setting_default_notification_option: Výchozí nastavení oznámení
370
  setting_commit_logtime_enabled: Povolit zapisování času
371
  setting_commit_logtime_activity_id: Aktivita pro zapsaný čas
372
  setting_gantt_items_limit: Maximální počet položek zobrazený na ganttově grafu
373

  
374
  permission_add_project: Vytvořit projekt
375
  permission_add_subprojects: Vytvořit podprojekty
376
  permission_edit_project: Úprava projektů
377
  permission_select_project_modules: Výběr modulů projektu
378
  permission_manage_members: Spravování členství
379
  permission_manage_project_activities: Spravovat aktivity projektu
380
  permission_manage_versions: Spravování verzí
381
  permission_manage_categories: Spravování kategorií úkolů
382
  permission_view_issues: Zobrazit úkoly
383
  permission_add_issues: Přidávání úkolů
384
  permission_edit_issues: Upravování úkolů
385
  permission_manage_issue_relations: Spravování vztahů mezi úkoly
386
  permission_add_issue_notes: Přidávání poznámek
387
  permission_edit_issue_notes: Upravování poznámek
388
  permission_edit_own_issue_notes: Upravování vlastních poznámek
389
  permission_move_issues: Přesouvání úkolů
390
  permission_delete_issues: Mazání úkolů
391
  permission_manage_public_queries: Správa veřejných dotazů
392
  permission_save_queries: Ukládání dotazů
393
  permission_view_gantt: Zobrazené Ganttova diagramu
394
  permission_view_calendar: Prohlížení kalendáře
395
  permission_view_issue_watchers: Zobrazení seznamu sledujícíh uživatelů
396
  permission_add_issue_watchers: Přidání sledujících uživatelů
397
  permission_delete_issue_watchers: Smazat přihlížející
398
  permission_log_time: Zaznamenávání stráveného času
399
  permission_view_time_entries: Zobrazení stráveného času
400
  permission_edit_time_entries: Upravování záznamů o stráveném času
401
  permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase
402
  permission_manage_news: Spravování novinek
403
  permission_comment_news: Komentování novinek
404
  permission_manage_documents: Správa dokumentů
405
  permission_view_documents: Prohlížení dokumentů
406
  permission_manage_files: Spravování souborů
407
  permission_view_files: Prohlížení souborů
408
  permission_manage_wiki: Spravování Wiki
409
  permission_rename_wiki_pages: Přejmenovávání Wiki stránek
410
  permission_delete_wiki_pages: Mazání stránek na Wiki
411
  permission_view_wiki_pages: Prohlížení Wiki
412
  permission_view_wiki_edits: Prohlížení historie Wiki
413
  permission_edit_wiki_pages: Upravování stránek Wiki
414
  permission_delete_wiki_pages_attachments: Mazání příloh
415
  permission_protect_wiki_pages: Zabezpečení Wiki stránek
416
  permission_manage_repository: Spravování repozitáře
417
  permission_browse_repository: Procházení repozitáře
418
  permission_view_changesets: Zobrazování sady změn
419
  permission_commit_access: Commit přístup
420
  permission_manage_boards: Správa diskusních fór
421
  permission_view_messages: Prohlížení zpráv
422
  permission_add_messages: Posílání zpráv
423
  permission_edit_messages: Upravování zpráv
424
  permission_edit_own_messages: Upravit vlastní zprávy
425
  permission_delete_messages: Mazání zpráv
426
  permission_delete_own_messages: Smazat vlastní zprávy
427
  permission_export_wiki_pages: Exportovat Wiki stránky
428
  permission_manage_subtasks: Spravovat podúkoly
429

  
430
  project_module_issue_tracking: Sledování úkolů
431
  project_module_time_tracking: Sledování času
432
  project_module_news: Novinky
433
  project_module_documents: Dokumenty
434
  project_module_files: Soubory
435
  project_module_wiki: Wiki
436
  project_module_repository: Repozitář
437
  project_module_boards: Diskuse
438
  project_module_calendar: Kalendář
439
  project_module_gantt: Gantt
440

  
441
  label_user: Uživatel
442
  label_user_plural: Uživatelé
443
  label_user_new: Nový uživatel
444
  label_user_anonymous: Anonymní
445
  label_project: Projekt
446
  label_project_new: Nový projekt
447
  label_project_plural: Projekty
448
  label_x_projects:
449
    zero:  žádné projekty
450
    one:   1 projekt
451
    other: "%{count} projekty(ů)"
452
  label_project_all: Všechny projekty
453
  label_project_latest: Poslední projekty
454
  label_issue: Úkol
455
  label_issue_new: Nový úkol
456
  label_issue_plural: Úkoly
457
  label_issue_view_all: Všechny úkoly
458
  label_issues_by: "Úkoly podle %{value}"
459
  label_issue_added: Úkol přidán
460
  label_issue_updated: Úkol aktualizován
461
  label_document: Dokument
462
  label_document_new: Nový dokument
463
  label_document_plural: Dokumenty
464
  label_document_added: Dokument přidán
465
  label_role: Role
466
  label_role_plural: Role
467
  label_role_new: Nová role
468
  label_role_and_permissions: Role a práva
469
  label_member: Člen
470
  label_member_new: Nový člen
471
  label_member_plural: Členové
472
  label_tracker: Fronta
473
  label_tracker_plural: Fronty
474
  label_tracker_new: Nová fronta
475
  label_workflow: Průběh práce
476
  label_issue_status: Stav úkolu
477
  label_issue_status_plural: Stavy úkolů
478
  label_issue_status_new: Nový stav
479
  label_issue_category: Kategorie úkolu
480
  label_issue_category_plural: Kategorie úkolů
481
  label_issue_category_new: Nová kategorie
482
  label_custom_field: Uživatelské pole
483
  label_custom_field_plural: Uživatelská pole
484
  label_custom_field_new: Nové uživatelské pole
485
  label_enumerations: Seznamy
486
  label_enumeration_new: Nová hodnota
487
  label_information: Informace
488
  label_information_plural: Informace
489
  label_please_login: Prosím přihlašte se
490
  label_register: Registrovat
491
  label_login_with_open_id_option: nebo se přihlašte s OpenID
492
  label_password_lost: Zapomenuté heslo
493
  label_home: Úvodní
494
  label_my_page: Moje stránka
495
  label_my_account: Můj účet
496
  label_my_projects: Moje projekty
497
  label_my_page_block: Bloky na mé stránce
498
  label_administration: Administrace
499
  label_login: Přihlášení
500
  label_logout: Odhlášení
501
  label_help: Nápověda
502
  label_reported_issues: Nahlášené úkoly
503
  label_assigned_to_me_issues: Mé úkoly
504
  label_last_login: Poslední přihlášení
505
  label_registered_on: Registrován
506
  label_activity: Aktivita
507
  label_overall_activity: Celková aktivita
508
  label_user_activity: "Aktivita uživatele: %{value}"
509
  label_new: Nový
510
  label_logged_as: Přihlášen jako
511
  label_environment: Prostředí
512
  label_authentication: Autentifikace
513
  label_auth_source: Mód autentifikace
514
  label_auth_source_new: Nový mód autentifikace
515
  label_auth_source_plural: Módy autentifikace
516
  label_subproject_plural: Podprojekty
517
  label_subproject_new: Nový podprojekt
518
  label_and_its_subprojects: "%{value} a jeho  podprojekty"
519
  label_min_max_length: Min - Max délka
520
  label_list: Seznam
521
  label_date: Datum
522
  label_integer: Celé číslo
523
  label_float: Desetinné číslo
524
  label_boolean: Ano/Ne
525
  label_string: Text
526
  label_text: Dlouhý text
527
  label_attribute: Atribut
528
  label_attribute_plural: Atributy
529
  label_download: "%{count} stažení"
530
  label_download_plural: "%{count} stažení"
531
  label_no_data: Žádné položky
532
  label_change_status: Změnit stav
533
  label_history: Historie
534
  label_attachment: Soubor
535
  label_attachment_new: Nový soubor
536
  label_attachment_delete: Odstranit soubor
537
  label_attachment_plural: Soubory
538
  label_file_added: Soubor přidán
539
  label_report: Přehled
540
  label_report_plural: Přehledy
541
  label_news: Novinky
542
  label_news_new: Přidat novinku
543
  label_news_plural: Novinky
544
  label_news_latest: Poslední novinky
545
  label_news_view_all: Zobrazit všechny novinky
546
  label_news_added: Novinka přidána
547
  label_settings: Nastavení
548
  label_overview: Přehled
549
  label_version: Verze
550
  label_version_new: Nová verze
551
  label_version_plural: Verze
552
  label_close_versions: Zavřít dokončené verze
553
  label_confirmation: Potvrzení
554
  label_export_to: 'Také k dispozici:'
555
  label_read: Načítá se...
556
  label_public_projects: Veřejné projekty
557
  label_open_issues: otevřený
558
  label_open_issues_plural: otevřené
559
  label_closed_issues: uzavřený
560
  label_closed_issues_plural: uzavřené
561
  label_x_open_issues_abbr_on_total:
562
    zero:  0 otevřených / %{total}
563
    one:   1 otevřený / %{total}
564
    other: "%{count} otevřených / %{total}"
565
  label_x_open_issues_abbr:
566
    zero:  0 otevřených
567
    one:   1 otevřený
568
    other: "%{count} otevřených"
569
  label_x_closed_issues_abbr:
570
    zero:  0 uzavřených
571
    one:   1 uzavřený
572
    other: "%{count} uzavřených"
573
  label_total: Celkem
574
  label_permissions: Práva
575
  label_current_status: Aktuální stav
576
  label_new_statuses_allowed: Nové povolené stavy
577
  label_all: vše
578
  label_none: nic
579
  label_nobody: nikdo
580
  label_next: Další
581
  label_previous: Předchozí
582
  label_used_by: Použito
583
  label_details: Detaily
584
  label_add_note: Přidat poznámku
585
  label_per_page: Na stránku
586
  label_calendar: Kalendář
587
  label_months_from: měsíců od
588
  label_gantt: Ganttův graf
589
  label_internal: Interní
590
  label_last_changes: "posledních %{count} změn"
591
  label_change_view_all: Zobrazit všechny změny
592
  label_personalize_page: Přizpůsobit tuto stránku
593
  label_comment: Komentář
594
  label_comment_plural: Komentáře
595
  label_x_comments:
596
    zero: žádné komentáře
597
    one: 1 komentář
598
    other: "%{count} komentářů"
599
  label_comment_add: Přidat komentáře
600
  label_comment_added: Komentář přidán
601
  label_comment_delete: Odstranit komentář
602
  label_query: Uživatelský dotaz
603
  label_query_plural: Uživatelské dotazy
604
  label_query_new: Nový dotaz
605
  label_filter_add: Přidat filtr
606
  label_filter_plural: Filtry
607
  label_equals: je
608
  label_not_equals: není
609
  label_in_less_than: je měší než
610
  label_in_more_than: je větší než
611
  label_greater_or_equal: '>='
612
  label_less_or_equal: '<='
613
  label_in: v
614
  label_today: dnes
615
  label_all_time: vše
616
  label_yesterday: včera
617
  label_this_week: tento týden
618
  label_last_week: minulý týden
619
  label_last_n_days: "posledních %{count} dnů"
620
  label_this_month: tento měsíc
621
  label_last_month: minulý měsíc
622
  label_this_year: tento rok
623
  label_date_range: Časový rozsah
624
  label_less_than_ago: před méně jak (dny)
625
  label_more_than_ago: před více jak (dny)
626
  label_ago: před (dny)
627
  label_contains: obsahuje
628
  label_not_contains: neobsahuje
629
  label_day_plural: dny
630
  label_repository: Repozitář
631
  label_repository_plural: Repozitáře
632
  label_browse: Procházet
633
  label_modification: "%{count} změna"
634
  label_modification_plural: "%{count} změn"
635
  label_branch: Větev
636
  label_tag: Tag
637
  label_revision: Revize
638
  label_revision_plural: Revizí
639
  label_revision_id: "Revize %{value}"
640
  label_associated_revisions: Související verze
641
  label_added: přidáno
642
  label_modified: změněno
643
  label_copied: zkopírováno
644
  label_renamed: přejmenováno
645
  label_deleted: odstraněno
646
  label_latest_revision: Poslední revize
647
  label_latest_revision_plural: Poslední revize
648
  label_view_revisions: Zobrazit revize
649
  label_view_all_revisions: Zobrazit všechny revize
650
  label_max_size: Maximální velikost
651
  label_sort_highest: Přesunout na začátek
652
  label_sort_higher: Přesunout nahoru
653
  label_sort_lower: Přesunout dolů
654
  label_sort_lowest: Přesunout na konec
655
  label_roadmap: Plán
656
  label_roadmap_due_in: "Zbývá %{value}"
657
  label_roadmap_overdue: "%{value} pozdě"
658
  label_roadmap_no_issues: Pro tuto verzi nejsou žádné úkoly
659
  label_search: Hledat
660
  label_result_plural: Výsledky
661
  label_all_words: Všechna slova
662
  label_wiki: Wiki
663
  label_wiki_edit: Wiki úprava
664
  label_wiki_edit_plural: Wiki úpravy
665
  label_wiki_page: Wiki stránka
666
  label_wiki_page_plural: Wiki stránky
667
  label_index_by_title: Index dle názvu
668
  label_index_by_date: Index dle data
669
  label_current_version: Aktuální verze
670
  label_preview: Náhled
671
  label_feed_plural: Příspěvky
672
  label_changes_details: Detail všech změn
673
  label_issue_tracking: Sledování úkolů
674
  label_spent_time: Strávený čas
675
  label_overall_spent_time: Celkem strávený čas
676
  label_f_hour: "%{value} hodina"
677
  label_f_hour_plural: "%{value} hodin"
678
  label_time_tracking: Sledování času
679
  label_change_plural: Změny
680
  label_statistics: Statistiky
681
  label_commits_per_month: Commitů za měsíc
682
  label_commits_per_author: Commitů za autora
683
  label_view_diff: Zobrazit rozdíly
684
  label_diff_inline: uvnitř
685
  label_diff_side_by_side: vedle sebe
686
  label_options: Nastavení
687
  label_copy_workflow_from: Kopírovat průběh práce z
688
  label_permissions_report: Přehled práv
689
  label_watched_issues: Sledované úkoly
690
  label_related_issues: Související úkoly
691
  label_applied_status: Použitý stav
692
  label_loading: Nahrávám...
693
  label_relation_new: Nová souvislost
694
  label_relation_delete: Odstranit souvislost
695
  label_relates_to: související s
696
  label_duplicates: duplikuje
697
  label_duplicated_by: zduplikován
698
  label_blocks: blokuje
699
  label_blocked_by: zablokován
700
  label_precedes: předchází
701
  label_follows: následuje
702
  label_end_to_start: od konce do začátku
703
  label_end_to_end: od konce do konce
704
  label_start_to_start: od začátku do začátku
705
  label_start_to_end: od začátku do konce
706
  label_stay_logged_in: Zůstat přihlášený
707
  label_disabled: zakázán
708
  label_show_completed_versions: Ukázat dokončené verze
709
  label_me: já
710
  label_board: Fórum
711
  label_board_new: Nové fórum
712
  label_board_plural: Fóra
713
  label_board_locked: Uzamčeno
714
  label_board_sticky: Nálepka
715
  label_topic_plural: Témata
716
  label_message_plural: Zprávy
717
  label_message_last: Poslední zpráva
718
  label_message_new: Nová zpráva
719
  label_message_posted: Zpráva přidána
720
  label_reply_plural: Odpovědi
721
  label_send_information: Zaslat informace o účtu uživateli
722
  label_year: Rok
723
  label_month: Měsíc
724
  label_week: Týden
725
  label_date_from: Od
726
  label_date_to: Do
727
  label_language_based: Podle výchozího jazyku
728
  label_sort_by: "Seřadit podle %{value}"
729
  label_send_test_email: Poslat testovací email
730
  label_feeds_access_key: Přístupový klíč pro RSS
731
  label_missing_feeds_access_key: Postrádá přístupový klíč pro RSS
732
  label_feeds_access_key_created_on: "Přístupový klíč pro RSS byl vytvořen před %{value}"
733
  label_module_plural: Moduly
734
  label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
735
  label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}"
736
  label_updated_time: "Aktualizováno před %{value}"
737
  label_jump_to_a_project: Vyberte projekt...
738
  label_file_plural: Soubory
739
  label_changeset_plural: Changesety
740
  label_default_columns: Výchozí sloupce
741
  label_no_change_option: (beze změny)
742
  label_bulk_edit_selected_issues: Hromadná úprava vybraných úkolů
743
  label_theme: Téma
744
  label_default: Výchozí
745
  label_search_titles_only: Vyhledávat pouze v názvech
746
  label_user_mail_option_all: "Pro všechny události všech mých projektů"
747
  label_user_mail_option_selected: "Pro všechny události vybraných projektů..."
748
  label_user_mail_option_none: "Žádné události"
749
  label_user_mail_option_only_my_events: "Jen pro věci co sleduji nebo jsem v nich zapojen"
750
  label_user_mail_option_only_assigned: "Jen pro všeci kterým sem přiřazen"
751
  label_user_mail_option_only_owner: "Jen pro věci které vlastním"
752
  label_user_mail_no_self_notified: "Nezasílat informace o mnou vytvořených změnách"
753
  label_registration_activation_by_email: aktivace účtu emailem
754
  label_registration_manual_activation: manuální aktivace účtu
755
  label_registration_automatic_activation: automatická aktivace účtu
756
  label_display_per_page: "%{value} na stránku"
757
  label_age: Věk
758
  label_change_properties: Změnit vlastnosti
759
  label_general: Obecné
760
  label_more: Více
761
  label_scm: SCM
762
  label_plugins: Doplňky
763
  label_ldap_authentication: Autentifikace LDAP
764
  label_downloads_abbr: Staž.
765
  label_optional_description: Volitelný popis
766
  label_add_another_file: Přidat další soubor
767
  label_preferences: Nastavení
768
  label_chronological_order: V chronologickém pořadí
769
  label_reverse_chronological_order: V obrácaném chronologickém pořadí
770
  label_planning: Plánování
771
  label_incoming_emails: Příchozí e-maily
772
  label_generate_key: Generovat klíč
773
  label_issue_watchers: Sledování
774
  label_example: Příklad
775
  label_display: Zobrazit
776
  label_sort: Řazení
777
  label_ascending: Vzestupně
778
  label_descending: Sestupně
779
  label_date_from_to: Od %{start} do %{end}
780
  label_wiki_content_added: Wiki stránka přidána
781
  label_wiki_content_updated: Wiki stránka aktualizována
782
  label_group: Skupina
783
  label_group_plural: Skupiny
784
  label_group_new: Nová skupina
785
  label_time_entry_plural: Strávený čas
786
  label_version_sharing_none: Nesdíleno
787
  label_version_sharing_descendants: S podprojekty
788
  label_version_sharing_hierarchy: S hierarchií projektu
789
  label_version_sharing_tree: Se stromem projektu
790
  label_version_sharing_system: Se všemi projekty
791
  label_update_issue_done_ratios: Aktualizovat koeficienty dokončení úkolů
792
  label_copy_source: Zdroj
793
  label_copy_target: Cíl
794
  label_copy_same_as_target: Stejný jako cíl
795
  label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
796
  label_api_access_key: API přístupový klíč
797
  label_missing_api_access_key: Chybějící přístupový klíč API
798
  label_api_access_key_created_on: API přístupový klíč vytvořen %{value}
799
  label_profile: Profil
800
  label_subtask_plural: Podúkol
801
  label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
802
  label_principal_search: "Hledat uživatele nebo skupinu:"
803
  label_user_search: "Hledat uživatele:"
804

  
805
  button_login: Přihlásit
806
  button_submit: Potvrdit
807
  button_save: Uložit
808
  button_check_all: Zašrtnout vše
809
  button_uncheck_all: Odšrtnout vše
810
  button_delete: Odstranit
811
  button_create: Vytvořit
812
  button_create_and_continue: Vytvořit a pokračovat
813
  button_test: Testovat
814
  button_edit: Upravit
815
  button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
816
  button_add: Přidat
817
  button_change: Změnit
818
  button_apply: Použít
819
  button_clear: Smazat
820
  button_lock: Zamknout
821
  button_unlock: Odemknout
822
  button_download: Stáhnout
823
  button_list: Vypsat
824
  button_view: Zobrazit
825
  button_move: Přesunout
826
  button_move_and_follow: Přesunout a následovat
827
  button_back: Zpět
828
  button_cancel: Storno
829
  button_activate: Aktivovat
830
  button_sort: Seřadit
831
  button_log_time: Přidat čas
832
  button_rollback: Zpět k této verzi
833
  button_watch: Sledovat
834
  button_unwatch: Nesledovat
835
  button_reply: Odpovědět
836
  button_archive: Archivovat
837
  button_unarchive: Odarchivovat
838
  button_reset: Resetovat
839
  button_rename: Přejmenovat
840
  button_change_password: Změnit heslo
841
  button_copy: Kopírovat
842
  button_copy_and_follow: Kopírovat a následovat
843
  button_annotate: Komentovat
844
  button_update: Aktualizovat
845
  button_configure: Konfigurovat
846
  button_quote: Citovat
847
  button_duplicate: Duplikovat
848
  button_show: Zobrazit
849

  
850
  status_active: aktivní
851
  status_registered: registrovaný
852
  status_locked: uzamčený
853

  
854
  version_status_open: otevřený
855
  version_status_locked: uzamčený
856
  version_status_closed: zavřený
857

  
858
  field_active: Aktivní
859

  
860
  text_select_mail_notifications: Vyberte akci při které bude zasláno upozornění emailem.
861
  text_regexp_info: např. ^[A-Z0-9]+$
862
  text_min_max_length_info: 0 znamená bez limitu
863
  text_project_destroy_confirmation: Jste si jisti, že chcete odstranit tento projekt a všechna související data ?
864
  text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
865
  text_workflow_edit: Vyberte roli a frontu k editaci průběhu práce
866
  text_are_you_sure: Jste si jisti?
867
  text_journal_changed: "%{label} změněn z %{old} na %{new}"
868
  text_journal_set_to: "%{label} nastaven na %{value}"
869
  text_journal_deleted: "%{label} smazán (%{old})"
870
  text_journal_added: "%{label} %{value} přidán"
871
  text_tip_issue_begin_day: úkol začíná v tento den
872
  text_tip_issue_end_day: úkol končí v tento den
873
  text_tip_issue_begin_end_day: úkol začíná a končí v tento den
874
  text_caracters_maximum: "%{count} znaků maximálně."
875
  text_caracters_minimum: "Musí být alespoň %{count} znaků dlouhé."
876
  text_length_between: "Délka mezi %{min} a %{max} znaky."
877
  text_tracker_no_workflow: Pro tuto frontu není definován žádný průběh práce
878
  text_unallowed_characters: Nepovolené znaky
879
  text_comma_separated: Povoleno více hodnot (oddělěné čárkou).
880
  text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu).
881
  text_issues_ref_in_commit_messages: Odkazování a opravování úkolů ve zprávách commitů
882
  text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
883
  text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
884
  text_wiki_destroy_confirmation: Opravdu si přejete odstranit tuto Wiki a celý její obsah?
885
  text_issue_category_destroy_question: "Některé úkoly (%{count}) jsou přiřazeny k této kategorii. Co s nimi chtete udělat?"
886
  text_issue_category_destroy_assignments: Zrušit přiřazení ke kategorii
887
  text_issue_category_reassign_to: Přiřadit úkoly do této kategorie
888
  text_user_mail_option: "U projektů, které nebyly vybrány, budete dostávat oznámení pouze o vašich či o sledovaných položkách (např. o položkách jejichž jste autor nebo ke kterým jste přiřazen(a))."
889
  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"
890
  text_load_default_configuration: Nahrát výchozí konfiguraci
891
  text_status_changed_by_changeset: "Použito v changesetu %{value}."
892
  text_time_logged_by_changeset: Aplikováno v changesetu %{value}.
893
  text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
894
  text_select_project_modules: 'Aktivní moduly v tomto projektu:'
895
  text_default_administrator_account_changed: Výchozí nastavení administrátorského účtu změněno
896
  text_file_repository_writable: Povolen zápis do adresáře ukládání souborů
897
  text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
898
  text_rmagick_available: RMagick k dispozici (volitelné)
899
  text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
900
  text_destroy_time_entries: Odstranit evidované hodiny.
901
  text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
902
  text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
903
  text_user_wrote: "%{value} napsal:"
904
  text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
905
  text_enumeration_category_reassign_to: 'Přeřadit je do této:'
906
  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/configuration.yml a restartujte aplikaci."
907
  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."
908
  text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
909
  text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
910
  text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
911
  text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
912
  text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
913
  text_wiki_page_reassign_children: Přiřadit podstránky k tomuto rodiči
914
  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?"
915
  text_zoom_in: Přiblížit
916
  text_zoom_out: Oddálit
917

  
918
  default_role_manager: Manažer
919
  default_role_developer: Vývojář
920
  default_role_reporter: Reportér
921
  default_tracker_bug: Chyba
922
  default_tracker_feature: Požadavek
923
  default_tracker_support: Podpora
924
  default_issue_status_new: Nový
925
  default_issue_status_in_progress: Ve vývoji
926
  default_issue_status_resolved: Vyřešený
927
  default_issue_status_feedback: Čeká se
928
  default_issue_status_closed: Uzavřený
929
  default_issue_status_rejected: Odmítnutý
930
  default_doc_category_user: Uživatelská dokumentace
931
  default_doc_category_tech: Technická dokumentace
932
  default_priority_low: Nízká
933
  default_priority_normal: Normální
934
  default_priority_high: Vysoká
935
  default_priority_urgent: Urgentní
936
  default_priority_immediate: Okamžitá
937
  default_activity_design: Návhr
938
  default_activity_development: Vývoj
939

  
940
  enumeration_issue_priorities: Priority úkolů
941
  enumeration_doc_categories: Kategorie dokumentů
942
  enumeration_activities: Aktivity (sledování času)
943
  enumeration_system_activity: Systémová aktivita
944

  
945
  field_warn_on_leaving_unsaved: Varuj mě před opuštěním stránky s neuloženým textem
946
  text_warn_on_leaving_unsaved: Aktuální stránka obsahuje neuložený text, který bude ztracen, když opustíte stránku.
947
  label_my_queries: Moje vlastní dotazy
948
  text_journal_changed_no_detail: "%{label} aktualizován"
949
  label_news_comment_added: K novince byl přidán komentář
950
  button_expand_all: Rozbal vše
951
  button_collapse_all: Sbal vše
952
  label_additional_workflow_transitions_for_assignee: Další změna stavu povolena, jestliže je uživatel přiřazen
953
  label_additional_workflow_transitions_for_author: Další změna stavu povolena, jestliže je uživatel autorem
954
  label_bulk_edit_selected_time_entries: Hromadná změna záznamů času
955
  text_time_entries_destroy_confirmation: Jste si jistí, že chcete smazat vybraný záznam(y) času?
956
  label_role_anonymous: Anonymní
957
  label_role_non_member: Není členem
958
  label_issue_note_added: Přidána poznámka
959
  label_issue_status_updated: Aktualizován stav
960
  label_issue_priority_updated: Aktualizována priorita
961
  label_issues_visibility_own: Úkol vytvořen nebo přiřazen uživatel(i/em)
962
  field_issues_visibility: Viditelnost úkolů
963
  label_issues_visibility_all: Všechny úkoly
964
  permission_set_own_issues_private: Nastavit vlastní úkoly jako veřejné nebo soukromé
965
  field_is_private: Soukromý
966
  permission_set_issues_private: Nastavit úkoly jako veřejné nebo soukromé
967
  label_issues_visibility_public: Všechny úkoly, které nejsou soukromé
968
  text_issues_destroy_descendants_confirmation: "%{count} podúkol(ů) bude rovněž smazán(o)."
969
  field_commit_logs_encoding: Kódování zpráv při commitu
970
  field_scm_path_encoding: Kódování cesty SCM
971
  text_scm_path_encoding_note: "Výchozí: UTF-8"
972
  field_path_to_repository: Cesta k repositáři
973
  field_root_directory: Kořenový adresář
974
  field_cvs_module: Modul
975
  field_cvsroot: CVSROOT
976
  text_mercurial_repository_note: Lokální repositář (např. /hgrepo, c:\hgrepo)
977
  text_scm_command: Příkaz
978
  text_scm_command_version: Verze
979
  label_git_report_last_commit: Reportovat poslední commit pro soubory a adresáře
980
  text_scm_config: Můžete si nastavit vaše SCM příkazy v config/configuration.yml. Restartujte, prosím, aplikaci po jejich úpravě.
981
  text_scm_command_not_available: SCM příkaz není k dispozici. Zkontrolujte, prosím, nastavení v panelu Administrace.
982
  notice_issue_successful_create: Úkol %{id} vytvořen.
983
  label_between: mezi
984
  setting_issue_group_assignment: Povolit přiřazení úkolu skupině
985
  label_diff: rozdíl
986
  text_git_repository_note: Repositář je "bare and local" (např. /gitrepo, c:\gitrepo)
987
  description_query_sort_criteria_direction: Směr třídění
988
  description_project_scope: Rozsah vyhledávání
989
  description_filter: Filtr
990
  description_user_mail_notification: Nastavení emailových notifikací
991
  description_date_from: Zadejte počáteční datum
992
  description_message_content: Obsah zprávy
993
  description_available_columns: Dostupné sloupce
994
  description_date_range_interval: Zvolte rozsah výběrem počátečního a koncového data
995
  description_issue_category_reassign: Zvolte kategorii úkolu
996
  description_search: Vyhledávací pole
997
  description_notes: Poznámky
998
  description_date_range_list: Zvolte rozsah ze seznamu
999
  description_choose_project: Projekty
1000
  description_date_to: Zadejte datum
1001
  description_query_sort_criteria_attribute: Třídící atribut
1002
  description_wiki_subpages_reassign: Zvolte novou rodičovskou stránku
1003
  description_selected_columns: Vybraný sloupec
1004
  label_parent_revision: Rodič
1005
  label_child_revision: Potomek
1006
  error_scm_annotate_big_text_file: Vstup nemůže být anotován, protože překračuje povolenou velikost textového souboru
1007
  setting_default_issue_start_date_to_creation_date: Použij aktuální datum jako počáteční datum pro nové úkoly
1008
  button_edit_section: Uprav tuto sekci
1009
  setting_repositories_encodings: Kódování příloh a repositářů
1010
  description_all_columns: Všechny sloupce
1011
  button_export: Export
1012
  label_export_options: "nastavení exportu %{export_format}"
1013
  error_attachment_too_big: Soubor nemůže být nahrán, protože jeho velikost je větší než maximum (%{max_size})
1014
  notice_failed_to_save_time_entries: "Chyba při ukládání %{count} časov(ých/ého) záznam(ů) z %{total} vybraného: %{ids}."
1015
  label_x_issues:
1016
    zero:  0 Úkol
1017
    one:   1 Úkol
1018
    other: "%{count} Úkoly"
1019
  label_repository_new: Nový repositář
1020
  field_repository_is_default: Hlavní repositář
1021
  label_copy_attachments: Kopírovat přílohy
1022
  label_item_position: "%{position}/%{count}"
1023
  label_completed_versions: Dokončené verze
1024
  text_project_identifier_info: Jsou povolena pouze malá písmena (a-z), číslice, pomlčky a podtržítka.<br />Po uložení již nelze identifikátor měnit.
1025
  field_multiple: Více hodnot
1026
  setting_commit_cross_project_ref: Povolit reference a opravy úklů ze všech ostatních projektů
1027
  text_issue_conflict_resolution_add_notes: Přidat moje poznámky a zahodit ostatní změny
1028
  text_issue_conflict_resolution_overwrite: Přesto přijmout moje úpravy (předchozí poznámky budou zachovány, ale některé změny mohou být přepsány)
1029
  notice_issue_update_conflict: Během vašich úprav byl úkol aktualizován jiným uživatelem.
1030
  text_issue_conflict_resolution_cancel: Zahoď všechny moje změny a znovu zobraz %{link}
1031
  permission_manage_related_issues: Spravuj související úkoly
1032
  field_auth_source_ldap_filter: LDAP filtr
1033
  label_search_for_watchers: Hledej sledující pro přidání
1034
  notice_account_deleted: Váš účet byl trvale smazán.
1035
  setting_unsubscribe: Povolit uživatelům smazání jejich vlastního účtu
1036
  button_delete_my_account: Smazat můj účet
1037
  text_account_destroy_confirmation: |-
1038
    Skutečně chcete pokračovat?
1039
    Váš účet bude nenávratně smazán.
1040
  error_session_expired: Vaše sezení vypršelo. Znovu se přihlaste, prosím.
1041
  text_session_expiration_settings: "Varování: změnou tohoto nastavení mohou vypršet aktuální sezení včetně toho vašeho."
1042
  setting_session_lifetime: Maximální čas sezení
1043
  setting_session_timeout: Vypršení sezení bez aktivity
1044
  label_session_expiration: Vypršení sezení
1045
  permission_close_project: Zavřít / Otevřít projekt
1046
  label_show_closed_projects: Zobrazit zavřené projekty
1047
  button_close: Zavřít
1048
  button_reopen: Znovu otevřít
1049
  project_status_active: aktivní
1050
  project_status_closed: zavřený
1051
  project_status_archived: archivovaný
1052
  text_project_closed: Tento projekt je uzevřený a je pouze pro čtení.
1053
  notice_user_successful_create: Uživatel %{id} vytvořen.
1054
  field_core_fields: Standardní pole
1055
  field_timeout: Vypršení (v sekundách)
1056
  setting_thumbnails_enabled: Zobrazit náhled přílohy
1057
  setting_thumbnails_size: Velikost náhledu (v pixelech)
1058
  label_status_transitions: Změna stavu
1059
  label_fields_permissions: Práva k polím
1060
  label_readonly: Pouze pro čtení
1061
  label_required: Vyžadováno
1062
  text_repository_identifier_info: Jou povoleny pouze malá písmena (a-z), číslice, pomlčky a podtržítka.<br />Po uložení již nelze identifikátor změnit.
1063
  field_board_parent: Rodičovské fórum
1064
  label_attribute_of_project: Projektové %{name}
1065
  label_attribute_of_author: Autorovo %{name}
1066
  label_attribute_of_assigned_to: "%{name} přiřazené(ho)"
1067
  label_attribute_of_fixed_version: Cílová verze %{name}
1068
  label_copy_subtasks: Kopírovat podúkoly
1069
  label_copied_to: zkopírováno do
1070
  label_copied_from: zkopírováno z
1071
  label_any_issues_in_project: jakékoli úkoly v projektu
1072
  label_any_issues_not_in_project: jakékoli úkoly mimo projektu
1073
  field_private_notes: Soukromé poznámky
1074
  permission_view_private_notes: Zobrazit soukromé poznámky
1075
  permission_set_notes_private: Nastavit poznámky jako soukromé
1076
  label_no_issues_in_project: žádné úkoly v projektu
1077
  label_any: vše
1078
  label_last_n_weeks: poslední %{count} týdny
1079
  setting_cross_project_subtasks: Povolit podúkoly napříč projekty
1080
  label_cross_project_descendants: S podprojekty
1081
  label_cross_project_tree: Se stromem projektu
1082
  label_cross_project_hierarchy: S hierarchií projektu
1083
  label_cross_project_system: Se všemi projekty
1084
  button_hide: Skrýt
1085
  setting_non_working_week_days: Dny pracovního volna/klidu
1086
  label_in_the_next_days: v přístích
1087
  label_in_the_past_days: v minulých
.svn/pristine/d8/d84028e9377754df4951a789fc085f8e2eb7bb46.svn-base
1
# Redmine - project management software
2
# Copyright (C) 2006-2012  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require "digest/md5"
19

  
20
class Attachment < ActiveRecord::Base
21
  belongs_to :container, :polymorphic => true
22
  belongs_to :author, :class_name => "User", :foreign_key => "author_id"
23

  
24
  validates_presence_of :filename, :author
25
  validates_length_of :filename, :maximum => 255
26
  validates_length_of :disk_filename, :maximum => 255
27
  validates_length_of :description, :maximum => 255
28
  validate :validate_max_file_size
29

  
30
  acts_as_event :title => :filename,
31
                :url => Proc.new {|o| {:controller => 'attachments', :action => 'download', :id => o.id, :filename => o.filename}}
32

  
33
  acts_as_activity_provider :type => 'files',
34
                            :permission => :view_files,
35
                            :author_key => :author_id,
36
                            :find_options => {:select => "#{Attachment.table_name}.*",
37
                                              :joins => "LEFT JOIN #{Version.table_name} ON #{Attachment.table_name}.container_type='Version' AND #{Version.table_name}.id = #{Attachment.table_name}.container_id " +
38
                                                        "LEFT JOIN #{Project.table_name} ON #{Version.table_name}.project_id = #{Project.table_name}.id OR ( #{Attachment.table_name}.container_type='Project' AND #{Attachment.table_name}.container_id = #{Project.table_name}.id )"}
39

  
40
  acts_as_activity_provider :type => 'documents',
41
                            :permission => :view_documents,
42
                            :author_key => :author_id,
43
                            :find_options => {:select => "#{Attachment.table_name}.*",
44
                                              :joins => "LEFT JOIN #{Document.table_name} ON #{Attachment.table_name}.container_type='Document' AND #{Document.table_name}.id = #{Attachment.table_name}.container_id " +
45
                                                        "LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"}
46

  
47
  cattr_accessor :storage_path
48
  @@storage_path = Redmine::Configuration['attachments_storage_path'] || File.join(Rails.root, "files")
49

  
50
  cattr_accessor :thumbnails_storage_path
51
  @@thumbnails_storage_path = File.join(Rails.root, "tmp", "thumbnails")
52

  
53
  before_save :files_to_final_location
54
  after_destroy :delete_from_disk
55

  
56
  # Returns an unsaved copy of the attachment
57
  def copy(attributes=nil)
58
    copy = self.class.new
59
    copy.attributes = self.attributes.dup.except("id", "downloads")
60
    copy.attributes = attributes if attributes
61
    copy
62
  end
63

  
64
  def validate_max_file_size
65
    if @temp_file && self.filesize > Setting.attachment_max_size.to_i.kilobytes
66
      errors.add(:base, l(:error_attachment_too_big, :max_size => Setting.attachment_max_size.to_i.kilobytes))
67
    end
68
  end
69

  
70
  def file=(incoming_file)
71
    unless incoming_file.nil?
72
      @temp_file = incoming_file
73
      if @temp_file.size > 0
74
        if @temp_file.respond_to?(:original_filename)
75
          self.filename = @temp_file.original_filename
76
          self.filename.force_encoding("UTF-8") if filename.respond_to?(:force_encoding)
77
        end
78
        if @temp_file.respond_to?(:content_type)
79
          self.content_type = @temp_file.content_type.to_s.chomp
80
        end
81
        if content_type.blank? && filename.present?
82
          self.content_type = Redmine::MimeType.of(filename)
83
        end
84
        self.filesize = @temp_file.size
85
      end
86
    end
87
  end
88

  
89
  def file
90
    nil
91
  end
92

  
93
  def filename=(arg)
94
    write_attribute :filename, sanitize_filename(arg.to_s)
95
    if new_record? && disk_filename.blank?
96
      self.disk_filename = Attachment.disk_filename(filename)
97
    end
98
    filename
99
  end
100

  
101
  # Copies the temporary file to its final location
102
  # and computes its MD5 hash
103
  def files_to_final_location
104
    if @temp_file && (@temp_file.size > 0)
105
      logger.info("Saving attachment '#{self.diskfile}' (#{@temp_file.size} bytes)")
106
      md5 = Digest::MD5.new
107
      File.open(diskfile, "wb") do |f|
108
        if @temp_file.respond_to?(:read)
109
          buffer = ""
110
          while (buffer = @temp_file.read(8192))
111
            f.write(buffer)
112
            md5.update(buffer)
113
          end
114
        else
115
          f.write(@temp_file)
116
          md5.update(@temp_file)
117
        end
118
      end
119
      self.digest = md5.hexdigest
120
    end
121
    @temp_file = nil
122
    # Don't save the content type if it's longer than the authorized length
123
    if self.content_type && self.content_type.length > 255
124
      self.content_type = nil
125
    end
126
  end
127

  
128
  # Deletes the file from the file system if it's not referenced by other attachments
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff