View | Details | Raw Unified | Return to bug 22898 | Differences between
and this patch

Collapse All | Expand All

(-)umc/python/updater/de.po (-8 / +8 lines)
 Lines 3-9    Link Here 
3
msgstr ""
3
msgstr ""
4
"Project-Id-Version: univention-management-console-module-updater\n"
4
"Project-Id-Version: univention-management-console-module-updater\n"
5
"Report-Msgid-Bugs-To: packages@univention.de\n"
5
"Report-Msgid-Bugs-To: packages@univention.de\n"
6
"POT-Creation-Date: 2011-10-29 23:07+0200\n"
6
"POT-Creation-Date: 2011-11-18 11:53+0100\n"
7
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
7
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
"Language-Team: LANGUAGE <LL@li.org>\n"
9
"Language-Team: LANGUAGE <LL@li.org>\n"
 Lines 12-36    Link Here 
12
"Content-Type: text/plain; charset=UTF-8\n"
12
"Content-Type: text/plain; charset=UTF-8\n"
13
"Content-Transfer-Encoding: 8bit\n"
13
"Content-Transfer-Encoding: 8bit\n"
14
14
15
#: umc/python/updater/__init__.py:750
15
#: umc/python/updater/__init__.py:751
16
#, python-format
16
#, python-format
17
msgid "At least one out of %s must be selected."
17
msgid "At least one out of %s must be selected."
18
msgstr "Wenigstens eine der %s Kategorien muß ausgewählt sein."
18
msgstr "Wenigstens eine der %s Kategorien muß ausgewählt sein."
19
19
20
#: umc/python/updater/__init__.py:1262
20
#: umc/python/updater/__init__.py:1274
21
msgid "Component name is not allowed to be empty."
21
msgid "Component name is not allowed to be empty."
22
msgstr "Der Komponentenname muß angegeben werden."
22
msgstr "Der Komponentenname muß angegeben werden."
23
23
24
#: umc/python/updater/__init__.py:756
24
#: umc/python/updater/__init__.py:757
25
#, python-format
25
#, python-format
26
msgid "ERROR: %s"
26
msgid "ERROR: %s"
27
msgstr "FEHLER: %s"
27
msgstr "FEHLER: %s"
28
28
29
#: umc/python/updater/__init__.py:744
29
#: umc/python/updater/__init__.py:745
30
msgid "Empty server name not allowed"
30
msgid "Empty server name not allowed"
31
msgstr "Der Servername muß angegeben werden."
31
msgstr "Der Servername muß angegeben werden."
32
32
33
#: umc/python/updater/__init__.py:1267
33
#: umc/python/updater/__init__.py:1279
34
#, python-format
34
#, python-format
35
msgid "Illegal character(s) in component name: '%s'"
35
msgid "Illegal character(s) in component name: '%s'"
36
msgstr "Unzulässige Zeichen (%s) im Komponentennamen."
36
msgstr "Unzulässige Zeichen (%s) im Komponentennamen."
 Lines 57-63    Link Here 
57
msgid "Perform release update up to version '%s'"
57
msgid "Perform release update up to version '%s'"
58
msgstr "Release auf Version '%s' aktualisieren"
58
msgstr "Release auf Version '%s' aktualisieren"
59
59
60
#: umc/python/updater/__init__.py:1276
60
#: umc/python/updater/__init__.py:1288
61
msgid "There is already a component with this name"
61
msgid "There is already a component with this name"
62
msgstr "Es gibt bereits eine Komponente mit diesem Namen"
62
msgstr "Es gibt bereits eine Komponente mit diesem Namen"
63
63
 Lines 65-70    Link Here 
65
msgid "latest version"
65
msgid "latest version"
66
msgstr "neueste Version"
66
msgstr "neueste Version"
67
67
68
#: umc/python/updater/__init__.py:512
68
#: umc/python/updater/__init__.py:513
69
msgid "unknown"
69
msgid "unknown"
70
msgstr ""
70
msgstr ""
(-)umc/python/updater/__init__.py (-4 / +26 lines)
 Lines 1-4    Link Here 
1
#!/usr/bin/python2.6
1
#!/ucr/bin/python2.6
2
# -*- coding: utf-8 -*-
2
# -*- coding: utf-8 -*-
3
#
3
#
4
# Univention Management Console
4
# Univention Management Console
 Lines 406-411    Link Here 
406
				MODULE.info("   << %s" % s)
406
				MODULE.info("   << %s" % s)
407
		# -----------------------------------
407
		# -----------------------------------
408
408
409
409
		# umc.widgets.Form wraps the real data into an array:
410
		# umc.widgets.Form wraps the real data into an array:
410
		#
411
		#
411
		#	[
412
		#	[
 Lines 882-888    Link Here 
882
					result = self._logstamp(fname)
883
					result = self._logstamp(fname)
883
				else:
884
				else:
884
					# don't read complete file if we have an 'ignore' count
885
					# don't read complete file if we have an 'ignore' count
885
					if (count == 0) and (self._current_job['lines']):
886
					if (count == 0) and ('lines' in self._current_job) and (self._current_job['lines']):
886
						count = -self._current_job['lines']
887
						count = -self._current_job['lines']
887
					result = self._logview(fname, count)
888
					result = self._logview(fname, count)
888
889
 Lines 1036-1041    Link Here 
1036
			MODULE.warn(result['message'])
1037
			MODULE.warn(result['message'])
1037
			self.finished(request.id,result)
1038
			self.finished(request.id,result)
1038
			return
1039
			return
1040
		
1041
		# initial values of current job
1042
		self._current_job = {
1043
			'job':		subject,
1044
			'detail':	detail,
1045
			'logfile':	'',
1046
			'lines':	0
1047
		}
1039
1048
1040
		# We want to limit the amount of logfile data being transferred
1049
		# We want to limit the amount of logfile data being transferred
1041
		# to the frontend. So we remember the line count of the associated
1050
		# to the frontend. So we remember the line count of the associated
 Lines 1052-1057    Link Here 
1052
				if file != None:
1061
				if file != None:
1053
					file.close()
1062
					file.close()
1054
			self._current_job['lines'] = count
1063
			self._current_job['lines'] = count
1064
			self._current_job['logfile'] = fname
1055
1065
1056
		try:
1066
		try:
1057
			# Assemble the command line, now somewhat complicated:
1067
			# Assemble the command line, now somewhat complicated:
 Lines 1062-1068    Link Here 
1062
			#	(4)	if the subject is about 'component' we must get the 'defaultpackages'
1072
			#	(4)	if the subject is about 'component' we must get the 'defaultpackages'
1063
			#		entry from the UCR tuple named by 'detail' and use that.
1073
			#		entry from the UCR tuple named by 'detail' and use that.
1064
			#	(5)	if not, we can format the 'detail' field into the command.
1074
			#	(5)	if not, we can format the 'detail' field into the command.
1075
			#
1065
			# cmd = '%s' % INSTALLERS[subject]['command']		# I need a copy of this string!
1076
			# cmd = '%s' % INSTALLERS[subject]['command']		# I need a copy of this string!
1077
			#
1066
			cmd = INSTALLERS[subject]['command']
1078
			cmd = INSTALLERS[subject]['command']
1067
			if cmd.find('%') != -1:
1079
			if cmd.find('%') != -1:
1068
				if subject == 'component':
1080
				if subject == 'component':
 Lines 1369-1377    Link Here 
1369
			and how long it is running.
1381
			and how long it is running.
1370
		"""
1382
		"""
1371
		started = int(time())
1383
		started = int(time())
1384
		logfile = self._current_job['logfile']
1385
		lines = self._current_job['lines']
1372
		script = '''
1386
		script = '''
1373
#:started: %s
1387
#:started: %s
1374
#:detail: %s
1388
#:detail: %s
1389
#:logfile: %s
1390
#:lines: %s
1375
#:command: %s
1391
#:command: %s
1376
dpkg-statoverride --add root root 0644 /usr/sbin/univention-management-console-web-server
1392
dpkg-statoverride --add root root 0644 /usr/sbin/univention-management-console-web-server
1377
dpkg-statoverride --add root root 0644 /usr/sbin/univention-management-console-server
1393
dpkg-statoverride --add root root 0644 /usr/sbin/univention-management-console-server
 Lines 1382-1388    Link Here 
1382
dpkg-statoverride --remove /usr/sbin/univention-management-console-server
1398
dpkg-statoverride --remove /usr/sbin/univention-management-console-server
1383
dpkg-statoverride --remove /usr/sbin/apache2
1399
dpkg-statoverride --remove /usr/sbin/apache2
1384
chmod +x /usr/sbin/univention-management-console-server /usr/sbin/univention-management-console-web-server /usr/sbin/apache2
1400
chmod +x /usr/sbin/univention-management-console-server /usr/sbin/univention-management-console-web-server /usr/sbin/apache2
1385
''' % (started,detail,command,command)
1401
''' % (started,detail,logfile,lines,command,command)
1386
		p1 = subprocess.Popen( [ 'LC_ALL=C at now', ], stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True )
1402
		p1 = subprocess.Popen( [ 'LC_ALL=C at now', ], stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True )
1387
		(stdout,stderr) = p1.communicate( script )
1403
		(stdout,stderr) = p1.communicate( script )
1388
1404
 Lines 1419-1425    Link Here 
1419
							for line in atout.split("\n"):
1435
							for line in atout.split("\n"):
1420
								match = re.search('^\#\:([a-z]+)\:\s(.*)$',line)
1436
								match = re.search('^\#\:([a-z]+)\:\s(.*)$',line)
1421
								if (match):
1437
								if (match):
1422
									self._current_job[match.group(1)] = match.group(2)
1438
									var = match.group(1)
1439
									val = match.group(2)
1440
									# restore numeric strings into numbers!
1441
									if val.isdigit():
1442
										self._current_job[var] = int(val)
1443
									else:
1444
										self._current_job[var] = val
1423
							return inst
1445
							return inst
1424
		return ''
1446
		return ''
1425
1447
(-)umc/js/_updater/ProgressPage.js (-65 / +61 lines)
 Lines 58-79    Link Here 
58
	
58
	
59
	_job_key:		'',			// the key of the currently running job
59
	_job_key:		'',			// the key of the currently running job
60
	
60
	
61
    postMixInProperties: function() {
61
	postMixInProperties: function() {
62
        this.inherited(arguments);
62
		
63
		this.inherited(arguments);
64
		
65
		// If I don't do that -> the page will switch 'show module help description' off
66
		dojo.mixin(this,{
67
			helpText: ' '
68
		});
69
	},
63
70
64
        dojo.mixin(this, {
65
	    	title:			this._("Update in progress"),
66
	        headerText:		this._("Univention Updater is working"),
67
	        helpText:		this._("As long as the Univention Updater is updating your system, you're not allowed to manage settings or components. You may watch the progress, or close the module.")
68
        });
69
    },
70
71
    buildRendering: function() {
71
    buildRendering: function() {
72
		
72
		
73
    	this.inherited(arguments);
73
    	this.inherited(arguments);
74
    	
74
    	
75
    	this._pane = new umc.widgets.ExpandingTitlePane({
75
    	this._pane = new umc.widgets.ExpandingTitlePane({
76
    		title:		this._("Progress information")
76
    		title:		this._("Log file view")
77
    	});
77
    	});
78
    	this.addChild(this._pane);
78
    	this.addChild(this._pane);
79
    	
79
    	
 Lines 110-116    Link Here 
110
    			// logic will revert to the first tab of our tab set.
110
    			// logic will revert to the first tab of our tab set.
111
    			if (this._reboot_required)
111
    			if (this._reboot_required)
112
    			{
112
    			{
113
    				//alert("Resetting return tab to 'Updates'");
114
    				this.last_tab = null;
113
    				this.last_tab = null;
115
    			}
114
    			}
116
    			if (this.last_tab)
115
    			if (this.last_tab)
 Lines 188-194    Link Here 
188
				}
187
				}
189
				msg = msg + "<br/>&nbsp;<br/>";
188
				msg = msg + "<br/>&nbsp;<br/>";
190
				
189
				
191
				msg += this._statusfile_data(data.result);
192
				
190
				
193
				// -------------- DEBUG ------------------
191
				// -------------- DEBUG ------------------
194
//				for (var v in this._last_job)
192
//				for (var v in this._last_job)
 Lines 222-264    Link Here 
222
		}
220
		}
223
	},
221
	},
224
	
222
	
225
	// takes a status structure as returned from the 'updater/installer/status' call,
226
	// extracts the fields that came directly from the status file (if any) and
227
	// formats them into a one-liner. Returns an empty string if nothing matches.
228
	//
229
	// FOR TEST: now includes the 'reboot' flag if it is present.
230
	_statusfile_data: function(data) {
231
		
232
		var txt = '';
233
		
234
		for (var f in data)
235
		{
236
			// These fields are wrapped into underscores
237
			if ((f.substr(0,1) == '_') && (f.substr(-1,1) == '_'))
238
			{
239
				if (txt.length) { txt += ','; }
240
				txt += ' ' + f.substr(1,f.length-2) + "=" + data[f];
241
			}
242
		}
243
		
244
		if (data['reboot'])
245
		{
246
			txt += ' [REBOOT] ';
247
			if (! this._reboot_required)		// not set or not true
248
			{
249
				//alert("Setting REBOOT from _statusfile_data");
250
				this._reboot_required = true;
251
			}
252
		}
253
		
254
		if (txt != '')
255
		{
256
			txt = "(" + this._("Current status file content") + ":" + txt + ")<br/>";
257
		}
258
		
259
		return txt;
260
	},
261
	
262
	// queries job status. As long as we know a job key -> ask for full
223
	// queries job status. As long as we know a job key -> ask for full
263
	// details. The handler _process_job_status() handles this gracefully.
224
	// details. The handler _process_job_status() handles this gracefully.
264
	_query_job_status: function() {
225
	_query_job_status: function() {
 Lines 316-322    Link Here 
316
				msg = msg + this._("You may return to the overview by clicking the 'back' button now.");
277
				msg = msg + this._("You may return to the overview by clicking the 'back' button now.");
317
				msg = msg + "<br/>&nbsp;<br/>";
278
				msg = msg + "<br/>&nbsp;<br/>";
318
				
279
				
319
				msg += this._statusfile_data(this._last_job);
320
				
280
				
321
				// -------------- DEBUG ------------------
281
				// -------------- DEBUG ------------------
322
//				for (var v in this._last_job)
282
//				for (var v in this._last_job)
 Lines 327-350    Link Here 
327
				
287
				
328
				this._head.set('content',msg);
288
				this._head.set('content',msg);
329
				
289
				
330
				this._log.stopWatching();		// now log is freely scrollable manually
290
				// set headers according to the outcome
331
				
291
				var status = 'success';
332
				//alert("Watching is finished, job is '" + this._job_key + "'");
292
				if (typeof(this._last_job['_status_'] == 'undefined') || this._last_job['_status_'] != 'SUCCESS')
333
				
334
				if ((this._last_job) && (this._last_job['reboot']))
335
				{
293
				{
336
					var reb = this._last_job['reboot'];
294
					status = 'failed';
337
					if (typeof(reb) == 'string')
338
					{
339
						reb = (reb == 'true');
340
					}
341
					if ((! this._reboot_required) || (reb != this._reboot_required))
342
					{
343
						//alert("setting REBOOT from _allow_close()");
344
						this._reboot_required = reb;
345
					}
346
				}
295
				}
296
				this._switch_headings(status);
347
				
297
				
298
				this._log.stopWatching();		// now log is freely scrollable manually
299
				
348
				this._last_job = null;	// can be deleted, but this._job_key should be retained!
300
				this._last_job = null;	// can be deleted, but this._job_key should be retained!
349
			}
301
			}
350
		}
302
		}
 Lines 393-398    Link Here 
393
		
345
		
394
		this.inherited(arguments);
346
		this.inherited(arguments);
395
		this._interval = 0;
347
		this._interval = 0;
348
	},
349
	
350
	// on switch to this page: set initial headings.
351
	onShow: function() {
352
		this._switch_headings('running');
353
	},
354
	
355
	// internal function that switches any heading variables of
356
	// our current page, according to the retrieved job status
357
	_switch_headings: function(status) {
358
		
359
		// avoid doing that repeatedly
360
		if (status == this._last_heading_status)
361
		{
362
			return;
363
		}
364
		
365
		this._last_heading_status = status;
366
367
		var headings = {
368
			'running': {
369
		    	title:			this._("Update in progress"),
370
		        headerText:		this._("Univention Updater is working"),
371
		        helpText:		this._("As long as the Univention Updater is updating your system, you're not allowed to manage settings or components. You may watch the progress, or close the module.")
372
			},
373
			'success': {
374
				title:			this._("Update finished"),
375
				headerText:		this._("Univention Updater job completed"),
376
				helpText:		this._("Univention Updater has successfully finished the current job. You may read through the log file. If you're finished you may press the 'back to overview' button to close this view.")
377
			},
378
			'failed': {
379
				title:			this._("Update failed"),
380
				headerText:		this._("Univention Updater job failed"),
381
				helpText:		this._("Univention Updater could not successfully complete the current job. The log file should show the cause of the failure. If you're finished examining the log file you may press the 'back to overview' button to close this view.")
382
			}
383
		};
384
		
385
		var info = headings[status];
386
		for (var v in info)
387
		{
388
			this.set(v,info[v]);
389
		}
390
		// this.layout();
391
				
396
	}
392
	}
397
393
398
});
394
});
(-)umc/js/_updater/ComponentsPage.js (+6 lines)
 Lines 313-318    Link Here 
313
	// removes a component
313
	// removes a component
314
	_delete_components: function(ids) {
314
	_delete_components: function(ids) {
315
315
316
		// multiAction callback is fired even if nothing
317
		// is selected?
318
		if (! ids.length)
319
		{
320
			return;
321
		}
316
		var msg = dojo.replace(this._("Are you sure you want to delete the following components: [{ids}]"),{ids: ids});
322
		var msg = dojo.replace(this._("Are you sure you want to delete the following components: [{ids}]"),{ids: ids});
317
		umc.dialog.confirm(msg,
323
		umc.dialog.confirm(msg,
318
		[
324
		[
(-)umc/js/_updater/DetailsPage.js (-6 / +11 lines)
 Lines 69-76    Link Here 
69
    	            'default':	true,
69
    	            'default':	true,
70
    	            label:		this._("Apply changes"),
70
    	            label:		this._("Apply changes"),
71
    	            onClick: dojo.hitch(this, function() {
71
    	            onClick: dojo.hitch(this, function() {
72
    	            	this.standby(true);
72
    	            	this._form.onSubmit();
73
                        this._form.save(this._save_options);
74
    	            })
73
    	            })
75
            	}
74
            	}
76
    		]		        	
75
    		]		        	
 Lines 131-137    Link Here 
131
	    		type:			'TextBox',
130
	    		type:			'TextBox',
132
	    		name:			'version',
131
	    		name:			'version',
133
	    		label:			this._("Version"),
132
	    		label:			this._("Version"),
134
	    		regExp:			'^((([0-9]+\.[0-9]+|current),)*([0-9]+\.[0-9]+|current))?$'
133
	    		regExp:			'^((([0-9]+\\.[0-9]+|current),)*([0-9]+\\.[0-9]+|current))?$'
135
	    	}
134
	    	}
136
    	];
135
    	];
137
    
136
    
 Lines 161-167    Link Here 
161
    		widgets:		widgets,
160
    		widgets:		widgets,
162
    		layout:			layout,
161
    		layout:			layout,
163
    		//buttons:		buttons,
162
    		//buttons:		buttons,
164
    		moduleStore:	umc.store.getModuleStore('name','updater/components')
163
    		moduleStore:	umc.store.getModuleStore('name','updater/components'),
164
    		// This is (a) the submit handler of the form, but
165
    		// also (b) the onClick handler of the 'Apply' button
166
    		onSubmit: function() {
167
    			alert('onSubmit called');
168
    	    	this._form.standby(true);
169
    	        this._form.save(this._save_options);
170
    		}	
165
    	});
171
    	});
166
    	this.addChild(this._form);
172
    	this.addChild(this._form);
167
    	
173
    	
 Lines 233-239    Link Here 
233
	
239
	
234
	// return to grid view
240
	// return to grid view
235
	closeDetail: function() {
241
	closeDetail: function() {
236
	}
242
	}	
237
	
238
243
239
});
244
});
(-)umc/js/de.po (-53 / +72 lines)
 Lines 3-9    Link Here 
3
msgstr ""
3
msgstr ""
4
"Project-Id-Version: univention-management-console-module-updater\n"
4
"Project-Id-Version: univention-management-console-module-updater\n"
5
"Report-Msgid-Bugs-To: packages@univention.de\n"
5
"Report-Msgid-Bugs-To: packages@univention.de\n"
6
"POT-Creation-Date: 2011-11-16 04:14+0100\n"
6
"POT-Creation-Date: 2011-11-18 15:57+0100\n"
7
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
7
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
"Last-Translator: Frank Greif <fg@it25.de>\n"
8
"Last-Translator: Frank Greif <fg@it25.de>\n"
9
"Language-Team: LANGUAGE <LL@li.org>\n"
9
"Language-Team: LANGUAGE <LL@li.org>\n"
 Lines 16-22    Link Here 
16
msgid "... loading data ..."
16
msgid "... loading data ..."
17
msgstr "... Daten werden geladen ..."
17
msgstr "... Daten werden geladen ..."
18
18
19
#: umc/js/_updater/ProgressPage.js:374
19
#: umc/js/_updater/ProgressPage.js:326
20
msgid "... loading job data ..."
20
msgid "... loading job data ..."
21
msgstr "... Daten werden geladen ..."
21
msgstr "... Daten werden geladen ..."
22
22
 Lines 33-39    Link Here 
33
msgid "Add"
33
msgid "Add"
34
msgstr "Neu"
34
msgstr "Neu"
35
35
36
#: umc/js/_updater/DetailsPage.js:196
36
#: umc/js/_updater/DetailsPage.js:202
37
msgid "Add a new component"
37
msgid "Add a new component"
38
msgstr "Neue Komponente hinzufügen"
38
msgstr "Neue Komponente hinzufügen"
39
39
 Lines 45-51    Link Here 
45
msgid "Additional components"
45
msgid "Additional components"
46
msgstr "Zusätzliche Komponenten"
46
msgstr "Zusätzliche Komponenten"
47
47
48
#: umc/js/_updater/DetailsPage.js:150
48
#: umc/js/_updater/DetailsPage.js:149
49
msgid "Advanced settings"
49
msgid "Advanced settings"
50
msgstr "Weitere Einstellungen"
50
msgstr "Weitere Einstellungen"
51
51
 Lines 57-71    Link Here 
57
"Sie können die Management Console jetzt auch schließen, und später wieder "
57
"Sie können die Management Console jetzt auch schließen, und später wieder "
58
"öffnen."
58
"öffnen."
59
59
60
#: umc/js/_updater/SettingsPage.js:62 umc/js/_updater/DetailsPage.js:70
60
#: umc/js/_updater/DetailsPage.js:70 umc/js/_updater/SettingsPage.js:62
61
msgid "Apply changes"
61
msgid "Apply changes"
62
msgstr "Änderungen anwenden"
62
msgstr "Änderungen anwenden"
63
63
64
#: umc/js/_updater/ComponentsPage.js:316
64
#: umc/js/_updater/ComponentsPage.js:322
65
msgid "Are you sure you want to delete the following components: [{ids}]"
65
msgid "Are you sure you want to delete the following components: [{ids}]"
66
msgstr "Möchten Sie wirklich die folgenden Komponenten löschen: [{ids}]"
66
msgstr "Möchten Sie wirklich die folgenden Komponenten löschen: [{ids}]"
67
67
68
#: umc/js/_updater/ProgressPage.js:67
68
#: umc/js/_updater/ProgressPage.js:371
69
msgid ""
69
msgid ""
70
"As long as the Univention Updater is updating your system, you're not "
70
"As long as the Univention Updater is updating your system, you're not "
71
"allowed to manage settings or components. You may watch the progress, or "
71
"allowed to manage settings or components. You may watch the progress, or "
 Lines 87-98    Link Here 
87
msgid "Available system updates"
87
msgid "Available system updates"
88
msgstr "Verfügbare System-Updates"
88
msgstr "Verfügbare System-Updates"
89
89
90
#: umc/js/_updater/DetailsPage.js:141
90
#: umc/js/_updater/DetailsPage.js:140
91
msgid "Basic settings"
91
msgid "Basic settings"
92
msgstr "Allgemeine Einstellungen"
92
msgstr "Allgemeine Einstellungen"
93
93
94
#: umc/js/updater.js:303 umc/js/updater.js:380
94
#: umc/js/updater.js:303 umc/js/updater.js:380
95
#: umc/js/_updater/ComponentsPage.js:322
95
#: umc/js/_updater/ComponentsPage.js:328
96
msgid "Cancel"
96
msgid "Cancel"
97
msgstr "Abbrechen"
97
msgstr "Abbrechen"
98
98
 Lines 100-110    Link Here 
100
msgid "Check for package updates"
100
msgid "Check for package updates"
101
msgstr "Paket-Aktualisierungen prüfen"
101
msgstr "Paket-Aktualisierungen prüfen"
102
102
103
#: umc/js/_updater/DetailsPage.js:93 umc/js/_updater/ComponentsPage.js:183
103
#: umc/js/_updater/ComponentsPage.js:183 umc/js/_updater/DetailsPage.js:92
104
msgid "Component Name"
104
msgid "Component Name"
105
msgstr "Name der Komponente"
105
msgstr "Name der Komponente"
106
106
107
#: umc/js/_updater/DetailsPage.js:49 umc/js/_updater/ComponentsPage.js:50
107
#: umc/js/_updater/ComponentsPage.js:50 umc/js/_updater/DetailsPage.js:49
108
msgid "Components"
108
msgid "Components"
109
msgstr "Komponenten"
109
msgstr "Komponenten"
110
110
 Lines 118-127    Link Here 
118
"Die Verbindung zum Server wurde unterbrochen. Ein erneuter Verbindungsaufbau "
118
"Die Verbindung zum Server wurde unterbrochen. Ein erneuter Verbindungsaufbau "
119
"wird gestartet."
119
"wird gestartet."
120
120
121
#: umc/js/_updater/ProgressPage.js:256
122
msgid "Current status file content"
123
msgstr "Inhalt der Statusdatei"
124
125
#: umc/js/_updater/ComponentsPage.js:167
121
#: umc/js/_updater/ComponentsPage.js:167
126
msgid "Delete"
122
msgid "Delete"
127
msgstr "Löschen"
123
msgstr "Löschen"
 Lines 130-140    Link Here 
130
msgid "Delete the selected component definition"
126
msgid "Delete the selected component definition"
131
msgstr "Diese Komponente löschen"
127
msgstr "Diese Komponente löschen"
132
128
133
#: umc/js/_updater/ComponentsPage.js:325
129
#: umc/js/_updater/ComponentsPage.js:331
134
msgid "Delete!"
130
msgid "Delete!"
135
msgstr "Löschen!"
131
msgstr "Löschen!"
136
132
137
#: umc/js/_updater/DetailsPage.js:98
133
#: umc/js/_updater/DetailsPage.js:97
138
msgid "Description"
134
msgid "Description"
139
msgstr "Beschreibung"
135
msgstr "Beschreibung"
140
136
 Lines 193-199    Link Here 
193
msgid "Edit"
189
msgid "Edit"
194
msgstr "Bearbeiten"
190
msgstr "Bearbeiten"
195
191
196
#: umc/js/_updater/DetailsPage.js:219
192
#: umc/js/_updater/DetailsPage.js:225
197
msgid "Edit component details [{component}]"
193
msgid "Edit component details [{component}]"
198
msgstr "Komponenten-Details [{component}] bearbeiten"
194
msgstr "Komponenten-Details [{component}] bearbeiten"
199
195
 Lines 205-211    Link Here 
205
msgid "Enable"
201
msgid "Enable"
206
msgstr "Aktivieren"
202
msgstr "Aktivieren"
207
203
208
#: umc/js/_updater/DetailsPage.js:88
204
#: umc/js/_updater/DetailsPage.js:87
209
msgid "Enable this component"
205
msgid "Enable this component"
210
msgstr "Diese Komponente aktivieren"
206
msgstr "Diese Komponente aktivieren"
211
207
 Lines 273-282    Link Here 
273
"Tests in einer Testumgebung und die Erstellung einer Sicherung des Systems "
269
"Tests in einer Testumgebung und die Erstellung einer Sicherung des Systems "
274
"werden ebenfalls empfohlen."
270
"werden ebenfalls empfohlen."
275
271
276
#: umc/js/_updater/ProgressPage.js:314
272
#: umc/js/_updater/ProgressPage.js:275
277
msgid "It took {elapsed} to complete.<br/>"
273
msgid "It took {elapsed} to complete.<br/>"
278
msgstr "Er hat {elapsed} benötigt.<br/>"
274
msgstr "Er hat {elapsed} benötigt.<br/>"
279
275
276
#: umc/js/_updater/ProgressPage.js:76
277
msgid "Log file view"
278
msgstr "Protokoll"
279
280
#: umc/js/updater.js:361
280
#: umc/js/updater.js:361
281
msgid "Logfiles can be found in the directory /var/log/univention/."
281
msgid "Logfiles can be found in the directory /var/log/univention/."
282
msgstr "Logdateien können im Verzeichnis /var/log/univention/ gefunden werden."
282
msgstr "Logdateien können im Verzeichnis /var/log/univention/ gefunden werden."
 Lines 329-335    Link Here 
329
msgid "Package updates"
329
msgid "Package updates"
330
msgstr "Paketaktualisierungen"
330
msgstr "Paketaktualisierungen"
331
331
332
#: umc/js/_updater/DetailsPage.js:128
332
#: umc/js/_updater/DetailsPage.js:127
333
msgid "Password"
333
msgid "Password"
334
msgstr "Passwort"
334
msgstr "Passwort"
335
335
 Lines 346-359    Link Here 
346
"jeweiligen Update in dem <a href='http://forum.univention.de'>Univention "
346
"jeweiligen Update in dem <a href='http://forum.univention.de'>Univention "
347
"Forum</a>."
347
"Forum</a>."
348
348
349
#: umc/js/_updater/DetailsPage.js:197
349
#: umc/js/_updater/DetailsPage.js:203
350
msgid "Please enter the details for the new component."
350
msgid "Please enter the details for the new component."
351
msgstr "Bitte geben Sie die Details für die neue Komponente ein."
351
msgstr "Bitte geben Sie die Details für die neue Komponente ein."
352
352
353
#: umc/js/_updater/ProgressPage.js:76
354
msgid "Progress information"
355
msgstr "Aktueller Vorgang"
356
357
#: umc/js/_updater/UpdatesPage.js:282
353
#: umc/js/_updater/UpdatesPage.js:282
358
msgid "Reboot"
354
msgid "Reboot"
359
msgstr "Neu starten"
355
msgstr "Neu starten"
 Lines 378-399    Link Here 
378
msgid "Release updates"
374
msgid "Release updates"
379
msgstr "Release-Aktualisierungen"
375
msgstr "Release-Aktualisierungen"
380
376
381
#: umc/js/_updater/DetailsPage.js:108
377
#: umc/js/_updater/DetailsPage.js:107 umc/js/_updater/SettingsPage.js:86
382
msgid "Repository prefix"
378
msgid "Repository prefix"
383
msgstr "Repository-Prefix"
379
msgstr "Repository prefix"
384
380
385
#: umc/js/_updater/DetailsPage.js:103
381
#: umc/js/_updater/DetailsPage.js:102 umc/js/_updater/SettingsPage.js:81
386
msgid "Repository server"
382
msgid "Repository server"
387
msgstr "Repository-Server"
383
msgstr "Repository server"
388
384
389
#: umc/js/_updater/SettingsPage.js:86
390
msgid "Repository prefix"
391
msgstr "Repository-Prefix"
392
393
#: umc/js/_updater/SettingsPage.js:81
394
msgid "Repository server"
395
msgstr "Repository-Server"
396
397
#: umc/js/_updater/SettingsPage.js:54
385
#: umc/js/_updater/SettingsPage.js:54
398
msgid "Reset"
386
msgid "Reset"
399
msgstr "Zurücksetzen"
387
msgstr "Zurücksetzen"
 Lines 435-441    Link Here 
435
"Verbindung wieder aufzunehmen. Wahrscheinlich müssen Sie sich neu anmelden, "
423
"Verbindung wieder aufzunehmen. Wahrscheinlich müssen Sie sich neu anmelden, "
436
"wenn die Verbindung wieder hergestellt ist."
424
"wenn die Verbindung wieder hergestellt ist."
437
425
438
#: umc/js/_updater/ProgressPage.js:311
426
#: umc/js/_updater/ProgressPage.js:272
439
msgid "The current job (<b>{label}</b>) is now finished.<br/>"
427
msgid "The current job (<b>{label}</b>) is now finished.<br/>"
440
msgstr "Der aktuelle Vorgang (<b>{label}</b>) ist jetzt beendet.<br/>"
428
msgstr "Der aktuelle Vorgang (<b>{label}</b>) ist jetzt beendet.<br/>"
441
429
 Lines 455-461    Link Here 
455
"Der Univention Updater konnte nicht gestartet werden [Fehler {status}]: "
443
"Der Univention Updater konnte nicht gestartet werden [Fehler {status}]: "
456
"{message}"
444
"{message}"
457
445
458
#: umc/js/_updater/ProgressPage.js:183
446
#: umc/js/_updater/ProgressPage.js:182
459
msgid "The job <b>{label}</b> (started {elapsed} ago) is currently running."
447
msgid "The job <b>{label}</b> (started {elapsed} ago) is currently running."
460
msgstr ""
448
msgstr ""
461
"Momentan läuft der Aktualisierungsauftrag <b>{label}</b> (gestartet vor "
449
"Momentan läuft der Aktualisierungsauftrag <b>{label}</b> (gestartet vor "
 Lines 514-523    Link Here 
514
msgid "Thus, updates shouldn't be installed on a live system. "
502
msgid "Thus, updates shouldn't be installed on a live system. "
515
msgstr "Deshalb sollten Sie das Update nicht im laufenden Betrieb einspielen. "
503
msgstr "Deshalb sollten Sie das Update nicht im laufenden Betrieb einspielen. "
516
504
517
#: umc/js/_updater/ProgressPage.js:66
505
#: umc/js/_updater/ProgressPage.js:381
506
msgid ""
507
"Univention Updater could not successfully complete the current job. The log "
508
"file should show the cause of the failure. If you're finished examining the "
509
"log file you may press the 'back to overview' button to close this view."
510
msgstr ""
511
"Univention Updater konnte den aktuellen Auftrag nicht erfolgreich "
512
"abschließen. Im Protokoll sollten Sie die Ursache des Fehlschlages sehen "
513
"können. Der Knopf 'zurück zur Übersicht' schließt die aktuelle Ansicht."
514
515
#: umc/js/_updater/ProgressPage.js:376
516
msgid ""
517
"Univention Updater has successfully finished the current job. You may read "
518
"through the log file. If you're finished you may press the 'back to "
519
"overview' button to close this view."
520
msgstr ""
521
"Univention Updater hat den aktuellen Auftrag erfolgreich abgeschlossen. "
522
523
#: umc/js/_updater/ProgressPage.js:370
518
msgid "Univention Updater is working"
524
msgid "Univention Updater is working"
519
msgstr "Univention Updater ist gerade aktiv"
525
msgstr "Univention Updater ist gerade aktiv"
520
526
527
#: umc/js/_updater/ProgressPage.js:375
528
msgid "Univention Updater job completed"
529
msgstr "Univention Updater Auftrag abgeschlossen"
530
531
#: umc/js/_updater/ProgressPage.js:380
532
msgid "Univention Updater job failed"
533
msgstr "Univention Updater Auftrag ist fehlgeschlagen"
534
521
#: umc/js/_updater/ComponentsPage.js:218
535
#: umc/js/_updater/ComponentsPage.js:218
522
msgid "Unknown"
536
msgid "Unknown"
523
msgstr "Unbekannt"
537
msgstr "Unbekannt"
 Lines 526-532    Link Here 
526
msgid "Update availability could not be checked."
540
msgid "Update availability could not be checked."
527
msgstr "Verfügbarkeit von Aktualisierungen konnte nicht geprüft werden."
541
msgstr "Verfügbarkeit von Aktualisierungen konnte nicht geprüft werden."
528
542
529
#: umc/js/_updater/ProgressPage.js:65
543
#: umc/js/_updater/ProgressPage.js:379
544
msgid "Update failed"
545
msgstr "Aktualisierung fehlgeschlagen"
546
547
#: umc/js/_updater/ProgressPage.js:374
548
msgid "Update finished"
549
msgstr "Aktualisierung abgeschlossen"
550
551
#: umc/js/_updater/ProgressPage.js:369
530
msgid "Update in progress"
552
msgid "Update in progress"
531
msgstr "Aktualisierung läuft"
553
msgstr "Aktualisierung läuft"
532
554
 Lines 542-560    Link Here 
542
msgid "Updates"
564
msgid "Updates"
543
msgstr "Aktualisierungen"
565
msgstr "Aktualisierungen"
544
566
545
#: umc/js/_updater/SettingsPage.js:91 umc/js/_updater/DetailsPage.js:113
567
#: umc/js/_updater/DetailsPage.js:112 umc/js/_updater/SettingsPage.js:91
546
msgid "Use maintained repositories"
568
msgid "Use maintained repositories"
547
msgstr "'Maintained' Repositories benutzen"
569
msgstr "'Maintained' Repositories benutzen"
548
570
549
#: umc/js/_updater/SettingsPage.js:96 umc/js/_updater/DetailsPage.js:118
571
#: umc/js/_updater/DetailsPage.js:117 umc/js/_updater/SettingsPage.js:96
550
msgid "Use unmaintained repositories"
572
msgid "Use unmaintained repositories"
551
msgstr "'Unmaintained' Repositories benutzen"
573
msgstr "'Unmaintained' Repositories benutzen"
552
574
553
#: umc/js/_updater/DetailsPage.js:123
575
#: umc/js/_updater/DetailsPage.js:122
554
msgid "Username"
576
msgid "Username"
555
msgstr "Benutzername"
577
msgstr "Benutzername"
556
578
557
#: umc/js/_updater/DetailsPage.js:133
579
#: umc/js/_updater/DetailsPage.js:132
558
msgid "Version"
580
msgid "Version"
559
msgstr "Version"
581
msgstr "Version"
560
582
 Lines 566-582    Link Here 
566
"Wenn die Verbindung wieder hergestellt ist, werden Sie aufgefordert, sich "
588
"Wenn die Verbindung wieder hergestellt ist, werden Sie aufgefordert, sich "
567
"noch einmal neu anzumelden."
589
"noch einmal neu anzumelden."
568
590
569
#: umc/js/_updater/ProgressPage.js:316
591
#: umc/js/_updater/ProgressPage.js:277
570
msgid "You may return to the overview by clicking the 'back' button now."
592
msgid "You may return to the overview by clicking the 'back' button now."
571
msgstr ""
593
msgstr ""
572
"Sie können jetzt zur Übersicht zurückkehren, indem Sie den 'Zurück'-Knopf "
594
"Sie können jetzt zur Übersicht zurückkehren, indem Sie den 'Zurück'-Knopf "
573
"drücken."
595
"drücken."
574
596
575
#: umc/js/_updater/ProgressPage.js:187
597
#: umc/js/_updater/ProgressPage.js:186
576
msgid "You're currently watching its log file <b>{logfile}</b>"
598
msgid "You're currently watching its log file <b>{logfile}</b>"
577
msgstr "Sie sehen die Protokolldatei <b>{logfile}</b>"
599
msgstr "Sie sehen die Protokolldatei <b>{logfile}</b>"
578
600
579
#: umc/js/_updater/DetailsPage.js:220
601
#: umc/js/_updater/DetailsPage.js:226
580
msgid "You're editing the details of the component definition."
602
msgid "You're editing the details of the component definition."
581
msgstr "Sie bearbeiten die Details der Komponenten-Definition."
603
msgstr "Sie bearbeiten die Details der Komponenten-Definition."
582
604
 Lines 592-598    Link Here 
592
msgid "Your system is at errata level {erratalevel}."
614
msgid "Your system is at errata level {erratalevel}."
593
msgstr "Ihr System ist auf dem Errata-Level {erratalevel}."
615
msgstr "Ihr System ist auf dem Errata-Level {erratalevel}."
594
616
595
#: umc/js/_updater/DetailsPage.js:55 umc/js/_updater/ProgressPage.js:102
617
#: umc/js/_updater/ProgressPage.js:102 umc/js/_updater/DetailsPage.js:55
596
msgid "back to overview"
618
msgid "back to overview"
597
msgstr "zurück zur Übersicht"
619
msgstr "zurück zur Übersicht"
598
620
 Lines 611-616    Link Here 
611
#: umc/js/_updater/UpdatesPage.js:436
633
#: umc/js/_updater/UpdatesPage.js:436
612
msgid "{enabled} of them are currently enabled."
634
msgid "{enabled} of them are currently enabled."
613
msgstr "Davon sind {enabled} Komponenten aktiviert."
635
msgstr "Davon sind {enabled} Komponenten aktiviert."
614
615
#~ msgid "Use hotfix repositories"
616
#~ msgstr "'Hotfix' Repositories benutzen"

Return to bug 22898