aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/message_parser.php
blob: 44bebc20c69893e6a1f502ed96ba65a077ab679c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
<?php
/** 
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

if (!class_exists('bbcode'))
{
	include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
}

/**
* BBCODE FIRSTPASS
* BBCODE first pass class (functions for parsing messages for db storage)
* @package phpBB3
*/
class bbcode_firstpass extends bbcode
{
	var $message = '';
	var $warn_msg = array();
	var $parsed_items = array();

	/**
	* Parse BBCode
	*/
	function parse_bbcode()
	{
		if (!$this->bbcodes)
		{
			$this->bbcode_init();
		}

		global $user;

		$this->bbcode_bitfield = '';
		$bitfield = new bitfield();

		foreach ($this->bbcodes as $bbcode_name => $bbcode_data)
		{
			if (isset($bbcode_data['disabled']) && $bbcode_data['disabled'])
			{
				foreach ($bbcode_data['regexp'] as $regexp => $replacement)
				{
					if (preg_match($regexp, $this->message))
					{
						$this->warn_msg[] = sprintf($user->lang['UNAUTHORISED_BBCODE'] , '[' . $bbcode_name . ']');
						continue;
					}
				}
			}
			else
			{
				foreach ($bbcode_data['regexp'] as $regexp => $replacement)
				{
					// The pattern gets compiled and cached by the PCRE extension,
					// it should not demand recompilation
					if (preg_match($regexp, $this->message))
					{
						$this->message = preg_replace($regexp, $replacement, $this->message);
						$bitfield->set($bbcode_data['bbcode_id']);
					}
				}
			}
		}

		$this->bbcode_bitfield = $bitfield->get_base64();
	}

	/**
	* Prepare some bbcodes for better parsing
	*/
	function prepare_bbcodes()
	{
		// Add newline at the end and in front of each quote block to prevent parsing errors (urls, smilies, etc.)
		if (strpos($this->message, '[quote') !== false && strpos($this->message, '[/quote]') !== false)
		{
			$this->message = str_replace("\r\n", "\n", $this->message);

			// We strip newlines and spaces after and before quotes in quotes (trimming) and then add exactly one newline
			$this->message = preg_replace('#\[quote(=&quot;.*?&quot;)?\]\s*(.*?)\s*\[/quote\]#siu', '[quote\1]' . "\n" . '\2' ."\n[/quote]", $this->message);
		}

		// Add other checks which needs to be placed before actually parsing anything (be it bbcodes, smilies, urls...)
	}

	/**
	* Init bbcode data for later parsing
	*/
	function bbcode_init()
	{
		static $rowset;

		// This array holds all bbcode data. BBCodes will be processed in this
		// order, so it is important to keep [code] in first position and
		// [quote] in second position.
		$this->bbcodes = array(
			'code'			=> array('bbcode_id' => 8,	'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#ise' => "\$this->bbcode_code('\$1', '\$2')")),
			'quote'			=> array('bbcode_id' => 0,	'regexp' => array('#\[quote(?:=&quot;(.*?)&quot;)?\](.+)\[/quote\]#ise' => "\$this->bbcode_quote('\$0')")),
			'attachment'	=> array('bbcode_id' => 12,	'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#ise' => "\$this->bbcode_attachment('\$1', '\$2')")),
			'b'				=> array('bbcode_id' => 1,	'regexp' => array('#\[b\](.*?)\[/b\]#ise' => "\$this->bbcode_strong('\$1')")),
			'i'				=> array('bbcode_id' => 2,	'regexp' => array('#\[i\](.*?)\[/i\]#ise' => "\$this->bbcode_italic('\$1')")),
			'url'			=> array('bbcode_id' => 3,	'regexp' => array('#\[url(=(.*))?\](.*)\[/url\]#iUe' => "\$this->validate_url('\$2', '\$3')")),
			'img'			=> array('bbcode_id' => 4,	'regexp' => array('#\[img\](https?://)([a-z0-9\-\.,\?!%\*_:;~\\&$@/=\+]+)\[/img\]#ie' => "\$this->bbcode_img('\$1\$2')")),
			'size'			=> array('bbcode_id' => 5,	'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#ise' => "\$this->bbcode_size('\$1', '\$2')")),
			'color'			=> array('bbcode_id' => 6,	'regexp' => array('!\[color=(#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!ise' => "\$this->bbcode_color('\$1', '\$2')")),
			'u'				=> array('bbcode_id' => 7,	'regexp' => array('#\[u\](.*?)\[/u\]#ise' => "\$this->bbcode_underline('\$1')")),
			'list'			=> array('bbcode_id' => 9,	'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#ise' => "\$this->bbcode_parse_list('\$0')")),
			'email'			=> array('bbcode_id' => 10,	'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#ise' => "\$this->validate_email('\$1', '\$2')")),
			'flash'			=> array('bbcode_id' => 11,	'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1', '\$2', '\$3')"))
		);

		// Zero the parsed items array
		$this->parsed_items = array();

		foreach ($this->bbcodes as $tag => $bbcode_data)
		{
			$this->parsed_items[$tag] = 0;
		}

		if (!is_array($rowset))
		{
			global $db;
			$rowset = array();

			$sql = 'SELECT *
				FROM ' . BBCODES_TABLE;
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$rowset[] = $row;
			}
			$db->sql_freeresult($result);
		}

		foreach ($rowset as $row)
		{
			$this->bbcodes[$row['bbcode_tag']] = array(
				'bbcode_id'	=> (int) $row['bbcode_id'],
				'regexp'	=> array($row['first_pass_match'] => str_replace('$uid', $this->bbcode_uid, $row['first_pass_replace']))
			);
		}
	}

	/**
	* Making some pre-checks for bbcodes as well as increasing the number of parsed items
	*/
	function check_bbcode($bbcode, &$in)
	{
		// when using the /e modifier, preg_replace slashes double-quotes but does not
		// seem to slash anything else
		$in = str_replace("\r\n", "\n", str_replace('\"', '"', $in));

		// Trimming here to make sure no empty bbcodes are parsed accidently
		if (trim($in) == '')
		{
			return false;
		}

		$this->parsed_items[$bbcode]++;

		return true;
	}

	/**
	* Transform some characters in valid bbcodes
	*/
	function bbcode_specialchars($text)
	{
		$str_from = array('<', '>', '[', ']', '.', ':');
		$str_to = array('&lt;', '&gt;', '&#91;', '&#93;', '&#46;', '&#58;');

		return str_replace($str_from, $str_to, $text);
	}

	/**
	* Parse size tag
	*/
	function bbcode_size($stx, $in)
	{
		global $user, $config;

		if (!$this->check_bbcode('size', $in))
		{
			return '';
		}

		if ($config['max_' . $this->mode . '_font_size'] && $config['max_' . $this->mode . '_font_size'] < $stx)
		{
			$this->warn_msg[] = sprintf($user->lang['MAX_FONT_SIZE_EXCEEDED'], $config['max_' . $this->mode . '_font_size']);

			return '[size=' . $stx . ']' . $in . '[/size]';
		}

		return '[size=' . $stx . ':' . $this->bbcode_uid . ']' . $in . '[/size:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse color tag
	*/
	function bbcode_color($stx, $in)
	{
		if (!$this->check_bbcode('color', $in))
		{
			return '';
		}

		return '[color=' . $stx . ':' . $this->bbcode_uid . ']' . $in . '[/color:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse u tag
	*/
	function bbcode_underline($in)
	{
		if (!$this->check_bbcode('u', $in))
		{
			return '';
		}

		return '[u:' . $this->bbcode_uid . ']' . $in . '[/u:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse b tag
	*/
	function bbcode_strong($in)
	{
		if (!$this->check_bbcode('b', $in))
		{
			return '';
		}

		return '[b:' . $this->bbcode_uid . ']' . $in . '[/b:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse i tag
	*/
	function bbcode_italic($in)
	{
		if (!$this->check_bbcode('i', $in))
		{
			return '';
		}

		return '[i:' . $this->bbcode_uid . ']' . $in . '[/i:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse img tag
	*/
	function bbcode_img($in)
	{
		global $user, $config;

		if (!$this->check_bbcode('img', $in))
		{
			return '';
		}

		$in = trim($in);
		$error = false;

		if ($config['max_' . $this->mode . '_img_height'] || $config['max_' . $this->mode . '_img_width'])
		{
			$stats = getimagesize($in);

			if ($stats === false)
			{
				$error = true;
				$this->warn_msg[] = $user->lang['UNABLE_GET_IMAGE_SIZE'];
			}
			else
			{
				if ($config['max_' . $this->mode . '_img_height'] && $config['max_' . $this->mode . '_img_height'] < $stats[1])
				{
					$error = true;
					$this->warn_msg[] = sprintf($user->lang['MAX_IMG_HEIGHT_EXCEEDED'], $config['max_' . $this->mode . '_img_height']);
				}

				if ($config['max_' . $this->mode . '_img_width'] && $config['max_' . $this->mode . '_img_width'] < $stats[0])
				{
					$error = true;
					$this->warn_msg[] = sprintf($user->lang['MAX_IMG_WIDTH_EXCEEDED'], $config['max_' . $this->mode . '_img_width']);
				}
			}
		}

		if ($error || $this->path_in_domain($in))
		{
			return '[img]' . $in . '[/img]';
		}

		return '[img:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($in) . '[/img:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse flash tag
	*/
	function bbcode_flash($width, $height, $in)
	{
		global $user, $config;

		if (!$this->check_bbcode('flash', $in))
		{
			return '';
		}

		$in = trim($in);
		$error = false;

		// Apply the same size checks on flash files as on images
		if ($config['max_' . $this->mode . '_img_height'] || $config['max_' . $this->mode . '_img_width'])
		{
			if ($config['max_' . $this->mode . '_img_height'] && $config['max_' . $this->mode . '_img_height'] < $height)
			{
				$error = true;
				$this->warn_msg[] = sprintf($user->lang['MAX_FLASH_HEIGHT_EXCEEDED'], $config['max_' . $this->mode . '_img_height']);
			}

			if ($config['max_' . $this->mode . '_img_width'] && $config['max_' . $this->mode . '_img_width'] < $width)
			{
				$error = true;
				$this->warn_msg[] = sprintf($user->lang['MAX_FLASH_WIDTH_EXCEEDED'], $config['max_' . $this->mode . '_img_width']);
			}
		}

		if ($error || $this->path_in_domain($in))
		{
			return '[flash=' . $width . ',' . $height . ']' . $in . '[/flash]';
		}

		return '[flash=' . $width . ',' . $height . ':' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($in) . '[/flash:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse inline attachments [ia]
	*/
	function bbcode_attachment($stx, $in)
	{
		if (!$this->check_bbcode('attachment', $in))
		{
			return '';
		}

		return '[attachment=' . $stx . ':' . $this->bbcode_uid . ']<!-- ia' . $stx . ' -->' . trim($in) . '<!-- ia' . $stx . ' -->[/attachment:' . $this->bbcode_uid . ']';
	}

	/**
	* Parse code tag
	* Expects the argument to start right after the opening [code] tag and to end with [/code]
	*/
	function bbcode_code($stx, $in)
	{
		if (!$this->check_bbcode('code', $in))
		{
			return '';
		}

		// We remove the hardcoded elements from the code block here because it is not used in code blocks
		// Having it here saves us one preg_replace per message containing [code] blocks
		// Additionally, magic url parsing should go after parsing bbcodes, but for safety those are stripped out too...
		$htm_match = get_preg_expression('bbcode_htm');
//		$htm_match[3] = '/&#([0-9]+);/';
		unset($htm_match[4], $htm_match[5]);

		$htm_replace = array('\1', '\1', '\2', '\1'); //, '&amp;#\1;');

		$out = '';

		do
		{
			$pos = stripos($in, '[/code]') + 7;
			$code = substr($in, 0, $pos);
			$in = substr($in, $pos);
			
			// $code contains everything that was between code tags (including the ending tag) but we're trying to grab as much extra text as possible, as long as it does not contain open [code] tags
			while ($in)
			{
				$pos = stripos($in, '[/code]') + 7;
				$buffer = substr($in, 0, $pos);

				if (preg_match('#\[code(?:=([a-z]+))?\]#i', $buffer))
				{
					break;
				}
				else
				{
					$in = substr($in, $pos);
					$code .= $buffer;
				}
			}

			$code = substr($code, 0, -7);
//			$code = preg_replace('#^[\r\n]*(.*?)[\n\r\s\t]*$#s', '$1', $code);
			$code = preg_replace($htm_match, $htm_replace, $code);

			switch (strtolower($stx))
			{
				case 'php':

					$remove_tags = false;
					$code = str_replace(array('&lt;', '&gt;'), array('<', '>'), $code);

					if (!preg_match('/\<\?.*?\?\>/is', $code))
					{
						$remove_tags = true;
						$code = "<?php $code ?>";
					}

					$conf = array('highlight.bg', 'highlight.comment', 'highlight.default', 'highlight.html', 'highlight.keyword', 'highlight.string');
					foreach ($conf as $ini_var)
					{
						@ini_set($ini_var, str_replace('highlight.', 'syntax', $ini_var));
					}

					// Because highlight_string is specialcharing the text (but we already did this before), we have to reverse this in order to get correct results
					$code = htmlspecialchars_decode($code);
					$code = highlight_string($code, true);

					$str_from = array('<span style="color: ', '<font color="syntax', '</font>', '<code>', '</code>','[', ']', '.', ':');
					$str_to = array('<span class="', '<span class="syntax', '</span>', '', '', '&#91;', '&#93;', '&#46;', '&#58;');

					if ($remove_tags)
					{
						$str_from[] = '<span class="syntaxdefault">&lt;?php </span>';
						$str_to[] = '';
						$str_from[] = '<span class="syntaxdefault">&lt;?php&nbsp;';
						$str_to[] = '<span class="syntaxdefault">';
					}

					$code = str_replace($str_from, $str_to, $code);
					$code = preg_replace('#^(<span class="[a-z_]+">)\n?(.*?)\n?(</span>)$#is', '$1$2$3', $code);

					if ($remove_tags)
					{
						$code = preg_replace('#(<span class="[a-z]+">)?\?&gt;</span>#', '', $code);
					}

					$code = preg_replace('#^<span class="[a-z]+"><span class="([a-z]+)">(.*)</span></span>#s', '<span class="$1">$2</span>', $code);
					$code = preg_replace('#(?:[\n\r\s\t]|&nbsp;)*</span>$#u', '</span>', $code);

					// remove newline at the end
					if (!empty($code) && $code[strlen($code) - 1] == "\n")
					{
						$code = substr($code, 0, -1);
					}

					$out .= "[code=$stx:" . $this->bbcode_uid . ']' . $code . '[/code:' . $this->bbcode_uid . ']';
				break;

				default:
					$out .= '[code:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($code) . '[/code:' . $this->bbcode_uid . ']';
				break;
			}

			if (preg_match('#(.*?)\[code(?:=([a-z]+))?\](.+)#is', $in, $m))
			{
				$out .= $m[1];
				$stx = $m[2];
				$in = $m[3];
			}
		}
		while ($in);

		return $out;
	}

	/**
	* Parse list bbcode
	* Expects the argument to start with a tag
	*/
	function bbcode_parse_list($in)
	{
		if (!$this->check_bbcode('list', $in))
		{
			return '';
		}

		// $tok holds characters to stop at. Since the string starts with a '[' we'll get everything up to the first ']' which should be the opening [list] tag
		$tok = ']';
		$out = '[';

		// First character is [
		$in = substr($in, 1);
		$list_end_tags = $item_end_tags = array();

		do
		{
			$pos = strlen($in);

			for ($i = 0, $tok_len = strlen($tok); $i < $tok_len; ++$i)
			{
				$tmp_pos = strpos($in, $tok[$i]);

				if ($tmp_pos !== false && $tmp_pos < $pos)
				{
					$pos = $tmp_pos;
				}
			}

			$buffer = substr($in, 0, $pos);
			$tok = $in[$pos];

			$in = substr($in, $pos + 1);

			if ($tok == ']')
			{
				// if $tok is ']' the buffer holds a tag
				if (strtolower($buffer) == '/list' && sizeof($list_end_tags))
				{
					// valid [/list] tag, check nesting so that we don't hit false positives
					if (sizeof($item_end_tags) && sizeof($item_end_tags) >= sizeof($list_end_tags))
					{
						// current li tag has not been closed
						$out = preg_replace('/\n?\[$/', '[', $out) . array_pop($item_end_tags) . '][';
					}

					$out .= array_pop($list_end_tags) . ']';
					$tok = '[';
				}
				else if (preg_match('#^list(=[0-9a-z])?$#i', $buffer, $m))
				{
					// sub-list, add a closing tag
					if (empty($m[1]) || preg_match('/^(?:disc|square|circle)$/i', $m[1]))
					{
						array_push($list_end_tags, '/list:u:' . $this->bbcode_uid);
					}
					else
					{
						array_push($list_end_tags, '/list:o:' . $this->bbcode_uid);
					}
					$out .= $buffer . ':' . $this->bbcode_uid . ']';
					$tok = '[';
				}
				else
				{
					if (($buffer == '*' || substr($buffer, -2) == '[*') && sizeof($list_end_tags))
					{
						// the buffer holds a bullet tag and we have a [list] tag open
						if (sizeof($item_end_tags) >= sizeof($list_end_tags))
						{
							if (substr($buffer, -2) == '[*')
							{
								$out .= substr($buffer, 0, -2) . '[';
							}
							// current li tag has not been closed
							if (preg_match('/\n\[$/', $out, $m))
							{
								$out = preg_replace('/\n\[$/', '[', $out);
								$buffer = array_pop($item_end_tags) . "]\n[*:" . $this->bbcode_uid;
							}
							else
							{
								$buffer = array_pop($item_end_tags) . '][*:' . $this->bbcode_uid;
							}
						}
						else
						{
							$buffer = '*:' . $this->bbcode_uid;
						}

						$item_end_tags[] = '/*:m:' . $this->bbcode_uid;
					}
					else if ($buffer == '/*')
					{
						array_pop($item_end_tags);
						$buffer = '/*:' . $this->bbcode_uid;
					}

					$out .= $buffer . $tok;
					$tok = '[]';
				}
			}
			else
			{
				// Not within a tag, just add buffer to the return string
				$out .= $buffer . $tok;
				$tok = ($tok == '[') ? ']' : '[]';
			}
		}
		while ($in);

		// do we have some tags open? close them now
		if (sizeof($item_end_tags))
		{
			$out .= '[' . implode('][', $item_end_tags) . ']';
		}
		if (sizeof($list_end_tags))
		{
			$out .= '[' . implode('][', $list_end_tags) . ']';
		}

		return $out;
	}

	/**
	* Parse quote bbcode
	* Expects the argument to start with a tag
	*/
	function bbcode_quote($in)
	{
		global $config, $user;

		$in = str_replace("\r\n", "\n", str_replace('\"', '"', trim($in)));

		if (!$in)
		{
			return '';
		}

		$tok = ']';
		$out = '[';

		$in = substr($in, 1);
		$close_tags = $error_ary = array();
		$buffer = '';

		do
		{
			$pos = strlen($in);
			for ($i = 0, $tok_len = strlen($tok); $i < $tok_len; ++$i)
			{
				$tmp_pos = strpos($in, $tok[$i]);
				if ($tmp_pos !== false && $tmp_pos < $pos)
				{
					$pos = $tmp_pos;
				}
			}

			$buffer .= substr($in, 0, $pos);
			$tok = $in[$pos];
			$in = substr($in, $pos + 1);

			if ($tok == ']')
			{
				if ($buffer == '/quote' && sizeof($close_tags))
				{
					// we have found a closing tag
					$out .= array_pop($close_tags) . ']';
					$tok = '[';
					$buffer = '';

					// Add space at the end of the closing tag if not happened before to allow following urls/smilies to be parsed correctly
					if (!$in || $in[0] !== ' ')
					{
						$out .= ' ';
					}
				}
				else if (preg_match('#^quote(?:=&quot;(.*?)&quot;)?$#is', $buffer, $m))
				{
					$this->parsed_items['quote']++;

					// the buffer holds a valid opening tag
					if ($config['max_quote_depth'] && sizeof($close_tags) >= $config['max_quote_depth'])
					{
						// there are too many nested quotes
						$error_ary['quote_depth'] = sprintf($user->lang['QUOTE_DEPTH_EXCEEDED'], $config['max_quote_depth']);

						$out .= $buffer . $tok;
						$tok = '[]';
						$buffer = '';

						continue;
					}

					array_push($close_tags, '/quote:' . $this->bbcode_uid);

					if (isset($m[1]) && $m[1])
					{
						$username = preg_replace('#\[(?!b|i|u|color|url|email|/b|/i|/u|/color|/url|/email)#iU', '&#91;$1', $m[1]);
						$end_tags = array();
						$error = false;

						preg_match_all('#\[((?:/)?(?:[a-z]+))#i', $username, $tags);
						foreach ($tags[1] as $tag)
						{
							if ($tag[0] != '/')
							{
								$end_tags[] = '/' . $tag;
							}
							else
							{
								$end_tag = array_pop($end_tags);
								$error = ($end_tag != $tag) ? true : false;
							}
						}

						if ($error)
						{
							$username = str_replace('[', '&#91;', str_replace(']', '&#93;', $m[1]));
						}

						$out .= 'quote=&quot;' . $username . '&quot;:' . $this->bbcode_uid . ']';
					}
					else
					{
						$out .= 'quote:' . $this->bbcode_uid . ']';
					}

					$tok = '[';
					$buffer = '';
				}
				else if (preg_match('#^quote=&quot;(.*?)#is', $buffer, $m))
				{
					// the buffer holds an invalid opening tag
					$buffer .= ']';
				}
				else
				{
					$out .= $buffer . $tok;
					$tok = '[]';
					$buffer = '';
				}
			}
			else
			{
/**
*				Old quote code working fine, but having errors listed in bug #3572
*
*				$out .= $buffer . $tok;
*				$tok = ($tok == '[') ? ']' : '[]';
*				$buffer = '';
*/

				$out .= $buffer . $tok;

				if ($tok == '[')
				{
					// Search the text for the next tok... if an ending quote comes first, then change tok to []
					$pos1 = strpos($in, '[/quote');
					$pos2 = strpos($in, ']');

					if ($pos1 !== false && ($pos2 === false || $pos1 < $pos2))
					{
						$tok = '[]';
					}
					else
					{
						$tok = ']';
					}
				}
				else
				{
					$tok = '[]';
				}
				$buffer = '';
			}
		}
		while ($in);

		if (sizeof($close_tags))
		{
			$out .= '[' . implode('][', $close_tags) . ']';
		}

		foreach ($error_ary as $error_msg)
		{
			$this->warn_msg[] = $error_msg;
		}

		return $out;
	}

	/**
	* Validate email
	*/
	function validate_email($var1, $var2)
	{
		$var1 = str_replace("\r\n", "\n", str_replace('\"', '"', trim($var1)));
		$var2 = str_replace("\r\n", "\n", str_replace('\"', '"', trim($var2)));

		$txt = $var2;
		$email = ($var1) ? $var1 : $var2;

		$validated = true;

		if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email))
		{
			$validated = false;
		}

		if (!$validated)
		{
			return '[email' . (($var1) ? "=$var1" : '') . ']' . $var2 . '[/email]';
		}

		$this->parsed_items['email']++;

		if ($var1)
		{
			$retval = '[email=' . $this->bbcode_specialchars($email) . ':' . $this->bbcode_uid . ']' . $txt . '[/email:' . $this->bbcode_uid . ']';
		}
		else
		{
			$retval = '[email:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($email) . '[/email:' . $this->bbcode_uid . ']';
		}

		return $retval;
	}

	/**
	* Validate url
	*
	* @param string $var1 optional url parameter for url bbcode: [url(=$var1)]$var2[/url]
	* @param string $var2 url bbcode content: [url(=$var1)]$var2[/url] 
	*/
	function validate_url($var1, $var2)
	{
		global $config;

		$var1 = str_replace("\r\n", "\n", str_replace('\"', '"', trim($var1)));
		$var2 = str_replace("\r\n", "\n", str_replace('\"', '"', trim($var2)));

		$url = ($var1) ? $var1 : $var2;

		if (!$url || ($var1 && !$var2))
		{
			return '';
		}

		$valid = false;

		$url = str_replace(' ', '%20', $url);

		// Checking urls
		if (preg_match('#^' . get_preg_expression('url') . '$#i', $url) ||
			preg_match('#^' . get_preg_expression('www_url') . '$#i', $url) ||
			preg_match('#^' . preg_quote(generate_board_url(), '#') . get_preg_expression('relative_url') . '$#i', $url))
		{
			$valid = true;
		}

		if ($valid)
		{
			$this->parsed_items['url']++;

			// if there is no scheme, then add http schema
			if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}#i', $url))
			{
				$url = 'http://' . $url;
			}

			// Is this a link to somewhere inside this board? If so then remove the session id from the url
			if (strpos($url, generate_board_url()) !== false && strpos($url, 'sid=') !== false)
			{
				$url = preg_replace('/(&amp;|\?)sid=[0-9a-f]{32}&amp;/', '\1', $url);
				$url = preg_replace('/(&amp;|\?)sid=[0-9a-f]{32}$/', '', $url);
				$url = append_sid($url);
			}

			return ($var1) ? '[url=' . $this->bbcode_specialchars($url) . ':' . $this->bbcode_uid . ']' . $var2 . '[/url:' . $this->bbcode_uid . ']' : '[url:' . $this->bbcode_uid . ']' . $this->bbcode_specialchars($url) . '[/url:' . $this->bbcode_uid . ']'; 
		}

		return '[url' . (($var1) ? '=' . $var1 : '') . ']' . $var2 . '[/url]';
	}

	/**
	* Check if url is pointing to this domain/script_path/php-file
	*
	* @param string $url the url to check
	* @return true if the url is pointing to this domain/script_path/php-file, false if not
	*
	* @access private
	*/
	function path_in_domain($url)
	{
		global $config, $phpEx, $user;

		if ($config['force_server_vars'])
		{
			$check_path = $config['script_path'];
		}
		else
		{
			$check_path = ($user->page['root_script_path'] != '/') ? substr($user->page['root_script_path'], 0, -1) : '/';
		}

		// Is the user trying to link to a php file in this domain and script path?
		if (strpos($url, ".{$phpEx}") !== false && strpos($url, $check_path) !== false)
		{
			$server_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME');

			// Forcing server vars is the only way to specify/override the protocol
			if ($config['force_server_vars'] || !$server_name)
			{
				$server_name = $config['server_name'];
			}

			// Check again in correct order...
			$pos_ext = strpos($url, ".{$phpEx}");
			$pos_path = strpos($url, $check_path);
			$pos_domain = strpos($url, $server_name);

			if ($pos_domain !== false && $pos_path >= $pos_domain && $pos_ext >= $pos_path)
			{
				return true;
			}
		}

		return false;
	}
}

/**
* Main message parser for posting, pm, etc. takes raw message
* and parses it for attachments, bbcode and smilies
* @package phpBB3
*/
class parse_message extends bbcode_firstpass
{
	var $attachment_data = array();
	var $filename_data = array();

	// Helps ironing out user error
	var $message_status = '';

	var $allow_img_bbcode = true;
	var $allow_flash_bbcode = true;
	var $allow_quote_bbcode = true;
	var $allow_url_bbcode = true;

	var $mode;

	/**
	* Init - give message here or manually
	*/
	function parse_message($message = '')
	{
		// Init BBCode UID
		$this->bbcode_uid = substr(md5(time()), 0, BBCODE_UID_LEN);

		if ($message)
		{
			$this->message = $message;
		}
	}

	/**
	* Parse Message
	*/
	function parse($allow_bbcode, $allow_magic_url, $allow_smilies, $allow_img_bbcode = true, $allow_flash_bbcode = true, $allow_quote_bbcode = true, $allow_url_bbcode = true, $update_this_message = true, $mode = 'post')
	{
		global $config, $db, $user;

		$mode = ($mode != 'post') ? 'sig' : 'post';

		$this->mode = $mode;

		$this->allow_img_bbcode = $allow_img_bbcode;
		$this->allow_flash_bbcode = $allow_flash_bbcode;
		$this->allow_quote_bbcode = $allow_quote_bbcode;
		$this->allow_url_bbcode = $allow_url_bbcode;

		// If false, then $this->message won't be altered, the text will be returned instead.
		if (!$update_this_message)
		{
			$tmp_message = $this->message;
			$return_message = &$this->message;
		}

		if ($this->message_status == 'display')
		{
			$this->decode_message();
		}

		// Do some general 'cleanup' first before processing message,
		// e.g. remove excessive newlines(?), smilies(?)
		// Transform \r\n and \r into \n
		// TODO: Second regex looks wrong...
		$match = array('#\r\n?#', "#(\n\s+){3,}#u", '#(script|about|applet|activex|chrome):#i');
		$replace = array("\n", "\n\n", "\\1&#058;");
		$this->message = preg_replace($match, $replace, trim($this->message));

		// Message length check. -1 disables this check completely.
		if ($config['max_' . $mode . '_chars'] != -1)
		{
			$msg_len = ($mode == 'post') ? utf8_strlen($this->message) : utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $this->message));
	
			if ((!$msg_len && $mode !== 'sig') || $config['max_' . $mode . '_chars'] && $msg_len > $config['max_' . $mode . '_chars'])
			{
				$this->warn_msg[] = (!$msg_len) ? $user->lang['TOO_FEW_CHARS'] : $user->lang['TOO_MANY_CHARS'];
				return $this->warn_msg;
			}
		}

		// Prepare BBcode (just prepares some tags for better parsing)
		if ($allow_bbcode && strpos($this->message, '[') !== false)
		{
			$this->bbcode_init();
			$disallow = array('img', 'flash', 'quote', 'url');
			foreach ($disallow as $bool)
			{
				if (!${'allow_' . $bool . '_bbcode'})
				{
					$this->bbcodes[$bool]['disabled'] = true;
				}
			}

			$this->prepare_bbcodes();
		}

		// Parse smilies
		if ($allow_smilies)
		{
			$this->smilies($config['max_' . $mode . '_smilies']);
		}

		$num_urls = 0;

		// Parse BBCode
		if ($allow_bbcode && strpos($this->message, '[') !== false)
		{
			$this->parse_bbcode();
			$num_urls += $this->parsed_items['url'];
		}

		// Parse URL's
		if ($allow_magic_url)
		{
			$this->magic_url(generate_board_url());
	
			if ($config['max_' . $mode . '_urls'])
			{
				$num_urls += preg_match_all('#\<!-- ([lmwe]) --\>.*?\<!-- \1 --\>#', $this->message, $matches);
			}
		}

		// Check number of links
		if ($config['max_' . $mode . '_urls'] && $num_urls > $config['max_' . $mode . '_urls'])
		{
			$this->warn_msg[] = sprintf($user->lang['TOO_MANY_URLS'], $config['max_' . $mode . '_urls']);
			return $this->warn_msg;
		}

		if (!$update_this_message)
		{
			unset($this->message);
			$this->message = $tmp_message;
			return $return_message;
		}

		$this->message_status = 'parsed';
		return false;
	}

	/**
	* Formatting text for display
	*/
	function format_display($allow_bbcode, $allow_magic_url, $allow_smilies, $update_this_message = true)
	{
		// If false, then the parsed message get returned but internal message not processed.
		if (!$update_this_message)
		{
			$tmp_message = $this->message;
			$return_message = &$this->message;
		}

		if ($this->message_status == 'plain')
		{
			// Force updating message - of course.
			$this->parse($allow_bbcode, $allow_magic_url, $allow_smilies, $this->allow_img_bbcode, $this->allow_flash_bbcode, $this->allow_quote_bbcode, $this->allow_url_bbcode, true);
		}

		// Parse BBcode
		if ($allow_bbcode)
		{
			$this->bbcode_cache_init();

			// We are giving those parameters to be able to use the bbcode class on its own
			$this->bbcode_second_pass($this->message, $this->bbcode_uid);
		}

		$this->message = smiley_text($this->message, !$allow_smilies);

		// Replace naughty words such as farty pants
		$this->message = str_replace("\n", '<br />', censor_text($this->message));

		if (!$update_this_message)
		{
			unset($this->message);
			$this->message = $tmp_message;
			return $return_message;
		}

		$this->message_status = 'display';
		return false;
	}

	/**
	* Decode message to be placed back into form box
	*/
	function decode_message($custom_bbcode_uid = '', $update_this_message = true)
	{
		// If false, then the parsed message get returned but internal message not processed.
		if (!$update_this_message)
		{
			$tmp_message = $this->message;
			$return_message = &$this->message;
		}

		($custom_bbcode_uid) ? decode_message($this->message, $custom_bbcode_uid) : decode_message($this->message, $this->bbcode_uid);

		if (!$update_this_message)
		{
			unset($this->message);
			$this->message = $tmp_message;
			return $return_message;
		}

		$this->message_status = 'plain';
		return false;
	}

	/**
	* Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx.
	* Cuts down displayed size of link if over 50 chars, turns absolute links
	* into relative versions when the server/script path matches the link
	*/
	function magic_url($server_url)
	{
		// We use the global make_clickable function
		$this->message = make_clickable($this->message, $server_url);
	}

	/**
	* Parse Smilies
	*/
	function smilies($max_smilies = 0)
	{
		global $db, $user;
		static $match;
		static $replace;

		// See if the static arrays have already been filled on an earlier invocation
		if (!is_array($match))
		{
			$match = $replace = array();

			// NOTE: obtain_* function? chaching the table contents?
	
			// For now setting the ttl to 10 minutes
			switch ($db->sql_layer)
			{
				case 'mssql':
				case 'mssql_odbc':
					$sql = 'SELECT * 
						FROM ' . SMILIES_TABLE . '
						ORDER BY LEN(code) DESC';
				break;
	
				case 'firebird':
					$sql = 'SELECT * 
						FROM ' . SMILIES_TABLE . '
						ORDER BY CHAR_LENGTH(code) DESC';
				break;

				// LENGTH supported by MySQL, IBM DB2, Oracle and Access for sure...
				default:
					$sql = 'SELECT * 
						FROM ' . SMILIES_TABLE . '
						ORDER BY LENGTH(code) DESC';
				break;
			}
			$result = $db->sql_query($sql, 600);

			while ($row = $db->sql_fetchrow($result))
			{
				// (assertion)
				$match[] = '#(?<=^|[\n .])' . preg_quote($row['code'], '#') . '#';
				$replace[] = '<!-- s' . $row['code'] . ' --><img src="{SMILIES_PATH}/' . $row['smiley_url'] . '" alt="' . $row['code'] . '" title="' . $row['emotion'] . '" /><!-- s' . $row['code'] . ' -->';
			}
			$db->sql_freeresult($result);
		}

		if (sizeof($match))
		{
			if ($max_smilies)
			{
				$count = 0;
				foreach ($match as $key => $smilie)
				{
					if ($small_count = preg_match_all($smilie, $this->message, $array))
					{
						$count += $small_count;
						if ($count > $max_smilies)
						{
							$this->warn_msg[] = sprintf($user->lang['TOO_MANY_SMILIES'], $max_smilies);
							return;
						}
					}
					$this->message = preg_replace($smilie, $replace[$key], $this->message);
				}
				$this->message = trim($this->message);
			}
			else
			{
				$this->message = trim(preg_replace($match, $replace, $this->message));
			}
		}
	}

	/**
	* Parse Attachments
	*/
	function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $refresh, $is_message = false)
	{
		global $config, $auth, $user, $phpbb_root_path, $phpEx, $db;

		$error = array();

		$num_attachments = sizeof($this->attachment_data);
		$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
		$upload_file = (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none' && trim($_FILES[$form_name]['name'])) ? true : false;

		$add_file		= (isset($_POST['add_file'])) ? true : false;
		$delete_file	= (isset($_POST['delete_file'])) ? true : false;

		// First of all adjust comments if changed
		$actual_comment_list = utf8_normalize_nfc(request_var('comment_list', array(''), true));

		foreach ($actual_comment_list as $comment_key => $comment)
		{
			if (!isset($this->attachment_data[$comment_key]))
			{
				continue;
			}

			if ($this->attachment_data[$comment_key]['attach_comment'] != $actual_comment_list[$comment_key])
			{
				$this->attachment_data[$comment_key]['attach_comment'] = $actual_comment_list[$comment_key];
			}
		}

		$cfg = array();
		$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
		$forum_id = ($is_message) ? 0 : $forum_id;

		if ($submit && in_array($mode, array('post', 'reply', 'quote', 'edit')) && $upload_file)
		{
			if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
			{
				$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
				$error = $filedata['error'];

				if ($filedata['post_attach'] && !sizeof($error))
				{
					$sql_ary = array(
						'physical_filename'	=> $filedata['physical_filename'],
						'attach_comment'	=> $this->filename_data['filecomment'],
						'real_filename'		=> $filedata['real_filename'],
						'extension'			=> $filedata['extension'],
						'mimetype'			=> $filedata['mimetype'],
						'filesize'			=> $filedata['filesize'],
						'filetime'			=> $filedata['filetime'],
						'thumbnail'			=> $filedata['thumbnail'],
						'is_orphan'			=> 1,
						'in_message'		=> ($is_message) ? 1 : 0,
						'poster_id'			=> $user->data['user_id'],
					);

					$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

					$new_entry = array(
						'attach_id'		=> $db->sql_nextid(),
						'is_orphan'		=> 1,
						'real_filename'	=> $filedata['real_filename'],
						'attach_comment'=> $this->filename_data['filecomment'],
					);

					$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);

					$this->filename_data['filecomment'] = '';

					// This Variable is set to false here, because Attachments are entered into the
					// Database in two modes, one if the id_list is 0 and the second one if post_attach is true
					// Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
					// but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
					//
					// This is very relevant, because it could happen that the post got not submitted, but we do not
					// know this circumstance here. We could be at the posting page or we could be redirected to the entered
					// post. :)
					$filedata['post_attach'] = false;
				}
			}
			else
			{
				$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
			}
		}

		if ($preview || $refresh || sizeof($error))
		{
			// Perform actions on temporary attachments
			if ($delete_file)
			{
				include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);

				$index = (int) key($_POST['delete_file']);

				if (!empty($this->attachment_data[$index]))
				{
					// delete selected attachment
					if ($this->attachment_data[$index]['is_orphan'])
					{
						$sql = 'SELECT attach_id, physical_filename, thumbnail
							FROM ' . ATTACHMENTS_TABLE . '
							WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id'] . '
								AND is_orphan = 1
								AND poster_id = ' . $user->data['user_id'];
						$result = $db->sql_query($sql);
						$row = $db->sql_fetchrow($result);
						$db->sql_freeresult($result);

						if ($row)
						{
							phpbb_unlink($row['physical_filename'], 'file');

							if ($row['thumbnail'])
							{
								phpbb_unlink($row['physical_filename'], 'thumbnail');
							}

							$db->sql_query('DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id']);
						}
					}
					else
					{
						delete_attachments('attach', array(intval($this->attachment_data[$index]['attach_id'])));
					}

					unset($this->attachment_data[$index]);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "(\\1 == \$index) ? '' : ((\\1 > \$index) ? '[attachment=' . (\\1 - 1) . ']\\2[/attachment]' : '\\0')", $this->message);

					// Reindex Array
					$this->attachment_data = array_values($this->attachment_data);
				}
			}
			else if (($add_file || $preview) && $upload_file)
			{
				if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id))
				{
					$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
					$error = array_merge($error, $filedata['error']);

					if (!sizeof($error))
					{
						$sql_ary = array(
							'physical_filename'	=> $filedata['physical_filename'],
							'attach_comment'	=> $this->filename_data['filecomment'],
							'real_filename'		=> $filedata['real_filename'],
							'extension'			=> $filedata['extension'],
							'mimetype'			=> $filedata['mimetype'],
							'filesize'			=> $filedata['filesize'],
							'filetime'			=> $filedata['filetime'],
							'thumbnail'			=> $filedata['thumbnail'],
							'is_orphan'			=> 1,
							'in_message'		=> ($is_message) ? 1 : 0,
							'poster_id'			=> $user->data['user_id'],
						);

						$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

						$new_entry = array(
							'attach_id'		=> $db->sql_nextid(),
							'is_orphan'		=> 1,
							'real_filename'	=> $filedata['real_filename'],
							'attach_comment'=> $this->filename_data['filecomment'],
						);

						$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
						$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
						$this->filename_data['filecomment'] = '';
					}
				}
				else
				{
					$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
				}
			}
		}

		foreach ($error as $error_msg)
		{
			$this->warn_msg[] = $error_msg;
		}
	}

	/**
	* Get Attachment Data
	*/
	function get_submitted_attachment_data($check_user_id = false)
	{
		global $user, $db, $phpbb_root_path, $phpEx, $config;

		$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
		$attachment_data = (isset($_POST['attachment_data'])) ? $_POST['attachment_data'] : array();
		$this->attachment_data = array();

		$check_user_id = ($check_user_id === false) ? $user->data['user_id'] : $check_user_id;

		if (!sizeof($attachment_data))
		{
			return;
		}

		$not_orphan = $orphan = array();

		foreach ($attachment_data as $pos => $var_ary)
		{
			if ($var_ary['is_orphan'])
			{
				$orphan[(int) $var_ary['attach_id']] = $pos;
			}
			else
			{
				$not_orphan[(int) $var_ary['attach_id']] = $pos;
			}
		}

		// Regenerate already posted attachments
		if (sizeof($not_orphan))
		{
			// Get the attachment data, based on the poster id...
			$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
				FROM ' . ATTACHMENTS_TABLE . '
				WHERE ' . $db->sql_in_set('attach_id', array_keys($not_orphan)) . '
					AND poster_id = ' . $check_user_id;
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$pos = $not_orphan[$row['attach_id']];
				$this->attachment_data[$pos] = $row;
				set_var($this->attachment_data[$pos]['attach_comment'], $_POST['attachment_data'][$pos]['attach_comment'], 'string', true);

				unset($not_orphan[$row['attach_id']]);
			}
			$db->sql_freeresult($result);
		}

		if (sizeof($not_orphan))
		{
			trigger_error($user->lang['NO_ACCESS_ATTACHMENT'], E_USER_ERROR);
		}

		// Regenerate newly uploaded attachments
		if (sizeof($orphan))
		{
			$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
				FROM ' . ATTACHMENTS_TABLE . '
				WHERE ' . $db->sql_in_set('attach_id', array_keys($orphan)) . '
					AND poster_id = ' . $user->data['user_id'] . '
					AND is_orphan = 1';
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$pos = $orphan[$row['attach_id']];
				$this->attachment_data[$pos] = $row;
				set_var($this->attachment_data[$pos]['attach_comment'], $_POST['attachment_data'][$pos]['attach_comment'], 'string', true);

				unset($orphan[$row['attach_id']]);
			}
			$db->sql_freeresult($result);
		}

		if (sizeof($orphan))
		{
			trigger_error($user->lang['NO_ACCESS_ATTACHMENT'], E_USER_ERROR);
		}

		ksort($this->attachment_data);
	}

	/**
	* Parse Poll
	*/
	function parse_poll(&$poll)
	{
		global $auth, $user, $config;

		$poll_max_options = $poll['poll_max_options'];

		// Parse Poll Option text ;)
		$tmp_message = $this->message;
		$this->message = $poll['poll_option_text'];


		$poll['poll_option_text'] = $this->parse($poll['enable_bbcode'], ($config['allow_post_links']) ? $poll['enable_urls'] : false, $poll['enable_smilies'], $poll['img_status'], false, false, $config['allow_post_links'], false);

		$this->message = $tmp_message;

		// Parse Poll Title
		$tmp_message = $this->message;
		$this->message = $poll['poll_title'];

		$poll['poll_options'] = explode("\n", trim($poll['poll_option_text']));
		$poll['poll_options_size'] = sizeof($poll['poll_options']);

		if (!$poll['poll_title'] && $poll['poll_options_size'])
		{
			$this->warn_msg[] = $user->lang['NO_POLL_TITLE'];
		}
		else
		{
			if (utf8_strlen(preg_replace('#\[\/?[a-z\*\+\-]+(=[\S]+)?\]#ius', ' ', $this->message)) > 100)
			{
				$this->warn_msg[] = $user->lang['POLL_TITLE_TOO_LONG'];
			}
			$poll['poll_title'] = $this->parse($poll['enable_bbcode'], ($config['allow_post_links']) ? $poll['enable_urls'] : false, $poll['enable_smilies'], $poll['img_status'], false, false, $config['allow_post_links'], false);
			if (strlen($poll['poll_title']) > 255)
			{
				$this->warn_msg[] = $user->lang['POLL_TITLE_COMP_TOO_LONG'];
			}
		}

		$this->message = $tmp_message;

		unset($tmp_message);

		if (sizeof($poll['poll_options']) == 1)
		{
			$this->warn_msg[] = $user->lang['TOO_FEW_POLL_OPTIONS'];
		}
		else if ($poll['poll_options_size'] > (int) $config['max_poll_options'])
		{
			$this->warn_msg[] = $user->lang['TOO_MANY_POLL_OPTIONS'];
		}
		else if ($poll_max_options > $poll['poll_options_size'])
		{
			$this->warn_msg[] = $user->lang['TOO_MANY_USER_OPTIONS'];
		}

		$poll['poll_max_options'] = ($poll['poll_max_options'] < 1) ? 1 : (($poll['poll_max_options'] > $config['max_poll_options']) ? $config['max_poll_options'] : $poll['poll_max_options']);
	}
}

?>
e user name must start with a lower case letter followed by only lower " "cased letters, numbers, `-' and `_'" msgstr "" #: any.pm:865 #, c-format msgid "The user name is too long" msgstr "የተጠቃሚ ስሙ በጣም ረጅም ነው" #: any.pm:866 #, c-format msgid "This user name has already been added" msgstr "ይህ የተጠቃሚ ስም በፊትም ነበር" #: any.pm:872 any.pm:908 #, c-format msgid "User ID" msgstr "የተጠቃሚ መለያ ቁጥር" #: any.pm:872 any.pm:909 #, c-format msgid "Group ID" msgstr "የብድን መለያ ቁጥር" #: any.pm:873 #, fuzzy, c-format msgid "%s must be a number" msgstr "(%f በሰነድ-ስም ይተካል፤ %l በመስመር ቁጥር)" #: any.pm:874 #, c-format msgid "%s should be above 500. Accept anyway?" msgstr "" #: any.pm:878 #, fuzzy, c-format msgid "User management" msgstr "የተጠቃሚ ስም" #: any.pm:883 #, c-format msgid "Enable guest account" msgstr "" #: any.pm:884 authentication.pm:239 #, fuzzy, c-format msgid "Set administrator (root) password" msgstr "የroot ሚስጢራዊ ቃል ይምረጡ" #: any.pm:890 #, fuzzy, c-format msgid "Enter a user" msgstr "" "የተጠቃሚ ስም ያስገቡ\n" "%s" #: any.pm:892 #, c-format msgid "Icon" msgstr "ምልክት" #: any.pm:895 #, c-format msgid "Real name" msgstr "እውነተኛ ስም" #: any.pm:902 #, fuzzy, c-format msgid "Login name" msgstr "Name=ዝምብለህ ይግባ" #: any.pm:907 #, c-format msgid "Shell" msgstr "ሼል" #: any.pm:950 #, fuzzy, c-format msgid "Please wait, adding media..." msgstr "ሲያትም እባክዎ ይጠብቁ\n" #: any.pm:980 security/l10n.pm:14 #, c-format msgid "Autologin" msgstr "" #: any.pm:981 #, c-format msgid "I can set up your computer to automatically log on one user." msgstr "" #: any.pm:982 #, fuzzy, c-format msgid "Use this feature" msgstr "ይህንን ሁኔታ መጠቀም ይፈልጋሉ?" #: any.pm:983 #, c-format msgid "Choose the default user:" msgstr "ቀዳሚ ተጠቃሚ ይምረጡ:" #: any.pm:984 #, c-format msgid "Choose the window manager to run:" msgstr "" #: any.pm:995 any.pm:1015 any.pm:1083 #, c-format msgid "Release Notes" msgstr "" #: any.pm:1022 any.pm:1371 interactive/gtk.pm:819 #, c-format msgid "Close" msgstr "ዝጋ" #: any.pm:1069 #, c-format msgid "License agreement" msgstr "" #: any.pm:1071 diskdrake/dav.pm:26 #, c-format msgid "Quit" msgstr "ውጣ" #: any.pm:1078 #, fuzzy, c-format msgid "Do you accept this license ?" msgstr "ሌላ አልዎት?" #: any.pm:1079 #, c-format msgid "Accept" msgstr "ተቀበል" #: any.pm:1079 #, c-format msgid "Refuse" msgstr "አትቀበል" #: any.pm:1105 any.pm:1167 #, c-format msgid "Please choose a language to use" msgstr "እባክዎ መጠቀሚያ ቋንቋ ይምረጡ።" #: any.pm:1133 #, c-format msgid "" "Mageia can support multiple languages. Select\n" "the languages you would like to install. They will be available\n" "when your installation is complete and you restart your system." msgstr "" #: any.pm:1136 #, c-format msgid "Multi languages" msgstr "" #: any.pm:1145 any.pm:1176 #, c-format msgid "Old compatibility (non UTF-8) encoding" msgstr "" #: any.pm:1146 #, c-format msgid "All languages" msgstr "ሁሉንም ቋንቋዎች" #: any.pm:1168 #, fuzzy, c-format msgid "Language choice" msgstr "የመመሪያ ገጾች" #: any.pm:1222 #, c-format msgid "Country / Region" msgstr "ሀገር / አካባቢ" #: any.pm:1223 #, c-format msgid "Please choose your country" msgstr "እባክዎ ሀገሮን ይምረጡ።" #: any.pm:1225 #, c-format msgid "Here is the full list of available countries" msgstr "እዚህ ያሉት ሀገሮች ሙሉ ዝርዝር ይገኛል" #: any.pm:1226 #, fuzzy, c-format msgid "Other Countries" msgstr "ሌላ ምርጫዎች" #: any.pm:1226 interactive.pm:488 interactive/gtk.pm:445 #, c-format msgid "Advanced" msgstr "ጠላቂ" #: any.pm:1232 #, fuzzy, c-format msgid "Input method:" msgstr "የX ዘገባ የማስትገባት ዘዴ" #: any.pm:1235 #, c-format msgid "None" msgstr "ምንም" #: any.pm:1316 #, c-format msgid "No sharing" msgstr "መጋራት የለም" #: any.pm:1316 #, c-format msgid "Allow all users" msgstr "ለሁሉም ተጠቃሚዎች ፍቀድ" #: any.pm:1316 #, c-format msgid "Custom" msgstr "ምርጫ" #: any.pm:1320 #, c-format msgid "" "Would you like to allow users to share some of their directories?\n" "Allowing this will permit users to simply click on \"Share\" in konqueror " "and nautilus.\n" "\n" "\"Custom\" permit a per-user granularity.\n" msgstr "" #: any.pm:1332 #, c-format msgid "" "NFS: the traditional Unix file sharing system, with less support on Mac and " "Windows." msgstr "" #: any.pm:1335 #, c-format msgid "" "SMB: a file sharing system used by Windows, Mac OS X and many modern Linux " "systems." msgstr "" #: any.pm:1343 #, c-format msgid "" "You can export using NFS or SMB. Please select which you would like to use." msgstr "" #: any.pm:1371 #, c-format msgid "Launch userdrake" msgstr "userdrake አስጀምር" #: any.pm:1373 #, c-format msgid "" "The per-user sharing uses the group \"fileshare\". \n" "You can use userdrake to add a user to this group." msgstr "" #: any.pm:1480 #, c-format msgid "" "You need to logout and back in again for changes to take effect. Press OK to " "logout now." msgstr "" #: any.pm:1484 #, c-format msgid "You need to log out and back in again for changes to take effect" msgstr "" #: any.pm:1519 #, c-format msgid "Timezone" msgstr "የሰአት ክልል" #: any.pm:1519 #, c-format msgid "Which is your timezone?" msgstr "የሰአት ክልሎት የትኛው ነው?" #: any.pm:1542 any.pm:1544 #, c-format msgid "Date, Clock & Time Zone Settings" msgstr "" #: any.pm:1545 #, c-format msgid "What is the best time?" msgstr "" #: any.pm:1549 #, fuzzy, c-format msgid "%s (hardware clock set to UTC)" msgstr "ለሀርድዌር ሰአት GMT ተመርጧል" #: any.pm:1550 #, fuzzy, c-format msgid "%s (hardware clock set to local time)" msgstr "ለሀርድዌር ሰአት GMT ተመርጧል" #: any.pm:1552 #, c-format msgid "NTP Server" msgstr "NTP ሰርቨር" #: any.pm:1553 #, c-format msgid "Automatic time synchronization (using NTP)" msgstr "" #: authentication.pm:24 #, fuzzy, c-format msgid "Local file" msgstr "የቅርብ ፋይሎች" #: authentication.pm:25 #, c-format msgid "LDAP" msgstr "LDAP" #: authentication.pm:26 #, c-format msgid "NIS" msgstr "NIS" #: authentication.pm:27 #, c-format msgid "Smart Card" msgstr "" #: authentication.pm:28 authentication.pm:218 #, c-format msgid "Windows Domain" msgstr "የWindows ዶሜን" #: authentication.pm:29 #, c-format msgid "Kerberos 5" msgstr "" #: authentication.pm:65 #, fuzzy, c-format msgid "Local file:" msgstr "የቅርብ ፋይሎች:" #: authentication.pm:65 #, c-format msgid "" "Use local for all authentication and information user tell in local file" msgstr "" #: authentication.pm:66 #, c-format msgid "LDAP:" msgstr "LDAP:" #: authentication.pm:66 #, c-format msgid "" "Tells your computer to use LDAP for some or all authentication. LDAP " "consolidates certain types of information within your organization." msgstr "" #: authentication.pm:67 #, c-format msgid "NIS:" msgstr "NIS:" #: authentication.pm:67 #, c-format msgid "" "Allows you to run a group of computers in the same Network Information " "Service domain with a common password and group file." msgstr "" #: authentication.pm:68 #, c-format msgid "Windows Domain:" msgstr "የWindows ዶሜን:" #: authentication.pm:68 #, c-format msgid "" "Winbind allows the system to retrieve information and authenticate users in " "a Windows domain." msgstr "" #: authentication.pm:69 #, c-format msgid "Kerberos 5 :" msgstr "" #: authentication.pm:69 #, c-format msgid "With Kerberos and Ldap for authentication in Active Directory Server " msgstr "" #: authentication.pm:109 authentication.pm:143 authentication.pm:162 #: authentication.pm:163 authentication.pm:189 authentication.pm:213 #: authentication.pm:898 #, c-format msgid " " msgstr "" #: authentication.pm:110 authentication.pm:144 authentication.pm:190 #: authentication.pm:214 #, fuzzy, c-format msgid "Welcome to the Authentication Wizard" msgstr "የተጠቃሚው የአጠቃቀም ደረጃ ያስፈልጋል" #: authentication.pm:112 #, c-format msgid "" "You have selected LDAP authentication. Please review the configuration " "options below " msgstr "" #: authentication.pm:114 authentication.pm:169 #, c-format msgid "LDAP Server" msgstr "የLDAP ሰርቨር" #: authentication.pm:115 authentication.pm:170 #, c-format msgid "Base dn" msgstr "" #: authentication.pm:116 #, c-format msgid "Fetch base Dn " msgstr "" #: authentication.pm:118 authentication.pm:173 #, c-format msgid "Use encrypt connection with TLS " msgstr "" #: authentication.pm:119 authentication.pm:174 #, c-format msgid "Download CA Certificate " msgstr "" #: authentication.pm:121 authentication.pm:154 #, c-format msgid "Use Disconnect mode " msgstr "" #: authentication.pm:122 authentication.pm:175 #, c-format msgid "Use anonymous BIND " msgstr "" #: authentication.pm:123 authentication.pm:126 authentication.pm:128 #: authentication.pm:132 #, c-format msgid " " msgstr "" #: authentication.pm:124 authentication.pm:176 #, c-format msgid "Bind DN " msgstr "" #: authentication.pm:125 authentication.pm:177 #, fuzzy, c-format msgid "Bind Password " msgstr "ሚስጢራዊ ቃል" #: authentication.pm:127 #, c-format msgid "Advanced path for group " msgstr "" #: authentication.pm:129 #, fuzzy, c-format msgid "Password base" msgstr "ሚስጢራዊ ቃል" #: authentication.pm:130 #, fuzzy, c-format msgid "Group base" msgstr "የብድን መለያ ቁጥር" #: authentication.pm:131 #, c-format msgid "Shadow base" msgstr "" #: authentication.pm:146 #, c-format msgid "" "You have selected Kerberos 5 authentication. Please review the configuration " "options below " msgstr "" #: authentication.pm:148 #, fuzzy, c-format msgid "Realm " msgstr "እውነተኛ ስም" #: authentication.pm:150 #, fuzzy, c-format msgid "KDCs Servers" msgstr "የLDAP ሰርቨር" #: authentication.pm:152 #, c-format msgid "Use DNS to locate KDC for the realm" msgstr "" #: authentication.pm:153 #, c-format msgid "Use DNS to locate realms" msgstr "" #: authentication.pm:158 #, fuzzy, c-format msgid "Use local file for users information" msgstr "ለህብሩ የglyph ቅርጽ አወጣት ተጠቀም" #: authentication.pm:159 #, fuzzy, c-format msgid "Use Ldap for users information" msgstr "የቋሚ ዲስክ መረጃ" #: authentication.pm:165 #, c-format msgid "" "You have selected Kerberos 5 for authentication, now you must choose the " "type of users information " msgstr "" #: authentication.pm:171 #, c-format msgid "Fecth base Dn " msgstr "" #: authentication.pm:192 #, c-format msgid "" "You have selected NIS authentication. Please review the configuration " "options below " msgstr "" #: authentication.pm:194 #, c-format msgid "NIS Domain" msgstr "የNIS ዶሜን" #: authentication.pm:195 #, c-format msgid "NIS Server" msgstr "የNIS ሰርቨር" #: authentication.pm:216 #, c-format msgid "" "You have selected Windows Domain authentication. Please review the " "configuration options below " msgstr "" #: authentication.pm:220 #, fuzzy, c-format msgid "Domain Model " msgstr "ዶሜን" #: authentication.pm:222 #, c-format msgid "Active Directory Realm " msgstr "" #: authentication.pm:223 #, fuzzy, c-format msgid "DNS Domain" msgstr "የNIS ዶሜን" #: authentication.pm:224 #, fuzzy, c-format msgid "DC Server" msgstr "የLDAP ሰርቨር" #: authentication.pm:238 authentication.pm:254 #, fuzzy, c-format msgid "Authentication" msgstr "ማስረጃ" #: authentication.pm:240 #, fuzzy, c-format msgid "Authentication method" msgstr "የX ዘገባ የማስትገባት ዘዴ" #. -PO: keep this short or else the buttons will not fit in the window #: authentication.pm:245 #, c-format msgid "No password" msgstr "ሚስጢራዊ ቃል የለም" #: authentication.pm:266 #, c-format msgid "This password is too short (it must be at least %d characters long)" msgstr "" #: authentication.pm:377 #, c-format msgid "Can not use broadcast with no NIS domain" msgstr "" #: authentication.pm:893 #, c-format msgid "Select file" msgstr "ፋይል ይምረጡ" #: authentication.pm:899 #, fuzzy, c-format msgid "Domain Windows for authentication : " msgstr "የተጠቃሚው የአጠቃቀም ደረጃ ያስፈልጋል" #: authentication.pm:901 #, c-format msgid "Domain Admin User Name" msgstr "" #: authentication.pm:902 #, c-format msgid "Domain Admin Password" msgstr "የዶሜን አስተዳዳሪ ሚስጢራዊ ቃል" #. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit) #: bootloader.pm:994 #, c-format msgid "" "Welcome to the operating system chooser!\n" "\n" "Choose an operating system from the list above or\n" "wait for default boot.\n" "\n" msgstr "" #: bootloader.pm:1171 #, c-format msgid "LILO with text menu" msgstr "LILO ከጽሁፍ መዘርዝር ጋር" #: bootloader.pm:1172 #, c-format msgid "GRUB with graphical menu" msgstr "" #: bootloader.pm:1173 #, c-format msgid "GRUB with text menu" msgstr "" #: bootloader.pm:1174 #, c-format msgid "Yaboot" msgstr "Yaboot" #: bootloader.pm:1175 #, c-format msgid "SILO" msgstr "" #: bootloader.pm:1259 #, c-format msgid "not enough room in /boot" msgstr "በ/boot ውስጥ በቂ ቦታ የለም" #: bootloader.pm:1985 #, c-format msgid "You can not install the bootloader on a %s partition\n" msgstr "" #: bootloader.pm:2106 #, c-format msgid "" "Your bootloader configuration must be updated because partition has been " "renumbered" msgstr "" #: bootloader.pm:2119 #, c-format msgid "" "The bootloader can not be installed correctly. You have to boot rescue and " "choose \"%s\"" msgstr "" #: bootloader.pm:2120 #, c-format msgid "Re-install Boot Loader" msgstr "አስጀማሪውን እንደገና ይትከሉ" #: common.pm:142 #, fuzzy, c-format msgid "B" msgstr "KB" #: common.pm:142 #, c-format msgid "KB" msgstr "KB" #: common.pm:142 #, c-format msgid "MB" msgstr "MB" #: common.pm:142 #, c-format msgid "GB" msgstr "GB" #: common.pm:142 common.pm:151 #, c-format msgid "TB" msgstr "TB" #: common.pm:159 #, c-format msgid "%d minutes" msgstr "%d ደቂቃዎች" #: common.pm:161 #, c-format msgid "1 minute" msgstr "1 ደቂቃ" #: common.pm:163 #, c-format msgid "%d seconds" msgstr "%d ሴኮንዶች" #: common.pm:383 #, c-format msgid "command %s missing" msgstr "" #: diskdrake/dav.pm:17 #, c-format msgid "" "WebDAV is a protocol that allows you to mount a web server's directory\n" "locally, and treat it like a local filesystem (provided the web server is\n" "configured as a WebDAV server). If you would like to add WebDAV mount\n" "points, select \"New\"." msgstr "" #: diskdrake/dav.pm:25 #, c-format msgid "New" msgstr "አዲስ" #: diskdrake/dav.pm:63 diskdrake/interactive.pm:414 diskdrake/smbnfs_gtk.pm:75 #, c-format msgid "Unmount" msgstr "" #: diskdrake/dav.pm:64 diskdrake/interactive.pm:410 diskdrake/smbnfs_gtk.pm:76 #, c-format msgid "Mount" msgstr "" #: diskdrake/dav.pm:65 #, c-format msgid "Server" msgstr "ሰርቨር" #: diskdrake/dav.pm:66 diskdrake/interactive.pm:404 #: diskdrake/interactive.pm:725 diskdrake/interactive.pm:743 #: diskdrake/interactive.pm:747 diskdrake/removable.pm:23 #: diskdrake/smbnfs_gtk.pm:79 #, c-format msgid "Mount point" msgstr "" #: diskdrake/dav.pm:67 diskdrake/interactive.pm:406 #: diskdrake/interactive.pm:1160 diskdrake/removable.pm:24 #: diskdrake/smbnfs_gtk.pm:80 #, c-format msgid "Options" msgstr "ምርጫዎች" #: diskdrake/dav.pm:68 interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Remove" msgstr "አስወግድ" #: diskdrake/dav.pm:69 diskdrake/hd_gtk.pm:187 diskdrake/removable.pm:26 #: diskdrake/smbnfs_gtk.pm:82 interactive/http.pm:151 #, c-format msgid "Done" msgstr "ጨርሷል" #: diskdrake/dav.pm:78 diskdrake/hd_gtk.pm:128 diskdrake/hd_gtk.pm:292 #: diskdrake/interactive.pm:247 diskdrake/interactive.pm:260 #: diskdrake/interactive.pm:453 diskdrake/interactive.pm:524 #: diskdrake/interactive.pm:542 diskdrake/interactive.pm:547 #: diskdrake/interactive.pm:715 diskdrake/interactive.pm:1000 #: diskdrake/interactive.pm:1051 diskdrake/interactive.pm:1206 #: diskdrake/interactive.pm:1219 diskdrake/interactive.pm:1222 #: diskdrake/interactive.pm:1490 diskdrake/smbnfs_gtk.pm:42 do_pkgs.pm:23 #: do_pkgs.pm:28 do_pkgs.pm:44 do_pkgs.pm:60 do_pkgs.pm:65 do_pkgs.pm:82 #: fsedit.pm:246 interactive/http.pm:117 interactive/http.pm:118 #: modules/interactive.pm:19 scanner.pm:95 scanner.pm:106 scanner.pm:113 #: scanner.pm:120 wizards.pm:95 wizards.pm:99 wizards.pm:121 #, c-format msgid "Error" msgstr "ስህተት" #: diskdrake/dav.pm:86 #, c-format msgid "Please enter the WebDAV server URL" msgstr "እባክዎ የWebDAV ሰርቨር URL ያስገቡ" #: diskdrake/dav.pm:90 #, c-format msgid "The URL must begin with http:// or https://" msgstr "URLሉ በhttp:// ወይም በhttps:// መጀመር አለበት" #: diskdrake/dav.pm:106 diskdrake/hd_gtk.pm:417 diskdrake/interactive.pm:306 #: diskdrake/interactive.pm:391 diskdrake/interactive.pm:600 #: diskdrake/interactive.pm:818 diskdrake/interactive.pm:882 #: diskdrake/interactive.pm:1031 diskdrake/interactive.pm:1073 #: diskdrake/interactive.pm:1074 diskdrake/interactive.pm:1300 #: diskdrake/interactive.pm:1338 diskdrake/interactive.pm:1489 do_pkgs.pm:19 #: do_pkgs.pm:39 do_pkgs.pm:57 do_pkgs.pm:77 harddrake/sound.pm:442 #, c-format msgid "Warning" msgstr "ማስጠንቀቂያ" #: diskdrake/dav.pm:106 #, fuzzy, c-format msgid "Are you sure you want to delete this mountpoint?" msgstr "እዚህ ቁልፍ ላይ መጫን ይፈልጋሉ?" #: diskdrake/dav.pm:124 #, c-format msgid "Server: " msgstr "ሰርቨር:" #: diskdrake/dav.pm:125 diskdrake/interactive.pm:498 #: diskdrake/interactive.pm:1362 diskdrake/interactive.pm:1450 #, c-format msgid "Mount point: " msgstr "" #: diskdrake/dav.pm:126 diskdrake/interactive.pm:1457 #, c-format msgid "Options: %s" msgstr "ምርጫዎች: %s" #: diskdrake/hd_gtk.pm:61 diskdrake/interactive.pm:301 #: diskdrake/smbnfs_gtk.pm:22 fs/mount_point.pm:108 #: fs/partitioning_wizard.pm:53 fs/partitioning_wizard.pm:236 #: fs/partitioning_wizard.pm:244 fs/partitioning_wizard.pm:283 #: fs/partitioning_wizard.pm:431 fs/partitioning_wizard.pm:494 #: fs/partitioning_wizard.pm:577 fs/partitioning_wizard.pm:580 #, c-format msgid "Partitioning" msgstr "" #: diskdrake/hd_gtk.pm:73 #, c-format msgid "Click on a partition, choose a filesystem type then choose an action" msgstr "" #: diskdrake/hd_gtk.pm:110 diskdrake/interactive.pm:1181 #: diskdrake/interactive.pm:1191 diskdrake/interactive.pm:1244 #, c-format msgid "Read carefully" msgstr "በጥንቃቄ ያንብቡ" #: diskdrake/hd_gtk.pm:110 #, c-format msgid "Please make a backup of your data first" msgstr "" #: diskdrake/hd_gtk.pm:111 diskdrake/interactive.pm:240 #, c-format msgid "Exit" msgstr "ውጣ" #: diskdrake/hd_gtk.pm:111 #, c-format msgid "Continue" msgstr "ቀጥል" #: diskdrake/hd_gtk.pm:182 fs/partitioning_wizard.pm:553 interactive.pm:653 #: interactive/gtk.pm:811 interactive/gtk.pm:829 interactive/gtk.pm:850 #: ugtk2.pm:936 #, c-format msgid "Help" msgstr "እርዳታ" #: diskdrake/hd_gtk.pm:228 #, c-format msgid "" "You have one big Microsoft Windows partition.\n" "I suggest you first resize that partition\n" "(click on it, then click on \"Resize\")" msgstr "" #: diskdrake/hd_gtk.pm:230 #, c-format msgid "Please click on a partition" msgstr "እባክዎ ክፋዩ ላይ ይጫኑ" #: diskdrake/hd_gtk.pm:244 diskdrake/smbnfs_gtk.pm:63 #, c-format msgid "Details" msgstr "ዝርዝሮች" #: diskdrake/hd_gtk.pm:292 #, c-format msgid "No hard drives found" msgstr "ቋሚ ዲስኮችን አልተገኙም" #: diskdrake/hd_gtk.pm:323 #, c-format msgid "Unknown" msgstr "ያልታወቀ" #: diskdrake/hd_gtk.pm:388 #, fuzzy, c-format msgid "Ext4" msgstr "ውጣ" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, fuzzy, c-format msgid "XFS" msgstr "HFS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "Swap" msgstr "Swap" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "SunOS" msgstr "SunOS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "HFS" msgstr "HFS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "Windows" msgstr "Windows" #: diskdrake/hd_gtk.pm:389 fs/partitioning_wizard.pm:402 services.pm:184 #, c-format msgid "Other" msgstr "ሌላ" #: diskdrake/hd_gtk.pm:389 diskdrake/interactive.pm:1377 #: fs/partitioning_wizard.pm:402 #, c-format msgid "Empty" msgstr "ባዶ" #: diskdrake/hd_gtk.pm:396 #, c-format msgid "Filesystem types:" msgstr "የፋይል ሲስተም አይነቶች:" #: diskdrake/hd_gtk.pm:417 #, fuzzy, c-format msgid "This partition is already empty" msgstr "ይዚህ ክፋይ መጠነ ተስተካካይ አይደለም" #: diskdrake/hd_gtk.pm:426 #, c-format msgid "Use ``Unmount'' first" msgstr "በመጀመሪያ “Unmount”ን ይጠቀሙ" #: diskdrake/hd_gtk.pm:426 #, fuzzy, c-format msgid "Use ``%s'' instead (in expert mode)" msgstr "በዚህ ፈንታ “%s”ን ይጠቀሙ" #: diskdrake/hd_gtk.pm:426 diskdrake/interactive.pm:405 #: diskdrake/interactive.pm:642 diskdrake/removable.pm:25 #: diskdrake/removable.pm:48 #, c-format msgid "Type" msgstr "አይነት" #: diskdrake/interactive.pm:211 #, c-format msgid "Choose another partition" msgstr "ሌላ ክፋይ ይምረጡ" #: diskdrake/interactive.pm:211 #, c-format msgid "Choose a partition" msgstr "ክፋይ ይምረጡ" #: diskdrake/interactive.pm:273 diskdrake/interactive.pm:382 #: interactive/curses.pm:512 #, c-format msgid "More" msgstr "ተጨማሪ" #: diskdrake/interactive.pm:281 diskdrake/interactive.pm:294 #: diskdrake/interactive.pm:569 diskdrake/interactive.pm:1285 #, fuzzy, c-format msgid "Confirmation" msgstr "ስየማ" #: diskdrake/interactive.pm:281 #, c-format msgid "Continue anyway?" msgstr "ለማንኛውም ቀጥል?" #: diskdrake/interactive.pm:286 #, c-format msgid "Quit without saving" msgstr "ሳታስቀምጥ ውጣ" #: diskdrake/interactive.pm:286 #, c-format msgid "Quit without writing the partition table?" msgstr "" #: diskdrake/interactive.pm:294 #, c-format msgid "Do you want to save /etc/fstab modifications" msgstr "" #: diskdrake/interactive.pm:301 fs/partitioning_wizard.pm:283 #, c-format msgid "You need to reboot for the partition table modifications to take place" msgstr "" #: diskdrake/interactive.pm:306 #, c-format msgid "" "You should format partition %s.\n" "Otherwise no entry for mount point %s will be written in fstab.\n" "Quit anyway?" msgstr "" #: diskdrake/interactive.pm:319 #, c-format msgid "Clear all" msgstr "ሁሉንም ሰርዝ" #: diskdrake/interactive.pm:320 #, c-format msgid "Auto allocate" msgstr "በራስ-ገዝ አመልካች" #: diskdrake/interactive.pm:326 #, c-format msgid "Toggle to normal mode" msgstr "" #: diskdrake/interactive.pm:326 #, c-format msgid "Toggle to expert mode" msgstr "" #: diskdrake/interactive.pm:338 #, c-format msgid "Hard drive information" msgstr "የቋሚ ዲስክ መረጃ" #: diskdrake/interactive.pm:371 #, c-format msgid "All primary partitions are used" msgstr "" #: diskdrake/interactive.pm:372 #, c-format msgid "I can not add any more partitions" msgstr "" #: diskdrake/interactive.pm:373 #, c-format msgid "" "To have more partitions, please delete one to be able to create an extended " "partition" msgstr "" #: diskdrake/interactive.pm:384 #, c-format msgid "Reload partition table" msgstr "የክፋይ ሠንጠረዡን እንደገና ጫን" #: diskdrake/interactive.pm:391 #, c-format msgid "Detailed information" msgstr "ዝርዝር መረጃ" #: diskdrake/interactive.pm:403 #, c-format msgid "View" msgstr "" #: diskdrake/interactive.pm:408 diskdrake/interactive.pm:831 #, c-format msgid "Resize" msgstr "መጠን አስተካክል" #: diskdrake/interactive.pm:409 #, c-format msgid "Format" msgstr "ፎርማት" #: diskdrake/interactive.pm:411 diskdrake/interactive.pm:963 #, c-format msgid "Add to RAID" msgstr "ወደ RAID ጨምር" #: diskdrake/interactive.pm:412 diskdrake/interactive.pm:982 #, c-format msgid "Add to LVM" msgstr "ወደ LVM ጨምር" #: diskdrake/interactive.pm:413 #, fuzzy, c-format msgid "Use" msgstr "የተጠቃሚ መለያ ቁጥር" #: diskdrake/interactive.pm:415 #, c-format msgid "Delete" msgstr "አጥፋ" #: diskdrake/interactive.pm:416 #, c-format msgid "Remove from RAID" msgstr "ከRAID አስወግድ" #: diskdrake/interactive.pm:417 #, c-format msgid "Remove from LVM" msgstr "ከLVM አስወግድ" #: diskdrake/interactive.pm:418 #, fuzzy, c-format msgid "Remove from dm" msgstr "ከLVM አስወግድ" #: diskdrake/interactive.pm:419 #, c-format msgid "Modify RAID" msgstr "RAID ለውጥ" #: diskdrake/interactive.pm:420 #, c-format msgid "Use for loopback" msgstr "ዞሮ ለመመለስ ተጠቃም" #: diskdrake/interactive.pm:431 #, c-format msgid "Create" msgstr "ፍጠር" #: diskdrake/interactive.pm:453 #, fuzzy, c-format msgid "Failed to mount partition" msgstr "ወደ አዲሱ ክፋይ ፋይሎችን አንቀሳቅስ" #: diskdrake/interactive.pm:487 diskdrake/interactive.pm:489 #, c-format msgid "Create a new partition" msgstr "አዲስ ክፋይ ፍጠር" #: diskdrake/interactive.pm:491 #, c-format msgid "Start sector: " msgstr "ሴክተር ጀምር፦" #: diskdrake/interactive.pm:494 diskdrake/interactive.pm:1066 #, c-format msgid "Size in MB: " msgstr "መጠን በMB:" #: diskdrake/interactive.pm:496 diskdrake/interactive.pm:1067 #, c-format msgid "Filesystem type: " msgstr "የፋይል ሲስተም አይነት: " #: diskdrake/interactive.pm:502 #, c-format msgid "Preference: " msgstr "ምርጫ: " #: diskdrake/interactive.pm:505 #, c-format msgid "Logical volume name " msgstr "የጉልሃዊ ይዞታ ስም" #: diskdrake/interactive.pm:507 #, fuzzy, c-format msgid "Encrypt partition" msgstr "የሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:508 #, fuzzy, c-format msgid "Encryption key " msgstr "የሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:509 diskdrake/interactive.pm:1494 #, c-format msgid "Encryption key (again)" msgstr "የሚስጢራዊ ግልበጣ ቁልፍ (እንደገና)" #: diskdrake/interactive.pm:521 diskdrake/interactive.pm:1490 #, c-format msgid "The encryption keys do not match" msgstr "" #: diskdrake/interactive.pm:522 #, fuzzy, c-format msgid "Missing encryption key" msgstr "የፋይል-ሲስተም ሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:542 #, c-format msgid "" "You can not create a new partition\n" "(since you reached the maximal number of primary partitions).\n" "First remove a primary partition and create an extended partition." msgstr "" #: diskdrake/interactive.pm:569 diskdrake/interactive.pm:1285 #: fs/partitioning.pm:48 #, fuzzy, c-format msgid "Check bad blocks?" msgstr "ተመልከት ይህንን" #: diskdrake/interactive.pm:600 #, c-format msgid "Remove the loopback file?" msgstr "የዞሮ መመለሻ ፋይሉ ይወገድ?" #: diskdrake/interactive.pm:623 #, c-format msgid "" "After changing type of partition %s, all data on this partition will be lost" msgstr "" #: diskdrake/interactive.pm:639 #, c-format msgid "Change partition type" msgstr "የክፋይ ዓይነት ለውጥ" #: diskdrake/interactive.pm:641 diskdrake/removable.pm:47 #, c-format msgid "Which filesystem do you want?" msgstr "የትኛውን የፋይል ሲስተም ይፈልጋሉ?" #: diskdrake/interactive.pm:648 #, c-format msgid "Switching from %s to %s" msgstr "" #: diskdrake/interactive.pm:683 #, c-format msgid "Set volume label" msgstr "" #: diskdrake/interactive.pm:685 #, c-format msgid "Beware, this will be written to disk as soon as you validate!" msgstr "" #: diskdrake/interactive.pm:686 #, c-format msgid "Beware, this will be written to disk only after formatting!" msgstr "" #: diskdrake/interactive.pm:688 #, c-format msgid "Which volume label?" msgstr "" #: diskdrake/interactive.pm:689 #, fuzzy, c-format msgid "Label:" msgstr "መለያ" #: diskdrake/interactive.pm:710 #, c-format msgid "Where do you want to mount the loopback file %s?" msgstr "" #: diskdrake/interactive.pm:711 #, c-format msgid "Where do you want to mount device %s?" msgstr "" #: diskdrake/interactive.pm:716 #, c-format msgid "" "Can not unset mount point as this partition is used for loop back.\n" "Remove the loopback first" msgstr "" #: diskdrake/interactive.pm:746 #, c-format msgid "Where do you want to mount %s?" msgstr "%sን የት መትከል ይፈልጋሉ?" #: diskdrake/interactive.pm:776 diskdrake/interactive.pm:871 #: fs/partitioning_wizard.pm:129 fs/partitioning_wizard.pm:205 #, c-format msgid "Resizing" msgstr "መጠን በማስተካከል ላይ" #: diskdrake/interactive.pm:776 #, c-format msgid "Computing FAT filesystem bounds" msgstr "" #: diskdrake/interactive.pm:818 #, c-format msgid "This partition is not resizeable" msgstr "ይዚህ ክፋይ መጠነ ተስተካካይ አይደለም" #: diskdrake/interactive.pm:823 #, c-format msgid "All data on this partition should be backed-up" msgstr "" #: diskdrake/interactive.pm:825 #, c-format msgid "After resizing partition %s, all data on this partition will be lost" msgstr "" #: diskdrake/interactive.pm:832 #, c-format msgid "Choose the new size" msgstr "አዲሱን መጠን ይምረጡ" #: diskdrake/interactive.pm:833 #, c-format msgid "New size in MB: " msgstr "አዲስ መጠን በMB: " #: diskdrake/interactive.pm:834 #, c-format msgid "Minimum size: %s MB" msgstr "" #: diskdrake/interactive.pm:835 #, c-format msgid "Maximum size: %s MB" msgstr "" #: diskdrake/interactive.pm:882 fs/partitioning_wizard.pm:213 #, c-format msgid "" "To ensure data integrity after resizing the partition(s),\n" "filesystem checks will be run on your next boot into Microsoft Windows®" msgstr "" #: diskdrake/interactive.pm:946 diskdrake/interactive.pm:1485 #, c-format msgid "Filesystem encryption key" msgstr "የፋይል-ሲስተም ሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:947 #, fuzzy, c-format msgid "Enter your filesystem encryption key" msgstr "የፋይል-ሲስተም ሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:948 diskdrake/interactive.pm:1493 #, c-format msgid "Encryption key" msgstr "የሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:955 #, c-format msgid "Invalid key" msgstr "" #: diskdrake/interactive.pm:963 #, c-format msgid "Choose an existing RAID to add to" msgstr "" #: diskdrake/interactive.pm:965 diskdrake/interactive.pm:984 #, c-format msgid "new" msgstr "አዲስ" #: diskdrake/interactive.pm:982 #, c-format msgid "Choose an existing LVM to add to" msgstr "" #: diskdrake/interactive.pm:994 diskdrake/interactive.pm:1003 #, fuzzy, c-format msgid "LVM name" msgstr "የLVM ስም?" #: diskdrake/interactive.pm:995 #, c-format msgid "Enter a name for the new LVM volume group" msgstr "" #: diskdrake/interactive.pm:1000 #, fuzzy, c-format msgid "\"%s\" already exists" msgstr "ፋይሉ በፊትም ነበር። ልጠቀምበት?" #: diskdrake/interactive.pm:1031 #, c-format msgid "" "Physical volume %s is still in use.\n" "Do you want to move used physical extents on this volume to other volumes?" msgstr "" #: diskdrake/interactive.pm:1033 #, c-format msgid "Moving physical extents" msgstr "" #: diskdrake/interactive.pm:1051 #, c-format msgid "This partition can not be used for loopback" msgstr "" #: diskdrake/interactive.pm:1064 #, c-format msgid "Loopback" msgstr "" #: diskdrake/interactive.pm:1065 #, c-format msgid "Loopback file name: " msgstr "የዞሮ መመለሻ ፋይል ስም: " #: diskdrake/interactive.pm:1070 #, c-format msgid "Give a file name" msgstr "የፋይል ስም ይስጡ" #: diskdrake/interactive.pm:1073 #, c-format msgid "File is already used by another loopback, choose another one" msgstr "" #: diskdrake/interactive.pm:1074 #, c-format msgid "File already exists. Use it?" msgstr "ፋይሉ በፊትም ነበር። ልጠቀምበት?" #: diskdrake/interactive.pm:1106 diskdrake/interactive.pm:1109 #, c-format msgid "Mount options" msgstr "የተከላ ምርጫዎች" #: diskdrake/interactive.pm:1116 #, c-format msgid "Various" msgstr "" #: diskdrake/interactive.pm:1162 #, c-format msgid "device" msgstr "መሳሪያ" #: diskdrake/interactive.pm:1163 #, c-format msgid "level" msgstr "ደረጃ" #: diskdrake/interactive.pm:1164 #, fuzzy, c-format msgid "chunk size in KiB" msgstr "የፊደል ቅርጽ መጠን፦" #: diskdrake/interactive.pm:1182 #, c-format msgid "Be careful: this operation is dangerous." msgstr "ይጠንቀቁ: ይህ አሰራር አደገኛ ነው።" #: diskdrake/interactive.pm:1197 #, fuzzy, c-format msgid "Partitioning Type" msgstr "መከፋፈል አልተሳካም: %s" #: diskdrake/interactive.pm:1197 #, c-format msgid "What type of partitioning?" msgstr "ምን አይነት አከፋፈል?" #: diskdrake/interactive.pm:1235 #, c-format msgid "You'll need to reboot before the modification can take place" msgstr "" #: diskdrake/interactive.pm:1244 #, c-format msgid "Partition table of drive %s is going to be written to disk" msgstr "" #: diskdrake/interactive.pm:1263 fs/format.pm:102 fs/format.pm:109 #, c-format msgid "Formatting partition %s" msgstr "ክፋይ %sን በማስተካከል ላይ" #: diskdrake/interactive.pm:1276 #, c-format msgid "After formatting partition %s, all data on this partition will be lost" msgstr "" #: diskdrake/interactive.pm:1299 #, c-format msgid "Move files to the new partition" msgstr "ወደ አዲሱ ክፋይ ፋይሎችን አንቀሳቅስ" #: diskdrake/interactive.pm:1299 #, c-format msgid "Hide files" msgstr "ፋይሎች ደብቅ" #: diskdrake/interactive.pm:1300 #, c-format msgid "" "Directory %s already contains data\n" "(%s)\n" "\n" "You can either choose to move the files into the partition that will be " "mounted there or leave them where they are (which results in hiding them by " "the contents of the mounted partition)" msgstr "" #: diskdrake/interactive.pm:1315 #, c-format msgid "Moving files to the new partition" msgstr "" #: diskdrake/interactive.pm:1319 #, c-format msgid "Copying %s" msgstr "%sን በመገልበጥ ላይ" #: diskdrake/interactive.pm:1323 #, c-format msgid "Removing %s" msgstr "%sን በማስወገድ ላይ" #: diskdrake/interactive.pm:1337 #, c-format msgid "partition %s is now known as %s" msgstr "%s ከአሁን በኋላ %s በመባል ይታወቃል" #: diskdrake/interactive.pm:1338 #, c-format msgid "Partitions have been renumbered: " msgstr "" #: diskdrake/interactive.pm:1363 diskdrake/interactive.pm:1434 #, c-format msgid "Device: " msgstr "መሳሪያ: " #: diskdrake/interactive.pm:1364 #, c-format msgid "Volume label: " msgstr "" #: diskdrake/interactive.pm:1365 #, c-format msgid "UUID: " msgstr "" #: diskdrake/interactive.pm:1366 #, c-format msgid "DOS drive letter: %s (just a guess)\n" msgstr "" #: diskdrake/interactive.pm:1370 diskdrake/interactive.pm:1379 #: diskdrake/interactive.pm:1453 #, c-format msgid "Type: " msgstr "አይነት: " #: diskdrake/interactive.pm:1374 diskdrake/interactive.pm:1438 #, c-format msgid "Name: " msgstr "ስም: " #: diskdrake/interactive.pm:1381 #, c-format msgid "Start: sector %s\n" msgstr "ጀምር፦ ሴክተር %s\n" #: diskdrake/interactive.pm:1382 #, c-format msgid "Size: %s" msgstr "መጠን: %s" #: diskdrake/interactive.pm:1384 #, c-format msgid ", %s sectors" msgstr "" #: diskdrake/interactive.pm:1386 #, fuzzy, c-format msgid "Cylinder %d to %d\n" msgstr "CD ወደ" #: diskdrake/interactive.pm:1387 #, c-format msgid "Number of logical extents: %d\n" msgstr "" #: diskdrake/interactive.pm:1388 #, c-format msgid "Formatted\n" msgstr "" #: diskdrake/interactive.pm:1389 #, c-format msgid "Not formatted\n" msgstr "አልተስተካከለም\n" #: diskdrake/interactive.pm:1390 #, c-format msgid "Mounted\n" msgstr "" #: diskdrake/interactive.pm:1391 #, fuzzy, c-format msgid "RAID %s\n" msgstr "URI፦" #: diskdrake/interactive.pm:1393 #, fuzzy, c-format msgid "Encrypted" msgstr "የሚስጢራዊ ግልበጣ ቁልፍ" #: diskdrake/interactive.pm:1395 #, c-format msgid " (mapped on %s)" msgstr "" #: diskdrake/interactive.pm:1396 #, c-format msgid " (to map on %s)" msgstr "" #: diskdrake/interactive.pm:1397 #, c-format msgid " (inactive)" msgstr "" #: diskdrake/interactive.pm:1404 #, c-format msgid "" "Loopback file(s):\n" " %s\n" msgstr "" "ዞሮ መመለሻ ፋይል(ሎች):\n" " %s\n" #: diskdrake/interactive.pm:1405 #, c-format msgid "" "Partition booted by default\n" " (for MS-DOS boot, not for lilo)\n" msgstr "" #: diskdrake/interactive.pm:1407 #, c-format msgid "Level %s\n" msgstr "ደረጃ %s\n" #: diskdrake/interactive.pm:1408 #, fuzzy, c-format msgid "Chunk size %d KiB\n" msgstr "የፊደል ቅርጽ መጠን፦" #: diskdrake/interactive.pm:1409 #, c-format msgid "RAID-disks %s\n" msgstr "" #: diskdrake/interactive.pm:1411 #, c-format msgid "Loopback file name: %s" msgstr "ዞሮ መመለሻ ፋይል ስም: %s" #: diskdrake/interactive.pm:1414 #, c-format msgid "" "\n" "Chances are, this partition is\n" "a Driver partition. You should\n" "probably leave it alone.\n" msgstr "" #: diskdrake/interactive.pm:1417 #, c-format msgid "" "\n" "This special Bootstrap\n" "partition is for\n" "dual-booting your system.\n" msgstr "" #: diskdrake/interactive.pm:1426 #, c-format msgid "Free space on %s (%s)" msgstr "" #: diskdrake/interactive.pm:1435 #, c-format msgid "Read-only" msgstr "ለንባብ ብቻ" #: diskdrake/interactive.pm:1436 #, c-format msgid "Size: %s\n" msgstr "መጠን፦ %s\n" #: diskdrake/interactive.pm:1437 #, c-format msgid "Geometry: %s cylinders, %s heads, %s sectors\n" msgstr "" #: diskdrake/interactive.pm:1439 #, fuzzy, c-format msgid "Medium type: " msgstr "የፋይል ሲስተም አይነት: " #: diskdrake/interactive.pm:1440 #, c-format msgid "LVM-disks %s\n" msgstr "" #: diskdrake/interactive.pm:1441 #, c-format msgid "Partition table type: %s\n" msgstr "የክፋይ ጠረጴዛ ዓይነት: %s\n" #: diskdrake/interactive.pm:1442 #, c-format msgid "on channel %d id %d\n" msgstr "በጣቢያ %d ID %d\n" #: diskdrake/interactive.pm:1486 #, c-format msgid "Choose your filesystem encryption key" msgstr "" #: diskdrake/interactive.pm:1489 #, c-format msgid "This encryption key is too simple (must be at least %d characters long)" msgstr "" #: diskdrake/interactive.pm:1496 #, c-format msgid "Encryption algorithm" msgstr "" #: diskdrake/removable.pm:46 #, c-format msgid "Change type" msgstr "አይነት ለውጥ" #: diskdrake/smbnfs_gtk.pm:81 interactive.pm:129 interactive.pm:550 #: interactive/curses.pm:260 interactive/http.pm:104 interactive/http.pm:160 #: interactive/stdio.pm:39 interactive/stdio.pm:148 mygtk2.pm:847 ugtk2.pm:415 #: ugtk2.pm:517 ugtk2.pm:526 ugtk2.pm:812 #, c-format msgid "Cancel" msgstr "ተወው" #: diskdrake/smbnfs_gtk.pm:164 #, c-format msgid "Can not login using username %s (bad password?)" msgstr "" #: diskdrake/smbnfs_gtk.pm:168 diskdrake/smbnfs_gtk.pm:177 #, fuzzy, c-format msgid "Domain Authentication Required" msgstr "የተጠቃሚው የአጠቃቀም ደረጃ ያስፈልጋል" #: diskdrake/smbnfs_gtk.pm:169 #, c-format msgid "Which username" msgstr "የትኛው የተጠቃሚ ስም" #: diskdrake/smbnfs_gtk.pm:169 #, c-format msgid "Another one" msgstr "ሌላ" #: diskdrake/smbnfs_gtk.pm:178 #, c-format msgid "" "Please enter your username, password and domain name to access this host." msgstr "" #: diskdrake/smbnfs_gtk.pm:180 #, c-format msgid "Username" msgstr "የተጠቃሚ ስም" #: diskdrake/smbnfs_gtk.pm:182 #, c-format msgid "Domain" msgstr "ዶሜን" #: diskdrake/smbnfs_gtk.pm:206 #, c-format msgid "Search servers" msgstr "ሰርቨሮችን ፈልግ" #: diskdrake/smbnfs_gtk.pm:211 #, c-format msgid "Search new servers" msgstr "አዲስ ሰርቨሮችን ፈልግ" #: do_pkgs.pm:19 do_pkgs.pm:57 #, c-format msgid "The package %s needs to be installed. Do you want to install it?" msgstr "ጥቅል %s ይፈለጋል። መትከል ይፈልጋሉ?" #: do_pkgs.pm:23 do_pkgs.pm:44 do_pkgs.pm:60 do_pkgs.pm:82 #, fuzzy, c-format msgid "Could not install the %s package!" msgstr "ምርጫዎችን ማስቀመጥ አልተቻለም" #: do_pkgs.pm:28 do_pkgs.pm:65 #, c-format msgid "Mandatory package %s is missing" msgstr "" #: do_pkgs.pm:39 do_pkgs.pm:77 #, c-format msgid "The following packages need to be installed:\n" msgstr "" #: do_pkgs.pm:241 #, c-format msgid "Installing packages..." msgstr "ጥቅሎችን በመትከል ላይ..." #: do_pkgs.pm:287 pkgs.pm:285 #, c-format msgid "Removing packages..." msgstr "ጥቅሎችን በማስወገድ ላይ..." #: fs/any.pm:17 #, c-format msgid "" "An error occurred - no valid devices were found on which to create new " "filesystems. Please check your hardware for the cause of this problem" msgstr "" #: fs/any.pm:75 fs/partitioning_wizard.pm:62 #, c-format msgid "You must have a FAT partition mounted in /boot/efi" msgstr "" #: fs/format.pm:106 #, c-format msgid "Creating and formatting file %s" msgstr "ፋይል %sን በመፍጠር እና በማስተካከል ላይ" #: fs/format.pm:125 #, c-format msgid "I do not know how to set label on %s with type %s" msgstr "" #: fs/format.pm:134 #, fuzzy, c-format msgid "setting label on %s failed, is it formatted?" msgstr "%s %sን ማስተካከል አልተሳካም" #: fs/format.pm:175 #, c-format msgid "I do not know how to format %s in type %s" msgstr "" #: fs/format.pm:180 fs/format.pm:182 #, c-format msgid "%s formatting of %s failed" msgstr "%s %sን ማስተካከል አልተሳካም" #: fs/loopback.pm:24 #, c-format msgid "Circular mounts %s\n" msgstr "" #: fs/mount.pm:85 #, c-format msgid "Mounting partition %s" msgstr "" #: fs/mount.pm:86 #, c-format msgid "mounting partition %s in directory %s failed" msgstr "" #: fs/mount.pm:91 fs/mount.pm:108 #, c-format msgid "Checking %s" msgstr "%sን በማጣራት ላይ" #: fs/mount.pm:125 partition_table.pm:409 #, c-format msgid "error unmounting %s: %s" msgstr "%sን የመንቀል ስህተት: %s" #: fs/mount.pm:140 #, c-format msgid "Enabling swap partition %s" msgstr "የስዋፕ ክፋይ %sን በማስቻል ላይ" #: fs/mount_options.pm:112 #, c-format msgid "Enable Posix Access Control Lists" msgstr "" #: fs/mount_options.pm:114 #, c-format msgid "Flush write cache on file close" msgstr "" #: fs/mount_options.pm:116 #, c-format msgid "Enable group disk quota accounting and optionally enforce limits" msgstr "" #: fs/mount_options.pm:118 #, c-format msgid "" "Do not update inode access times on this file system\n" "(e.g, for faster access on the news spool to speed up news servers)." msgstr "" #: fs/mount_options.pm:121 #, c-format msgid "" "Update inode access times on this filesystem in a more efficient way\n" "(e.g, for faster access on the news spool to speed up news servers)." msgstr "" #: fs/mount_options.pm:124 #, c-format msgid "" "Can only be mounted explicitly (i.e.,\n" "the -a option will not cause the file system to be mounted)." msgstr "" #: fs/mount_options.pm:127 #, c-format msgid "Do not interpret character or block special devices on the file system." msgstr "" #: fs/mount_options.pm:129 #, c-format msgid "" "Do not allow execution of any binaries on the mounted\n" "file system. This option might be useful for a server that has file systems\n" "containing binaries for architectures other than its own." msgstr "" #: fs/mount_options.pm:133 #, c-format msgid "" "Do not allow set-user-identifier or set-group-identifier\n" "bits to take effect. (This seems safe, but is in fact rather unsafe if you\n" "have suidperl(1) installed.)" msgstr "" #: fs/mount_options.pm:137 #, c-format msgid "Mount the file system read-only." msgstr "" #: fs/mount_options.pm:139 #, c-format msgid "All I/O to the file system should be done synchronously." msgstr "" #: fs/mount_options.pm:141 #, c-format msgid "Allow every user to mount and umount the file system." msgstr "" #: fs/mount_options.pm:143 #, c-format msgid "Allow an ordinary user to mount the file system." msgstr "" #: fs/mount_options.pm:145 #, c-format msgid "Enable user disk quota accounting, and optionally enforce limits" msgstr "" #: fs/mount_options.pm:147 #, c-format msgid "Support \"user.\" extended attributes" msgstr "" #: fs/mount_options.pm:149 #, c-format msgid "Give write access to ordinary users" msgstr "ለተራ ተጠቃሚዎች የመጻፍ ፈቃድ ስጥ" #: fs/mount_options.pm:151 #, c-format msgid "Give read-only access to ordinary users" msgstr "ለተራ ተጠቃሚዎች የንባብ ፈቃድ ብቻ ስጥ" #: fs/mount_point.pm:82 #, fuzzy, c-format msgid "Duplicate mount point %s" msgstr "እያንዳንዱን የተመረጠውን አርዕስተ ጉዳይ አባዙ" #: fs/mount_point.pm:97 #, c-format msgid "No partition available" msgstr "ምንም ክፋይ አልተገኘም" #: fs/mount_point.pm:100 #, c-format msgid "Scanning partitions to find mount points" msgstr "" #: fs/mount_point.pm:107 #, fuzzy, c-format msgid "Choose the mount points" msgstr "የመመልከቻውን ቀለም ይምረጡ" #: fs/partitioning.pm:46 #, fuzzy, c-format msgid "Choose the partitions you want to format" msgstr "እባክዎ ለማሳየት የሚፈልጉትን ተጠቃሽ-መረጃ ይምረጡ:" #: fs/partitioning.pm:75 #, c-format msgid "" "Failed to check filesystem %s. Do you want to repair the errors? (beware, " "you can lose data)" msgstr "" #: fs/partitioning.pm:78 #, c-format msgid "Not enough swap space to fulfill installation, please add some" msgstr "" #: fs/partitioning_wizard.pm:53 #, c-format msgid "" "You must have a root partition.\n" "For this, create a partition (or click on an existing one).\n" "Then choose action ``Mount point'' and set it to `/'" msgstr "" #: fs/partitioning_wizard.pm:59 #, c-format msgid "" "You do not have a swap partition.\n" "\n" "Continue anyway?" msgstr "" #: fs/partitioning_wizard.pm:93 #, c-format msgid "Use free space" msgstr "ነጻ ቦታ ተጠቀም" #: fs/partitioning_wizard.pm:95 #, fuzzy, c-format msgid "Not enough free space to allocate new partitions" msgstr "ወደ አዲሱ ክፋይ ፋይሎችን አንቀሳቅስ" #: fs/partitioning_wizard.pm:103 #, c-format msgid "Use existing partitions" msgstr "የነበሩትን ክፋዮች ተጠቀም" #: fs/partitioning_wizard.pm:105 #, c-format msgid "There is no existing partition to use" msgstr "" #: fs/partitioning_wizard.pm:129 #, c-format msgid "Computing the size of the Microsoft Windows® partition" msgstr "" #: fs/partitioning_wizard.pm:165 #, fuzzy, c-format msgid "Use the free space on a Microsoft Windows® partition" msgstr "የMicrosoft Windows® ክፋይ መጠን በማስተካከል ላይ" #: fs/partitioning_wizard.pm:169 #, fuzzy, c-format msgid "Which partition do you want to resize?" msgstr "ምን ማድረግ ይፈልጋሉ?" #: fs/partitioning_wizard.pm:172 #, c-format msgid "" "Your Microsoft Windows® partition is too fragmented. Please reboot your " "computer under Microsoft Windows®, run the ``defrag'' utility, then restart " "the Mageia Linux installation." msgstr "" #: fs/partitioning_wizard.pm:180 #, c-format msgid "" "WARNING!\n" "\n" "\n" "Your Microsoft Windows® partition will be now resized.\n" "\n" "\n" "Be careful: this operation is dangerous. If you have not already done so, " "you first need to exit the installation, run \"chkdsk c:\" from a Command " "Prompt under Microsoft Windows® (beware, running graphical program \"scandisk" "\" is not enough, be sure to use \"chkdsk\" in a Command Prompt!), " "optionally run defrag, then restart the installation. You should also backup " "your data.\n" "\n" "\n" "When sure, press %s." msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: fs/partitioning_wizard.pm:189 fs/partitioning_wizard.pm:557 #: interactive.pm:549 interactive/curses.pm:263 ugtk2.pm:519 #, c-format msgid "Next" msgstr "የሚቀጥለው" #: fs/partitioning_wizard.pm:195 #, fuzzy, c-format msgid "Partitionning" msgstr "መከፋፈል አልተሳካም: %s" #: fs/partitioning_wizard.pm:195 #, fuzzy, c-format msgid "Which size do you want to keep for Microsoft Windows® on partition %s?" msgstr "የMicrosoft Windows® ክፋይ መጠን በማስተካከል ላይ" #: fs/partitioning_wizard.pm:196 #, c-format msgid "Size" msgstr "መጠን" #: fs/partitioning_wizard.pm:205 #, c-format msgid "Resizing Microsoft Windows® partition" msgstr "የMicrosoft Windows® ክፋይ መጠን በማስተካከል ላይ" #: fs/partitioning_wizard.pm:210 #, c-format msgid "FAT resizing failed: %s" msgstr "የFATን መጠን መለወጥ አልተሳካም: %s" #: fs/partitioning_wizard.pm:226 #, c-format msgid "There is no FAT partition to resize (or not enough space left)" msgstr "" #: fs/partitioning_wizard.pm:231 #, c-format msgid "Remove Microsoft Windows®" msgstr "Microsoft Windows®ን አስወግድ" #: fs/partitioning_wizard.pm:231 #, fuzzy, c-format msgid "Erase and use entire disk" msgstr "ዲስኩን እንዳለ ደምስስ" #: fs/partitioning_wizard.pm:235 #, c-format msgid "" "You have more than one hard disk drive, which one do you want the installer " "to use?" msgstr "" #: fs/partitioning_wizard.pm:243 fsedit.pm:632 #, c-format msgid "ALL existing partitions and their data will be lost on drive %s" msgstr "" #: fs/partitioning_wizard.pm:253 #, c-format msgid "Custom disk partitioning" msgstr "የተለመደውን ዲስክ አከፋፈል" #: fs/partitioning_wizard.pm:259 #, c-format msgid "Use fdisk" msgstr "fdiskን ተጠቀም" #: fs/partitioning_wizard.pm:262 #, c-format msgid "" "You can now partition %s.\n" "When you are done, do not forget to save using `w'" msgstr "" #: fs/partitioning_wizard.pm:401 #, fuzzy, c-format msgid "Ext2/3/4" msgstr "ውጣ" #: fs/partitioning_wizard.pm:431 fs/partitioning_wizard.pm:577 #, c-format msgid "I can not find any room for installing" msgstr "የመትከያ ቦታ ማግኘት አልቻልኩም" #: fs/partitioning_wizard.pm:440 fs/partitioning_wizard.pm:584 #, c-format msgid "The DrakX Partitioning wizard found the following solutions:" msgstr "" #: fs/partitioning_wizard.pm:510 #, c-format msgid "Here is the content of your disk drive " msgstr "" #: fs/partitioning_wizard.pm:594 #, c-format msgid "Partitioning failed: %s" msgstr "መከፋፈል አልተሳካም: %s" #: fs/type.pm:393 #, c-format msgid "You can not use JFS for partitions smaller than 16MB" msgstr "" #: fs/type.pm:394 #, c-format msgid "You can not use ReiserFS for partitions smaller than 32MB" msgstr "" #: fsedit.pm:24 #, c-format msgid "simple" msgstr "ቀላል" #: fsedit.pm:28 #, c-format msgid "with /usr" msgstr "ከ/usr ጋር" #: fsedit.pm:33 #, c-format msgid "server" msgstr "ሰርቨር" #: fsedit.pm:137 #, c-format msgid "BIOS software RAID detected on disks %s. Activate it?" msgstr "" #: fsedit.pm:247 #, c-format msgid "" "I can not read the partition table of device %s, it's too corrupted for me :" "(\n" "I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n" "The other solution is to not allow DrakX to modify the partition table.\n" "(the error is %s)\n" "\n" "Do you agree to lose all the partitions?\n" msgstr "" #: fsedit.pm:427 #, c-format msgid "Mount points must begin with a leading /" msgstr "" #: fsedit.pm:428 #, c-format msgid "Mount points should contain only alphanumerical characters" msgstr "" #: fsedit.pm:429 #, c-format msgid "There is already a partition with mount point %s\n" msgstr "" #: fsedit.pm:434 #, c-format msgid "" "You've selected a software RAID partition as root (/).\n" "No bootloader is able to handle this without a /boot partition.\n" "Please be sure to add a /boot partition" msgstr "" #: fsedit.pm:440 #, c-format msgid "" "Metadata version unsupported for a boot partition. Please be sure to add a /" "boot partition." msgstr "" #: fsedit.pm:448 #, c-format msgid "" "You've selected a software RAID partition as /boot.\n" "No bootloader is able to handle this." msgstr "" #: fsedit.pm:452 #, c-format msgid "Metadata version unsupported for a boot partition." msgstr "" #: fsedit.pm:459 #, c-format msgid "" "You've selected an encrypted partition as root (/).\n" "No bootloader is able to handle this without a /boot partition.\n" "Please be sure to add a /boot partition" msgstr "" #: fsedit.pm:465 fsedit.pm:483 #, c-format msgid "You can not use an encrypted file system for mount point %s" msgstr "" #: fsedit.pm:469 #, c-format msgid "" "You can not use the LVM Logical Volume for mount point %s since it spans " "physical volumes" msgstr "" #: fsedit.pm:471 #, c-format msgid "" "You've selected the LVM Logical Volume as root (/).\n" "The bootloader is not able to handle this when the volume spans physical " "volumes.\n" "You should create a /boot partition first" msgstr "" #: fsedit.pm:475 fsedit.pm:477 #, c-format msgid "This directory should remain within the root filesystem" msgstr "" #: fsedit.pm:479 fsedit.pm:481 #, c-format msgid "" "You need a true filesystem (ext2/3/4, reiserfs, xfs, or jfs) for this mount " "point\n" msgstr "" #: fsedit.pm:548 #, c-format msgid "Not enough free space for auto-allocating" msgstr "" #: fsedit.pm:550 #, c-format msgid "Nothing to do" msgstr "የሚሰራ ነገር የለም" #: harddrake/data.pm:62 #, c-format msgid "SATA controllers" msgstr "የSATA ተቆጣጣሪዎች" #: harddrake/data.pm:71 #, c-format msgid "RAID controllers" msgstr "የRAID ተቆጣጣሪዎች" #: harddrake/data.pm:81 #, c-format msgid "(E)IDE/ATA controllers" msgstr "(E)IDE/ATA ተቆጣጣሪዎች" #: harddrake/data.pm:92 #, fuzzy, c-format msgid "Card readers" msgstr "የካርድ ሞዴል፦" #: harddrake/data.pm:101 #, c-format msgid "Firewire controllers" msgstr "የFirewire ተቆጣጣሪዎች" #: harddrake/data.pm:110 #, c-format msgid "PCMCIA controllers" msgstr "የPCMCIA ተቆጣጣዊዎች" #: harddrake/data.pm:119 #, c-format msgid "SCSI controllers" msgstr "የSCSI ተቆጣጣዊዎች" #: harddrake/data.pm:128 #, c-format msgid "USB controllers" msgstr "የUSB ተቆጣጣቂዎች" #: harddrake/data.pm:137 #, c-format msgid "USB ports" msgstr "የUSB ፖርቶች" #: harddrake/data.pm:146 #, c-format msgid "SMBus controllers" msgstr "የSMBus ተቆጣጣሪዎች" #: harddrake/data.pm:155 #, c-format msgid "Bridges and system controllers" msgstr "ድልድዮች እና ሲስተም ተቆጣጣሪዎች" #: harddrake/data.pm:167 #, c-format msgid "Floppy" msgstr "ፍሎፒ" #: harddrake/data.pm:177 #, c-format msgid "Zip" msgstr "ዚፕ" #: harddrake/data.pm:193 #, c-format msgid "Hard Disk" msgstr "ዲስክ" #: harddrake/data.pm:203 #, c-format msgid "USB Mass Storage Devices" msgstr "" #: harddrake/data.pm:212 #, c-format msgid "CDROM" msgstr "ሲዲ-ሮም" #: harddrake/data.pm:222 #, c-format msgid "CD/DVD burners" msgstr "ዲሲ/ዲቪዲ አቃጣይ ፕሮግራሞች" #: harddrake/data.pm:232 #, c-format msgid "DVD-ROM" msgstr "ዲቪዲ-ሮም" #: harddrake/data.pm:242 #, c-format msgid "Tape" msgstr "ቴፕ" #: harddrake/data.pm:253 #, c-format msgid "AGP controllers" msgstr "የAGP ተቆጣጣሪዎች" #: harddrake/data.pm:262 #, c-format msgid "Videocard" msgstr "የቪዲዮ ካርድ" #: harddrake/data.pm:271 #, c-format msgid "DVB card" msgstr "" #: harddrake/data.pm:279 #, c-format msgid "Tvcard" msgstr "የቲቪ ካርድ" #: harddrake/data.pm:289 #, c-format msgid "Other MultiMedia devices" msgstr "ሌሎች የመገናኛ ብዙሃን መሳሪያዎች" #: harddrake/data.pm:298 #, c-format msgid "Soundcard" msgstr "የድምጽ ካርድ" #: harddrake/data.pm:312 #, c-format msgid "Webcam" msgstr "ዌብ-ካም" #: harddrake/data.pm:327 #, c-format msgid "Processors" msgstr "" #: harddrake/data.pm:337 #, c-format msgid "ISDN adapters" msgstr "የISDN ማመጣጠኛዎች" #: harddrake/data.pm:348 #, c-format msgid "USB sound devices" msgstr "" #: harddrake/data.pm:357 #, c-format msgid "Radio cards" msgstr "" #: harddrake/data.pm:366 #, c-format msgid "ATM network cards" msgstr "" #: harddrake/data.pm:375 #, c-format msgid "WAN network cards" msgstr "" #: harddrake/data.pm:384 #, c-format msgid "Bluetooth devices" msgstr "" #: harddrake/data.pm:393 #, c-format msgid "Ethernetcard" msgstr "የኢተርኔት ካርድ" #: harddrake/data.pm:410 #, c-format msgid "Modem" msgstr "ሞደም" #: harddrake/data.pm:420 #, c-format msgid "ADSL adapters" msgstr "የADSL ማመጣጠኛዎች" #: harddrake/data.pm:432 #, c-format msgid "Memory" msgstr "ማስታወሻ" #: harddrake/data.pm:441 #, c-format msgid "Printer" msgstr "ማተሚያ" #. -PO: these are joysticks controllers: #: harddrake/data.pm:455 #, c-format msgid "Game port controllers" msgstr "" #: harddrake/data.pm:464 #, c-format msgid "Joystick" msgstr "ጆይ ስቲክ" #: harddrake/data.pm:474 #, c-format msgid "Keyboard" msgstr "መተየቢያ" #: harddrake/data.pm:488 #, c-format msgid "Tablet and touchscreen" msgstr "" #: harddrake/data.pm:497 #, c-format msgid "Mouse" msgstr "መጠቆሚያ" #: harddrake/data.pm:512 #, c-format msgid "Biometry" msgstr "" #: harddrake/data.pm:520 #, c-format msgid "UPS" msgstr "UPS" #: harddrake/data.pm:529 #, c-format msgid "Scanner" msgstr "" #: harddrake/data.pm:540 #, c-format msgid "Unknown/Others" msgstr "ያልታወቀ/ሌሎች" #: harddrake/data.pm:570 #, c-format msgid "cpu # " msgstr "ሲፒዩ #" #: harddrake/sound.pm:303 #, c-format msgid "Please Wait... Applying the configuration" msgstr "እባክዎ ይጠብቁ... ምርጫውን በስራ ላይ አያዋለ ነው" #: harddrake/sound.pm:366 #, c-format msgid "Enable PulseAudio" msgstr "" #: harddrake/sound.pm:370 #, c-format msgid "Enable 5.1 sound with Pulse Audio" msgstr "" #: harddrake/sound.pm:375 #, c-format msgid "Enable user switching for audio applications" msgstr "" #: harddrake/sound.pm:379 #, c-format msgid "Use Glitch-Free mode" msgstr "" #: harddrake/sound.pm:385 #, c-format msgid "Reset sound mixer to default values" msgstr "" #: harddrake/sound.pm:390 #, c-format msgid "Trouble shooting" msgstr "" #: harddrake/sound.pm:397 #, fuzzy, c-format msgid "No alternative driver" msgstr "ምንም " #: harddrake/sound.pm:398 #, c-format msgid "" "There's no known OSS/ALSA alternative driver for your sound card (%s) which " "currently uses \"%s\"" msgstr "" #: harddrake/sound.pm:405 #, c-format msgid "Sound configuration" msgstr "የድምጽ ምርጫ" #: harddrake/sound.pm:407 #, c-format msgid "" "Here you can select an alternative driver (either OSS or ALSA) for your " "sound card (%s)." msgstr "" #. -PO: here the first %s is either "OSS" or "ALSA", #. -PO: the second %s is the name of the current driver #. -PO: and the third %s is the name of the default driver #: harddrake/sound.pm:412 #, c-format msgid "" "\n" "\n" "Your card currently uses the %s\"%s\" driver (the default driver for your " "card is \"%s\")" msgstr "" #: harddrake/sound.pm:414 #, c-format msgid "" "OSS (Open Sound System) was the first sound API. It's an OS independent " "sound API (it's available on most UNIX(tm) systems) but it's a very basic " "and limited API.\n" "What's more, OSS drivers all reinvent the wheel.\n" "\n" "ALSA (Advanced Linux Sound Architecture) is a modularized architecture " "which\n" "supports quite a large range of ISA, USB and PCI cards.\n" "\n" "It also provides a much higher API than OSS.\n" "\n" "To use alsa, one can either use:\n" "- the old compatibility OSS api\n" "- the new ALSA api that provides many enhanced features but requires using " "the ALSA library.\n" msgstr "" #: harddrake/sound.pm:428 harddrake/sound.pm:511 #, c-format msgid "Driver:" msgstr "" #: harddrake/sound.pm:442 #, c-format msgid "" "The old \"%s\" driver is blacklisted.\n" "\n" "It has been reported to oops the kernel on unloading.\n" "\n" "The new \"%s\" driver will only be used on next bootstrap." msgstr "" #: harddrake/sound.pm:450 #, fuzzy, c-format msgid "No open source driver" msgstr "ስለ የነፃው ሶፍትዌር መረጃ አሳይ" #: harddrake/sound.pm:451 #, c-format msgid "" "There's no free driver for your sound card (%s), but there's a proprietary " "driver at \"%s\"." msgstr "" #: harddrake/sound.pm:454 #, fuzzy, c-format msgid "No known driver" msgstr "(ስለ ቃላት አጻጻፍ አስተያየት የለም)" #: harddrake/sound.pm:455 #, c-format msgid "There's no known driver for your sound card (%s)" msgstr "" #: harddrake/sound.pm:470 #, c-format msgid "Sound trouble shooting" msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:473 #, c-format msgid "" "The classic bug sound tester is to run the following commands:\n" "\n" "\n" "- \"lspcidrake -v | fgrep -i AUDIO\" will tell you which driver your card " "uses\n" "by default\n" "\n" "- \"grep sound-slot /etc/modprobe.conf\" will tell you what driver it\n" "currently uses\n" "\n" "- \"/sbin/lsmod\" will enable you to check if its module (driver) is\n" "loaded or not\n" "\n" "- \"/sbin/chkconfig --list sound\" and \"/sbin/chkconfig --list alsa\" will\n" "tell you if sound and alsa services are configured to be run on\n" "initlevel 3\n" "\n" "- \"aumix -q\" will tell you if the sound volume is muted or not\n" "\n" "- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.\n" msgstr "" #: harddrake/sound.pm:500 #, c-format msgid "Let me pick any driver" msgstr "" #: harddrake/sound.pm:503 #, fuzzy, c-format msgid "Choosing an arbitrary driver" msgstr "የነሲብ URLን አታስችል" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:506 #, c-format msgid "" "If you really think that you know which driver is the right one for your " "card\n" "you can pick one in the above list.\n" "\n" "The current driver for your \"%s\" sound card is \"%s\" " msgstr "" #: harddrake/v4l.pm:12 #, c-format msgid "Auto-detect" msgstr "በራስ-ገዝ ፈልጎ አግኝ" #: harddrake/v4l.pm:97 harddrake/v4l.pm:285 harddrake/v4l.pm:337 #, c-format msgid "Unknown|Generic" msgstr "ያልታወቀ|አጠቃላይ" #: harddrake/v4l.pm:130 #, c-format msgid "Unknown|CPH05X (bt878) [many vendors]" msgstr "" #: harddrake/v4l.pm:131 #, c-format msgid "Unknown|CPH06X (bt878) [many vendors]" msgstr "" #: harddrake/v4l.pm:475 #, c-format msgid "" "For most modern TV cards, the bttv module of the GNU/Linux kernel just auto-" "detect the rights parameters.\n" "If your card is misdetected, you can force the right tuner and card types " "here. Just select your tv card parameters if needed." msgstr "" #: harddrake/v4l.pm:478 #, c-format msgid "Card model:" msgstr "የካርድ ሞዴል፦" #: harddrake/v4l.pm:479 #, fuzzy, c-format msgid "Tuner type:" msgstr "የፋይሉ ዓይነት" #: interactive.pm:128 interactive.pm:549 interactive/curses.pm:263 #: interactive/http.pm:103 interactive/http.pm:156 interactive/stdio.pm:39 #: interactive/stdio.pm:148 interactive/stdio.pm:149 mygtk2.pm:847 #: ugtk2.pm:421 ugtk2.pm:519 ugtk2.pm:812 ugtk2.pm:835 #, c-format msgid "Ok" msgstr "እሺ" #: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156 #, c-format msgid "Yes" msgstr "አዎ" #: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156 #, c-format msgid "No" msgstr "አይ" #: interactive.pm:262 #, c-format msgid "Choose a file" msgstr "ፋይል ይምረጡ" #: interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Add" msgstr "ጨምር" #: interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Modify" msgstr "ለውጥ" #: interactive.pm:549 interactive/curses.pm:263 ugtk2.pm:519 #, c-format msgid "Finish" msgstr "ጨርስ" #: interactive.pm:550 interactive/curses.pm:260 ugtk2.pm:517 #, c-format msgid "Previous" msgstr "የቀድሞው" #: interactive/curses.pm:556 ugtk2.pm:872 #, fuzzy, c-format msgid "No file chosen" msgstr "የፋይል ምልክት" #: interactive/curses.pm:560 ugtk2.pm:876 #, fuzzy, c-format msgid "You have chosen a directory, not a file" msgstr "የቤት ዶሴ አልተገኘም።" #: interactive/curses.pm:562 ugtk2.pm:878 #, fuzzy, c-format msgid "No such directory" msgstr "ዶሴ አይደለም" #: interactive/curses.pm:562 ugtk2.pm:878 #, fuzzy, c-format msgid "No such file" msgstr "ፋይሉ `%s'ን የለም\n" #: interactive/gtk.pm:594 #, c-format msgid "Beware, Caps Lock is enabled" msgstr "" #: interactive/stdio.pm:29 interactive/stdio.pm:154 #, c-format msgid "Bad choice, try again\n" msgstr "የማይመች ምርጫ፣ እንደገና ይሞክሩ\n" #: interactive/stdio.pm:30 interactive/stdio.pm:155 #, c-format msgid "Your choice? (default %s) " msgstr "ምርጫዎ? (የቀድሞ %s) " #: interactive/stdio.pm:54 #, c-format msgid "" "Entries you'll have to fill:\n" "%s" msgstr "" #: interactive/stdio.pm:70 #, c-format msgid "Your choice? (0/1, default `%s') " msgstr "ምርጫዎ? (0/1፣ የቀድሞ `%s') " #: interactive/stdio.pm:97 #, c-format msgid "Button `%s': %s" msgstr "ቁልፍ `%s': %s" #: interactive/stdio.pm:98 #, c-format msgid "Do you want to click on this button?" msgstr "እዚህ ቁልፍ ላይ መጫን ይፈልጋሉ?" #: interactive/stdio.pm:110 #, c-format msgid "Your choice? (default `%s'%s) " msgstr "ምርጫዎ? (የቀድሞ `%s'%s) " #: interactive/stdio.pm:110 #, c-format msgid " enter `void' for void entry" msgstr "" #: interactive/stdio.pm:128 #, c-format msgid "=> There are many things to choose from (%s).\n" msgstr "" #: interactive/stdio.pm:131 #, c-format msgid "" "Please choose the first number of the 10-range you wish to edit,\n" "or just hit Enter to proceed.\n" "Your choice? " msgstr "" #: interactive/stdio.pm:144 #, c-format msgid "" "=> Notice, a label changed:\n" "%s" msgstr "" "=> ማሳሰቢያ፣ ስያሜ ተቀይሯል:\n" "%s" #: interactive/stdio.pm:151 #, c-format msgid "Re-submit" msgstr "እንደገና ውሰድ" #. -PO: the string "default:LTR" can be translated *ONLY* as "default:LTR" #. -PO: or as "default:RTL", depending if your language is written from #. -PO: left to right, or from right to left; any other string is wrong. #: lang.pm:203 #, c-format msgid "default:LTR" msgstr "default:LTR" #: lang.pm:220 #, c-format msgid "Andorra" msgstr "አንዶራ" #: lang.pm:221 timezone.pm:226 #, c-format msgid "United Arab Emirates" msgstr "የተባበሩት አረብ ኤምሬትስ" #: lang.pm:222 #, c-format msgid "Afghanistan" msgstr "አፍጋኒስታን" #: lang.pm:223 #, c-format msgid "Antigua and Barbuda" msgstr "አንቲጉዋ እና ባርቡዳ" #: lang.pm:224 #, c-format msgid "Anguilla" msgstr "አንጉኢላ" #: lang.pm:225 #, c-format msgid "Albania" msgstr "አልባኒያ" #: lang.pm:226 #, c-format msgid "Armenia" msgstr "አርሜኒያ" #: lang.pm:227 #, c-format msgid "Netherlands Antilles" msgstr "ኔዘርላንድስ አንቲልስ" #: lang.pm:228 #, c-format msgid "Angola" msgstr "አንጐላ" #: lang.pm:229 #, c-format msgid "Antarctica" msgstr "አንታርክቲካ" #: lang.pm:230 timezone.pm:271 #, c-format msgid "Argentina" msgstr "አርጀንቲና" #: lang.pm:231 #, c-format msgid "American Samoa" msgstr "የአሜሪካ ሳሞአ" #: lang.pm:232 mirror.pm:12 timezone.pm:229 #, c-format msgid "Austria" msgstr "ኦስትሪያ" #: lang.pm:233 mirror.pm:11 timezone.pm:267 #, c-format msgid "Australia" msgstr "አውስትሬሊያ" #: lang.pm:234 #, c-format msgid "Aruba" msgstr "አሩባ" #: lang.pm:235 #, c-format msgid "Azerbaijan" msgstr "አዘርባጃን" #: lang.pm:236 #, c-format msgid "Bosnia and Herzegovina" msgstr "ቦስኒያ እና ሄርዞጎቪኒያ" #: lang.pm:237 #, c-format msgid "Barbados" msgstr "ባርቤዶስ" #: lang.pm:238 timezone.pm:211 #, c-format msgid "Bangladesh" msgstr "ባንግላዲሽ" #: lang.pm:239 mirror.pm:13 timezone.pm:231 #, c-format msgid "Belgium" msgstr "ቤልጄም" #: lang.pm:240 #, c-format msgid "Burkina Faso" msgstr "ቡርኪና ፋሶ" #: lang.pm:241 timezone.pm:232 #, c-format msgid "Bulgaria" msgstr "ቡልጌሪያ" #: lang.pm:242 #, c-format msgid "Bahrain" msgstr "ባህሬን" #: lang.pm:243 #, c-format msgid "Burundi" msgstr "ብሩንዲ" #: lang.pm:244 #, c-format msgid "Benin" msgstr "ቤኒን" #: lang.pm:245 #, c-format msgid "Bermuda" msgstr "ቤርሙዳ" #: lang.pm:246 #, c-format msgid "Brunei Darussalam" msgstr "ብሩኒ ዳሩሳላም" #: lang.pm:247 #, c-format msgid "Bolivia" msgstr "ቦሊቪያ" #: lang.pm:248 mirror.pm:14 timezone.pm:272 #, c-format msgid "Brazil" msgstr "ብራዚል" #: lang.pm:249 #, c-format msgid "Bahamas" msgstr "ባሃማስ" #: lang.pm:250 #, c-format msgid "Bhutan" msgstr "ቡህታን" #: lang.pm:251 #, c-format msgid "Bouvet Island" msgstr "የቦውቬት ደሴት" #: lang.pm:252 #, c-format msgid "Botswana" msgstr "ቦትስዋና" #: lang.pm:253 timezone.pm:230 #, c-format msgid "Belarus" msgstr "ቤላሩስ" #: lang.pm:254 #, c-format msgid "Belize" msgstr "ቤሊዘ" #: lang.pm:255 mirror.pm:15 timezone.pm:261 #, c-format msgid "Canada" msgstr "ካናዳ" #: lang.pm:256 #, c-format msgid "Cocos (Keeling) Islands" msgstr "ኮኮስ (ኬሊንግ) ደሴቶች" #: lang.pm:257 #, c-format msgid "Congo (Kinshasa)" msgstr "የኮንጐ ዲሞክራሲያዊ ሪፑብሊክ" #: lang.pm:258 #, c-format msgid "Central African Republic" msgstr "የመካከለኛው አፍሪካ ሪፐብሊክ" #: lang.pm:259 #, c-format msgid "Congo (Brazzaville)" msgstr "የኮንጐ ዲሞክራሲያዊ ሪፑብሊክ" #: lang.pm:260 mirror.pm:39 timezone.pm:255 #, c-format msgid "Switzerland" msgstr "ስዊዘርላንድ" #: lang.pm:261 #, c-format msgid "Cote d'Ivoire" msgstr "ኮት ዲቯር" #: lang.pm:262 #, c-format msgid "Cook Islands" msgstr "ኩክ ደሴቶች" #: lang.pm:263 timezone.pm:273 #, c-format msgid "Chile" msgstr "ቺሊ" #: lang.pm:264 #, c-format msgid "Cameroon" msgstr "ካሜሩን" #: lang.pm:265 timezone.pm:212 #, c-format msgid "China" msgstr "ቻይና" #: lang.pm:266 #, c-format msgid "Colombia" msgstr "ኮሎምቢያ" #: lang.pm:267 mirror.pm:16 #, c-format msgid "Costa Rica" msgstr "ኮስታሪካ" #: lang.pm:268 #, c-format msgid "Serbia & Montenegro" msgstr "ሰርቢያ እና ሞንትኔግሮ" #: lang.pm:269 #, c-format msgid "Cuba" msgstr "ኩባ" #: lang.pm:270 #, c-format msgid "Cape Verde" msgstr "ኬፕ ቬርዴ" #: lang.pm:271 #, c-format msgid "Christmas Island" msgstr "የገና ደሴቶች" #: lang.pm:272 #, c-format msgid "Cyprus" msgstr "ሳይፕረስ" #: lang.pm:273 mirror.pm:17 timezone.pm:233 #, c-format msgid "Czech Republic" msgstr "ቼክ ሪፑብሊክ" #: lang.pm:274 mirror.pm:22 timezone.pm:238 #, c-format msgid "Germany" msgstr "ጀርመን" #: lang.pm:275 #, c-format msgid "Djibouti" msgstr "ጂቡቲ" #: lang.pm:276 mirror.pm:18 timezone.pm:234 #, c-format msgid "Denmark" msgstr "ዴንማርክ" #: lang.pm:277 #, c-format msgid "Dominica" msgstr "ዶሚኒካ" #: lang.pm:278 #, c-format msgid "Dominican Republic" msgstr "ዶሚኒክ ሪፑብሊክ" #: lang.pm:279 #, c-format msgid "Algeria" msgstr "አልጄሪያ" #: lang.pm:280 #, c-format msgid "Ecuador" msgstr "ኢኳዶር" #: lang.pm:281 mirror.pm:19 timezone.pm:235 #, c-format msgid "Estonia" msgstr "ኤስቶኒያ" #: lang.pm:282 #, c-format msgid "Egypt" msgstr "ግብጽ" #: lang.pm:283 #, c-format msgid "Western Sahara" msgstr "ምዕራባዊ ሳህራ" #: lang.pm:284 #, c-format msgid "Eritrea" msgstr "ኤርትራ" #: lang.pm:285 mirror.pm:37 timezone.pm:253 #, c-format msgid "Spain" msgstr "ስፔን" #: lang.pm:286 #, c-format msgid "Ethiopia" msgstr "ኢትዮጵያ" #: lang.pm:287 mirror.pm:20 timezone.pm:236 #, c-format msgid "Finland" msgstr "ፊንላንድ" #: lang.pm:288 #, c-format msgid "Fiji" msgstr "ፊጂ አይላንድ" #: lang.pm:289 #, c-format msgid "Falkland Islands (Malvinas)" msgstr "ማርሻላዊ (የማርሻል አይላንድ)" #: lang.pm:290 #, c-format msgid "Micronesia" msgstr "ሚክሮኔዢያ" #: lang.pm:291 #, c-format msgid "Faroe Islands" msgstr "ካይማን ደሴቶች" #: lang.pm:292 mirror.pm:21 timezone.pm:237 #, c-format msgid "France" msgstr "ፈረንሳይ" #: lang.pm:293 #, c-format msgid "Gabon" msgstr "ጋቦን" #: lang.pm:294 timezone.pm:257 #, c-format msgid "United Kingdom" msgstr "እንግሊዝ" #: lang.pm:295 #, c-format msgid "Grenada" msgstr "ግሬናዳ" #: lang.pm:296 #, c-format msgid "Georgia" msgstr "ጆርጂያ" #: lang.pm:297 #, c-format msgid "French Guiana" msgstr "የፈረንሳይ ጉዊአና" #: lang.pm:298 #, c-format msgid "Ghana" msgstr "ጋና" #: lang.pm:299 #, c-format msgid "Gibraltar" msgstr "ጊብራልታር" #: lang.pm:300 #, c-format msgid "Greenland" msgstr "ግሪንላንድ" #: lang.pm:301 #, c-format msgid "Gambia" msgstr "ጋምቢያ" #: lang.pm:302 #, c-format msgid "Guinea" msgstr "ጊኒ" #: lang.pm:303 #, c-format msgid "Guadeloupe" msgstr "ጉዋደሉፕ" #: lang.pm:304 #, c-format msgid "Equatorial Guinea" msgstr "ኢኳቶሪያል ጊኒ" #: lang.pm:305 mirror.pm:23 timezone.pm:239 #, c-format msgid "Greece" msgstr "ግሪክ" #: lang.pm:306 #, c-format msgid "South Georgia and the South Sandwich Islands" msgstr "ደቡብ ጆርጂያ እና የደቡብ ሳንድዊች ደሴቶች" #: lang.pm:307 timezone.pm:262 #, c-format msgid "Guatemala" msgstr "ጉዋቲማላ" #: lang.pm:308 #, c-format msgid "Guam" msgstr "ጉዋም" #: lang.pm:309 #, c-format msgid "Guinea-Bissau" msgstr "ጊኒ-ቢሳዎ" #: lang.pm:310 #, c-format msgid "Guyana" msgstr "ጉያና" #: lang.pm:311 #, c-format msgid "Hong Kong SAR (China)" msgstr "ቻይንኛ (የሆንግ ኮንግ)" #: lang.pm:312 #, c-format msgid "Heard and McDonald Islands" msgstr "የቱርኮችና የካኢኮስ ደሴቶች" #: lang.pm:313 #, c-format msgid "Honduras" msgstr "ሆንዱራስ" #: lang.pm:314 #, c-format msgid "Croatia" msgstr "ክሮኤሽያ" #: lang.pm:315 #, c-format msgid "Haiti" msgstr "ሀይቲ*" #: lang.pm:316 mirror.pm:24 timezone.pm:240 #, c-format msgid "Hungary" msgstr "ሀንጋሪ" #: lang.pm:317 timezone.pm:215 #, c-format msgid "Indonesia" msgstr "ኢንዶኔዢያ" #: lang.pm:318 mirror.pm:25 timezone.pm:241 #, c-format msgid "Ireland" msgstr "አየርላንድ" #: lang.pm:319 mirror.pm:26 timezone.pm:217 #, c-format msgid "Israel" msgstr "እስራኤል" #: lang.pm:320 timezone.pm:214 #, c-format msgid "India" msgstr "ህንድ" #: lang.pm:321 #, c-format msgid "British Indian Ocean Territory" msgstr "የብሪታኒያ ህንድ ውቂያኖስ ግዛት" #: lang.pm:322 #, c-format msgid "Iraq" msgstr "ኢራቅ" #: lang.pm:323 timezone.pm:216 #, c-format msgid "Iran" msgstr "ኢራን" #: lang.pm:324 #, c-format msgid "Iceland" msgstr "አይስላንድ" #: lang.pm:325 mirror.pm:27 timezone.pm:242 #, c-format msgid "Italy" msgstr "ጣሊያን" #: lang.pm:326 #, c-format msgid "Jamaica" msgstr "ጃማይካ" #: lang.pm:327 #, c-format msgid "Jordan" msgstr "ጆርዳን" #: lang.pm:328 mirror.pm:28 timezone.pm:218 #, c-format msgid "Japan" msgstr "ጃፓን" #: lang.pm:329 #, c-format msgid "Kenya" msgstr "ኬንያ" #: lang.pm:330 #, c-format msgid "Kyrgyzstan" msgstr "ኪርጂክስታን" #: lang.pm:331 #, c-format msgid "Cambodia" msgstr "ካምቦዲያ" #: lang.pm:332 #, c-format msgid "Kiribati" msgstr "ኪሪባቲ" #: lang.pm:333 #, c-format msgid "Comoros" msgstr "ኮሞሮስ" #: lang.pm:334 #, c-format msgid "Saint Kitts and Nevis" msgstr "ቅዱስ ኪትስ እና ኔቪስ" #: lang.pm:335 #, c-format msgid "Korea (North)" msgstr "ኮሪያ (ሰሜን)" #: lang.pm:336 timezone.pm:219 #, c-format msgid "Korea" msgstr "ኮሪያ ሪፐብሊክ" #: lang.pm:337 #, c-format msgid "Kuwait" msgstr "ክዌት" #: lang.pm:338 #, c-format msgid "Cayman Islands" msgstr "ካይማን ደሴቶች" #: lang.pm:339 #, c-format msgid "Kazakhstan" msgstr "ካዛኪስታን" #: lang.pm:340 #, c-format msgid "Laos" msgstr "ላኦስ" #: lang.pm:341 #, c-format msgid "Lebanon" msgstr "ሊባኖስ" #: lang.pm:342 #, c-format msgid "Saint Lucia" msgstr "ሴንት ሉቺያ" #: lang.pm:343 #, c-format msgid "Liechtenstein" msgstr "ሊችተንስታይን" #: lang.pm:344 #, c-format msgid "Sri Lanka" msgstr "ሲሪላንካ" #: lang.pm:345 #, c-format msgid "Liberia" msgstr "ላይቤሪያ" #: lang.pm:346 #, c-format msgid "Lesotho" msgstr "ሌሶቶ" #: lang.pm:347 timezone.pm:243 #, c-format msgid "Lithuania" msgstr "ሊቱዌኒያ" #: lang.pm:348 timezone.pm:244 #, c-format msgid "Luxembourg" msgstr "ሉክሰምበርግ" #: lang.pm:349 #, c-format msgid "Latvia" msgstr "ላትቪያ" #: lang.pm:350 #, c-format msgid "Libya" msgstr "ሊቢያ" #: lang.pm:351 #, c-format msgid "Morocco" msgstr "ሞሮኮ" #: lang.pm:352 #, c-format msgid "Monaco" msgstr "ሞናኮ" #: lang.pm:353 #, c-format msgid "Moldova" msgstr "ሞልዶቫ" #: lang.pm:354 #, c-format msgid "Madagascar" msgstr "ማዳጋስካር" #: lang.pm:355 #, c-format msgid "Marshall Islands" msgstr "ማርሻል አይላንድ" #: lang.pm:356 #, c-format msgid "Macedonia" msgstr "ማከዶኒያ" #: lang.pm:357 #, c-format msgid "Mali" msgstr "ማሊ" #: lang.pm:358 #, c-format msgid "Myanmar" msgstr "ማያንማር" #: lang.pm:359 #, c-format msgid "Mongolia" msgstr "ሞንጎሊያ" #: lang.pm:360 #, c-format msgid "Northern Mariana Islands" msgstr "የሰሜናዊ ማሪያና ደሴቶች" #: lang.pm:361 #, c-format msgid "Martinique" msgstr "ማርቲኒክ" #: lang.pm:362 #, c-format msgid "Mauritania" msgstr "ሞሪቴኒያ" #: lang.pm:363 #, c-format msgid "Montserrat" msgstr "ሞንትሴራት" #: lang.pm:364 #, c-format msgid "Malta" msgstr "ማልታ" #: lang.pm:365 #, c-format msgid "Mauritius" msgstr "ማሩሸስ" #: lang.pm:366 #, c-format msgid "Maldives" msgstr "ማልዲቭስ" #: lang.pm:367 #, c-format msgid "Malawi" msgstr "ማላዊ" #: lang.pm:368 timezone.pm:263 #, c-format msgid "Mexico" msgstr "ሜክሲኮ" #: lang.pm:369 timezone.pm:220 #, c-format msgid "Malaysia" msgstr "ማሌዢያ" #: lang.pm:370 #, c-format msgid "Mozambique" msgstr "ሞዛምቢክ" #: lang.pm:371 #, c-format msgid "Namibia" msgstr "ናሚቢያ" #: lang.pm:372 #, c-format msgid "New Caledonia" msgstr "ኒው ካሌዶኒያ" #: lang.pm:373 #, c-format msgid "Niger" msgstr "ኒጀር" #: lang.pm:374 #, c-format msgid "Norfolk Island" msgstr "ኖርፎልክ ደሴት" #: lang.pm:375 #, c-format msgid "Nigeria" msgstr "ናይጄሪያ" #: lang.pm:376 #, c-format msgid "Nicaragua" msgstr "ኒካራጓ" #: lang.pm:377 mirror.pm:29 timezone.pm:245 #, c-format msgid "Netherlands" msgstr "ኔዘርላንድ" #: lang.pm:378 mirror.pm:31 timezone.pm:246 #, c-format msgid "Norway" msgstr "ኖርዌይ" #: lang.pm:379 #, c-format msgid "Nepal" msgstr "ኔፓል" #: lang.pm:380 #, c-format msgid "Nauru" msgstr "ናኡሩ" #: lang.pm:381 #, c-format msgid "Niue" msgstr "ኒኡይ" #: lang.pm:382 mirror.pm:30 timezone.pm:268 #, c-format msgid "New Zealand" msgstr "ኒው ዚላንድ" #: lang.pm:383 #, c-format msgid "Oman" msgstr "ኦማን" #: lang.pm:384 #, c-format msgid "Panama" msgstr "ፓናማ" #: lang.pm:385 #, c-format msgid "Peru" msgstr "ፔሩ" #: lang.pm:386 #, c-format msgid "French Polynesia" msgstr "የፈረንሳይ ፖሊኔዢያ" #: lang.pm:387 #, c-format msgid "Papua New Guinea" msgstr "ፓፑዋ ኒው ጊኒ" #: lang.pm:388 timezone.pm:221 #, c-format msgid "Philippines" msgstr "ፊሊፒንስ" #: lang.pm:389 #, c-format msgid "Pakistan" msgstr "ፓኪስታን" #: lang.pm:390 mirror.pm:32 timezone.pm:247 #, c-format msgid "Poland" msgstr "ፖላንድ" #: lang.pm:391 #, c-format msgid "Saint Pierre and Miquelon" msgstr "ቅዱስ ፒዬር እና ሚኩኤሎን" #: lang.pm:392 #, c-format msgid "Pitcairn" msgstr "ፒትካኢርን" #: lang.pm:393 #, c-format msgid "Puerto Rico" msgstr "ፖርታ ሪኮ" #: lang.pm:394 #, c-format msgid "Palestine" msgstr "ፓለስታይን" #: lang.pm:395 mirror.pm:33 timezone.pm:248 #, c-format msgid "Portugal" msgstr "ፖርቱጋል" #: lang.pm:396 #, c-format msgid "Paraguay" msgstr "ፓራጓይ" #: lang.pm:397 #, c-format msgid "Palau" msgstr "ፓላው" #: lang.pm:398 #, c-format msgid "Qatar" msgstr "ኳታር" #: lang.pm:399 #, c-format msgid "Reunion" msgstr "ሪዩኒየን ደሴት" #: lang.pm:400 timezone.pm:249 #, c-format msgid "Romania" msgstr "ሮሜኒያ" #: lang.pm:401 mirror.pm:34 #, c-format msgid "Russia" msgstr "ራሺያ" #: lang.pm:402 #, c-format msgid "Rwanda" msgstr "ሩዋንዳ" #: lang.pm:403 #, c-format msgid "Saudi Arabia" msgstr "ሳውድአረቢያ" #: lang.pm:404 #, c-format msgid "Solomon Islands" msgstr "ሰሎሞን ደሴት" #: lang.pm:405 #, c-format msgid "Seychelles" msgstr "ሲሼልስ" #: lang.pm:406 #, c-format msgid "Sudan" msgstr "ሱዳን" #: lang.pm:407 mirror.pm:38 timezone.pm:254 #, c-format msgid "Sweden" msgstr "ስዊድን" #: lang.pm:408 timezone.pm:222 #, c-format msgid "Singapore" msgstr "ሲንጋፖር" #: lang.pm:409 #, c-format msgid "Saint Helena" msgstr "ሴንት ሄለና" #: lang.pm:410 timezone.pm:252 #, c-format msgid "Slovenia" msgstr "ስሎቬኒያ" #: lang.pm:411 #, c-format msgid "Svalbard and Jan Mayen Islands" msgstr "ስቫልባርድ እና ጃን ሜይን ደሴቶች" #: lang.pm:412 mirror.pm:35 timezone.pm:251 #, c-format msgid "Slovakia" msgstr "ስሎቫኪያ" #: lang.pm:413 #, c-format msgid "Sierra Leone" msgstr "ሴራሊዮን" #: lang.pm:414 #, c-format msgid "San Marino" msgstr "ሳን ማሪኖ" #: lang.pm:415 #, c-format msgid "Senegal" msgstr "ሴኔጋል" #: lang.pm:416 #, c-format msgid "Somalia" msgstr "ሱማሌ" #: lang.pm:417 #, c-format msgid "Suriname" msgstr "ሱሪናም" #: lang.pm:418 #, c-format msgid "Sao Tome and Principe" msgstr "ሳኦ ቶሜ እና ፕሪንሲፔ" #: lang.pm:419 #, c-format msgid "El Salvador" msgstr "ኤል ሳልቫዶር" #: lang.pm:420 #, c-format msgid "Syria" msgstr "ሲሪያ" #: lang.pm:421 #, c-format msgid "Swaziland" msgstr "ሱዋዚላንድ" #: lang.pm:422 #, c-format msgid "Turks and Caicos Islands" msgstr "የቱርኮችና የካኢኮስ ደሴቶች" #: lang.pm:423 #, c-format msgid "Chad" msgstr "ቻድ" #: lang.pm:424 #, c-format msgid "French Southern Territories" msgstr "የፈረንሳይ ደቡባዊ ግዛቶች" #: lang.pm:425 #, c-format msgid "Togo" msgstr "ቶጐ" #: lang.pm:426 mirror.pm:41 timezone.pm:224 #, c-format msgid "Thailand" msgstr "ታይላንድ" #: lang.pm:427 #, c-format msgid "Tajikistan" msgstr "ታጃኪስታን" #: lang.pm:428 #, c-format msgid "Tokelau" msgstr "ቶክላው" #: lang.pm:429 #, c-format msgid "East Timor" msgstr "ምስራቅ ቲሞር" #: lang.pm:430 #, c-format msgid "Turkmenistan" msgstr "ቱርክሜኒስታን" #: lang.pm:431 #, c-format msgid "Tunisia" msgstr "ቱኒዚያ" #: lang.pm:432 #, c-format msgid "Tonga" msgstr "ቶንጋ" #: lang.pm:433 timezone.pm:225 #, c-format msgid "Turkey" msgstr "ቱርክ" #: lang.pm:434 #, c-format msgid "Trinidad and Tobago" msgstr "ትሪኒዳድ እና ቶባጎ" #: lang.pm:435 #, c-format msgid "Tuvalu" msgstr "ቱቫሉ" #: lang.pm:436 mirror.pm:40 timezone.pm:223 #, c-format msgid "Taiwan" msgstr "ታይዋን" #: lang.pm:437 timezone.pm:208 #, c-format msgid "Tanzania" msgstr "ታንዛኒያ" #: lang.pm:438 timezone.pm:256 #, c-format msgid "Ukraine" msgstr "ዩክሬን" #: lang.pm:439 #, c-format msgid "Uganda" msgstr "ዩጋንዳ" #: lang.pm:440 #, c-format msgid "United States Minor Outlying Islands" msgstr "የአሜሪካ ጥቃቅን ውጫዊ ደሴቶች" #: lang.pm:441 mirror.pm:42 timezone.pm:264 #, c-format msgid "United States" msgstr "አሜሪካ" #: lang.pm:442 #, c-format msgid "Uruguay" msgstr "ኡራጓይ" #: lang.pm:443 #, c-format msgid "Uzbekistan" msgstr "ዩዝበኪስታን" #: lang.pm:444 #, c-format msgid "Vatican" msgstr "ቫቲካን ከተማ" #: lang.pm:445 #, c-format msgid "Saint Vincent and the Grenadines" msgstr "ቅዱስ ቪንሴንት እና ግሬናዲንስ" #: lang.pm:446 #, c-format msgid "Venezuela" msgstr "ቬንዙዌላ" #: lang.pm:447 #, c-format msgid "Virgin Islands (British)" msgstr "የእንግሊዝ ድንግል ደሴቶች" #: lang.pm:448 #, c-format msgid "Virgin Islands (U.S.)" msgstr "የእንግሊዝ ድንግል ደሴቶች" #: lang.pm:449 #, c-format msgid "Vietnam" msgstr "ቬትናም" #: lang.pm:450 #, c-format msgid "Vanuatu" msgstr "ቫኑአቱ" #: lang.pm:451 #, c-format msgid "Wallis and Futuna" msgstr "ዋሊስ እና ፉቱና ደሴቶች" #: lang.pm:452 #, c-format msgid "Samoa" msgstr "የአሜሪካ ሳሞአ" #: lang.pm:453 #, c-format msgid "Yemen" msgstr "የመን" #: lang.pm:454 #, c-format msgid "Mayotte" msgstr "ሜይኦቴ" #: lang.pm:455 mirror.pm:36 timezone.pm:207 #, c-format msgid "South Africa" msgstr "ደቡብ አፍሪካ" #: lang.pm:456 #, c-format msgid "Zambia" msgstr "ዛምቢያ" #: lang.pm:457 #, c-format msgid "Zimbabwe" msgstr "ዚምቧቤ" #: lang.pm:1216 #, c-format msgid "Welcome to %s" msgstr "ወደ %s እንኳን ደህና መጡ" #: lvm.pm:86 #, c-format msgid "Moving used physical extents to other physical volumes failed" msgstr "" #: lvm.pm:143 #, c-format msgid "Physical volume %s is still in use" msgstr "" #: lvm.pm:153 #, c-format msgid "Remove the logical volumes first\n" msgstr "" #: lvm.pm:186 #, c-format msgid "The bootloader can't handle /boot on multiple physical volumes" msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: messages.pm:11 #, c-format msgid "" "Introduction\n" "\n" "The operating system and the different components available in the Mageia " "Linux distribution \n" "shall be called the \"Software Products\" hereafter. The Software Products " "include, but are not \n" "restricted to, the set of programs, methods, rules and documentation related " "to the operating \n" "system and the different components of the Mageia Linux distribution, and " "any applications \n" "distributed with these products provided by Mageia's licensors or " "suppliers.\n" "\n" "\n" "1. License Agreement\n" "\n" "Please read this document carefully. This document is a license agreement " "between you and \n" "Mageia which applies to the Software Products.\n" "By installing, duplicating or using any of the Software Products in any " "manner, you explicitly \n" "accept and fully agree to conform to the terms and conditions of this " "License. \n" "If you disagree with any portion of the License, you are not allowed to " "install, duplicate or use \n" "the Software Products. \n" "Any attempt to install, duplicate or use the Software Products in a manner " "which does not comply \n" "with the terms and conditions of this License is void and will terminate " "your rights under this \n" "License. Upon termination of the License, you must immediately destroy all " "copies of the \n" "Software Products.\n" "\n" "\n" "2. Limited Warranty\n" "\n" "The Software Products and attached documentation are provided \"as is\", " "with no warranty, to the \n" "extent permitted by law.\n" "Neither Mageia nor its licensors or suppliers will, in any circumstances and " "to the extent \n" "permitted by law, be liable for any special, incidental, direct or indirect " "damages whatsoever \n" "(including without limitation damages for loss of business, interruption of " "business, financial \n" "loss, legal fees and penalties resulting from a court judgment, or any other " "consequential loss) \n" "arising out of the use or inability to use the Software Products, even if " "Mageia or its \n" "licensors or suppliers have been advised of the possibility or occurrence of " "such damages.\n" "\n" "LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME " "COUNTRIES\n" "\n" "To the extent permitted by law, neither Mageia nor its licensors, suppliers " "or\n" "distributors will, in any circumstances, be liable for any special, " "incidental, direct or indirect \n" "damages whatsoever (including without limitation damages for loss of " "business, interruption of \n" "business, financial loss, legal fees and penalties resulting from a court " "judgment, or any \n" "other consequential loss) arising out of the possession and use of software " "components or \n" "arising out of downloading software components from one of Mageia Linux " "sites which are \n" "prohibited or restricted in some countries by local laws.\n" "This limited liability applies to, but is not restricted to, the strong " "cryptography components \n" "included in the Software Products.\n" "However, because some jurisdictions do not allow the exclusion or limitation " "or liability for \n" "consequential or incidental damages, the above limitation may not apply to " "you. \n" "\n" "\n" "3. The GPL License and Related Licenses\n" "\n" "The Software Products consist of components created by different persons or " "entities.\n" "Most of these licenses allow you to use, duplicate, adapt or redistribute " "the components which \n" "they cover. Please read carefully the terms and conditions of the license " "agreement for each component \n" "before using any component. Any question on a component license should be " "addressed to the component \n" "licensor or supplier and not to Mageia.\n" "The programs developed by Mageia are governed by the GPL License. " "Documentation written \n" "by Mageia is governed by a specific license. Please refer to the " "documentation for \n" "further details.\n" "\n" "\n" "4. Intellectual Property Rights\n" "\n" "All rights to the components of the Software Products belong to their " "respective authors and are \n" "protected by intellectual property and copyright laws applicable to software " "programs.\n" "Mageia and its suppliers and licensors reserves their rights to modify or " "adapt the Software \n" "Products, as a whole or in parts, by all means and for all purposes.\n" "\"Mageia\", \"Mageia Linux\" and associated logos are trademarks of " "Mageia \n" "\n" "\n" "5. Governing Laws \n" "\n" "If any portion of this agreement is held void, illegal or inapplicable by a " "court judgment, this \n" "portion is excluded from this contract. You remain bound by the other " "applicable sections of the \n" "agreement.\n" "The terms and conditions of this License are governed by the Laws of " "France.\n" "All disputes on the terms of this license will preferably be settled out of " "court. As a last \n" "resort, the dispute will be referred to the appropriate Courts of Law of " "Paris - France.\n" "For any question on this document, please contact Mageia." msgstr "" #: messages.pm:93 #, c-format msgid "" "Warning: Free Software may not necessarily be patent free, and some Free\n" "Software included may be covered by patents in your country. For example, " "the\n" "MP3 decoders included may require a licence for further usage (see\n" "http://www.mp3licensing.com for more details). If you are unsure if a " "patent\n" "may be applicable to you, check your local laws." msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: messages.pm:102 #, c-format msgid "" "Congratulations, installation is complete.\n" "Remove the boot media and press Enter to reboot.\n" "\n" "\n" "For information on fixes which are available for this release of Mageia " "Linux,\n" "consult the Errata available from:\n" "\n" "\n" "%s\n" "\n" "\n" "Information on configuring your system is available in the post\n" "install chapter of the Official Mageia Linux User's Guide." msgstr "" #: modules/interactive.pm:19 #, fuzzy, c-format msgid "This driver has no configuration parameter!" msgstr "ተስተካክሎ የተቀመጠውን ባዕድ መነሻ ጥቀስ" #: modules/interactive.pm:22 #, c-format msgid "Module configuration" msgstr "የአቃጅ ምርጫ" #: modules/interactive.pm:22 #, c-format msgid "You can configure each parameter of the module here." msgstr "" #: modules/interactive.pm:64 #, fuzzy, c-format msgid "Found %s interfaces" msgstr "አልተገኘም" #: modules/interactive.pm:65 #, c-format msgid "Do you have another one?" msgstr "ሌላ አልዎት?" #: modules/interactive.pm:66 #, c-format msgid "Do you have any %s interfaces?" msgstr "ማንኛውም %s እይታዎች አልዎት?" #: modules/interactive.pm:72 #, c-format msgid "See hardware info" msgstr "የሃርድዌር መረጃ ይመልከቱ" #: modules/interactive.pm:83 #, c-format msgid "Installing driver for USB controller" msgstr "" #: modules/interactive.pm:84 #, c-format msgid "Installing driver for firewire controller %s" msgstr "" #: modules/interactive.pm:85 #, c-format msgid "Installing driver for hard drive controller %s" msgstr "" #: modules/interactive.pm:86 #, c-format msgid "Installing driver for ethernet controller %s" msgstr "" #. -PO: the first %s is the card type (scsi, network, sound,...) #. -PO: the second is the vendor+model name #: modules/interactive.pm:97 #, c-format msgid "Installing driver for %s card %s" msgstr "" #: modules/interactive.pm:100 #, c-format msgid "Configuring Hardware" msgstr "" #: modules/interactive.pm:111 #, c-format msgid "" "You may now provide options to module %s.\n" "Note that any address should be entered with the prefix 0x like '0x123'" msgstr "" #: modules/interactive.pm:117 #, c-format msgid "" "You may now provide options to module %s.\n" "Options are in format ``name=value name2=value2 ...''.\n" "For instance, ``io=0x300 irq=7''" msgstr "" #: modules/interactive.pm:119 #, c-format msgid "Module options:" msgstr "የአቃጅ ምርጫዎች:" #. -PO: the %s is the driver type (scsi, network, sound,...) #: modules/interactive.pm:132 #, c-format msgid "Which %s driver should I try?" msgstr "" #: modules/interactive.pm:141 #, c-format msgid "" "In some cases, the %s driver needs to have extra information to work\n" "properly, although it normally works fine without them. Would you like to " "specify\n" "extra options for it or allow the driver to probe your machine for the\n" "information it needs? Occasionally, probing will hang a computer, but it " "should\n" "not cause any damage." msgstr "" #: modules/interactive.pm:145 #, c-format msgid "Autoprobe" msgstr "ራስ-ገዥ ሞካሪ" #: modules/interactive.pm:145 #, c-format msgid "Specify options" msgstr "ምርጫዎችን ይግለጹ" #: modules/interactive.pm:157 #, c-format msgid "" "Loading module %s failed.\n" "Do you want to try again with other parameters?" msgstr "" #: mygtk2.pm:1541 mygtk2.pm:1542 #, c-format msgid "Password is trivial to guess" msgstr "" #: mygtk2.pm:1543 #, c-format msgid "Password should resist to basic attacks" msgstr "" #: mygtk2.pm:1544 mygtk2.pm:1545 #, fuzzy, c-format msgid "Password seems secure" msgstr "ሚስጥር-ቃል ያስፈልጋል" #: partition_table.pm:415 #, fuzzy, c-format msgid "mount failed: " msgstr "%s አልተገኘም" #: partition_table.pm:527 #, c-format msgid "Extended partition not supported on this platform" msgstr "" #: partition_table.pm:545 #, c-format msgid "" "You have a hole in your partition table but I can not use it.\n" "The only solution is to move your primary partitions to have the hole next " "to the extended partitions." msgstr "" #: partition_table/raw.pm:299 #, c-format msgid "" "Something bad is happening on your drive. \n" "A test to check the integrity of data has failed. \n" "It means writing anything on the disk will end up with random, corrupted " "data." msgstr "" #: pkgs.pm:252 pkgs.pm:255 pkgs.pm:268 #, c-format msgid "Unused packages removal" msgstr "" #: pkgs.pm:252 #, c-format msgid "Finding unused hardware packages..." msgstr "" #: pkgs.pm:255 #, c-format msgid "Finding unused localization packages..." msgstr "" #: pkgs.pm:269 #, c-format msgid "" "We have detected that some packages are not needed for your system " "configuration." msgstr "" #: pkgs.pm:270 #, c-format msgid "We will remove the following packages, unless you choose otherwise:" msgstr "" #: pkgs.pm:273 pkgs.pm:274 #, fuzzy, c-format msgid "Unused hardware support" msgstr "የሬዲዮ ድጋፍ አስቻል" #: pkgs.pm:277 pkgs.pm:278 #, c-format msgid "Unused localization" msgstr "" #: raid.pm:42 #, c-format msgid "Can not add a partition to _formatted_ RAID %s" msgstr "" #: raid.pm:165 #, c-format msgid "Not enough partitions for RAID level %d\n" msgstr "" #: scanner.pm:96 #, c-format msgid "Could not create directory /usr/share/sane/firmware!" msgstr "" #: scanner.pm:107 #, c-format msgid "Could not create link /usr/share/sane/%s!" msgstr "" #: scanner.pm:114 #, c-format msgid "Could not copy firmware file %s to /usr/share/sane/firmware!" msgstr "" #: scanner.pm:121 #, c-format msgid "Could not set permissions of firmware file %s!" msgstr "" #: scanner.pm:200 #, c-format msgid "Scannerdrake" msgstr "" #: scanner.pm:201 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "" #: scanner.pm:202 #, c-format msgid "Your scanner(s) will not be available for non-root users." msgstr "" #: security/help.pm:11 #, c-format msgid "Accept bogus IPv4 error messages." msgstr "" #: security/help.pm:13 #, fuzzy, c-format msgid "Accept broadcasted icmp echo." msgstr "አስተያየት የተሰጠበትን ለውጥ ተቀበል" #: security/help.pm:15 #, fuzzy, c-format msgid "Accept icmp echo." msgstr "አስተያየት የተሰጠበትን ለውጥ ተቀበል" #: security/help.pm:17 #, fuzzy, c-format msgid "Allow autologin." msgstr "የተለመደውን ቱልባሮች ፍቀድ" #. -PO: here "ALL" is a value in a pull-down menu; translate it the same as "ALL" is #: security/help.pm:21 #, c-format msgid "" "If set to \"ALL\", /etc/issue and /etc/issue.net are allowed to exist.\n" "\n" "If set to \"None\", no issues are allowed.\n" "\n" "Else only /etc/issue is allowed." msgstr "" #: security/help.pm:27 #, c-format msgid "Allow reboot by the console user." msgstr "" #: security/help.pm:29 #, fuzzy, c-format msgid "Allow remote root login." msgstr "የሚፈነጠቅ መመልከቻ ሲጀምር _አሳይ" #: security/help.pm:31 #, fuzzy, c-format msgid "Allow direct root login." msgstr "የሚፈነጠቅ መመልከቻ ሲጀምር _አሳይ" #: security/help.pm:33 #, c-format msgid "" "Allow the list of users on the system on display managers (kdm and gdm)." msgstr "" #: security/help.pm:35 #, c-format msgid "" "Allow to export display when\n" "passing from the root account to the other users.\n" "\n" "See pam_xauth(8) for more details.'" msgstr "" #: security/help.pm:40 #, c-format msgid "" "Allow X connections:\n" "\n" "- \"All\" (all connections are allowed),\n" "\n" "- \"Local\" (only connection from local machine),\n" "\n" "- \"None\" (no connection)." msgstr "" #: security/help.pm:48 #, c-format msgid "" "The argument specifies if clients are authorized to connect\n" "to the X server from the network on the tcp port 6000 or not." msgstr "" #. -PO: here "ALL", "Local" and "None" are values in a pull-down menu; translate them the same as they're #: security/help.pm:53 #, c-format msgid "" "Authorize:\n" "\n" "- all services controlled by tcp_wrappers (see hosts.deny(5) man page) if " "set to \"ALL\",\n" "\n" "- only local ones if set to \"Local\"\n" "\n" "- none if set to \"None\".\n" "\n" "To authorize the services you need, use /etc/hosts.allow (see hosts.allow" "(5))." msgstr "" #: security/help.pm:63 #, c-format msgid "" "If SERVER_LEVEL (or SECURE_LEVEL if absent)\n" "is greater than 3 in /etc/security/msec/security.conf, creates the\n" "symlink /etc/security/msec/server to point to\n" "/etc/security/msec/server.<SERVER_LEVEL>.\n" "\n" "The /etc/security/msec/server is used by chkconfig --add to decide to\n" "add a service if it is present in the file during the installation of\n" "packages." msgstr "" #: security/help.pm:72 #, c-format msgid "" "Enable crontab and at for users.\n" "\n" "Put allowed users in /etc/cron.allow and /etc/at.allow (see man at(1)\n" "and crontab(1))." msgstr "" #: security/help.pm:77 #, c-format msgid "Enable syslog reports to console 12" msgstr "" #: security/help.pm:79 #, c-format msgid "" "Enable name resolution spoofing protection. If\n" "\"%s\" is true, also reports to syslog." msgstr "" #: security/help.pm:80 #, fuzzy, c-format msgid "Security Alerts:" msgstr "የደህንነት ደረጃ፦" #: security/help.pm:82 #, c-format msgid "Enable IP spoofing protection." msgstr "" #: security/help.pm:84 #, c-format msgid "Enable libsafe if libsafe is found on the system." msgstr "" #: security/help.pm:86 #, c-format msgid "Enable the logging of IPv4 strange packets." msgstr "" #: security/help.pm:88 #, fuzzy, c-format msgid "Enable msec hourly security check." msgstr "ተመልከት ይህንን" #: security/help.pm:90 #, c-format msgid "" "Enable su only from members of the wheel group. If set to no, allows su from " "any user." msgstr "" #: security/help.pm:92 #, c-format msgid "Use password to authenticate users." msgstr "" #: security/help.pm:94 #, c-format msgid "Activate ethernet cards promiscuity check." msgstr "" #: security/help.pm:96 #, fuzzy, c-format msgid "Activate daily security check." msgstr "ተመልከት ይህንን" #: security/help.pm:98 #, c-format msgid "Enable sulogin(8) in single user level." msgstr "" #: security/help.pm:100 #, c-format msgid "Add the name as an exception to the handling of password aging by msec." msgstr "" #: security/help.pm:102 #, c-format msgid "Set password aging to \"max\" days and delay to change to \"inactive\"." msgstr "" #: security/help.pm:104 #, c-format msgid "Set the password history length to prevent password reuse." msgstr "" #: security/help.pm:106 #, c-format msgid "" "Set the password minimum length and minimum number of digit and minimum " "number of capitalized letters." msgstr "" #: security/help.pm:108 #, fuzzy, c-format msgid "Set the root's file mode creation mask." msgstr "የገጽ &ቅንጅት" #: security/help.pm:109 #, c-format msgid "if set to yes, check open ports." msgstr "" #: security/help.pm:110 #, c-format msgid "" "if set to yes, check for:\n" "\n" "- empty passwords,\n" "\n" "- no password in /etc/shadow\n" "\n" "- for users with the 0 id other than root." msgstr "" #: security/help.pm:117 #, c-format msgid "if set to yes, check permissions of files in the users' home." msgstr "" #: security/help.pm:118 #, c-format msgid "if set to yes, check if the network devices are in promiscuous mode." msgstr "" #: security/help.pm:119 #, c-format msgid "if set to yes, run the daily security checks." msgstr "" #: security/help.pm:120 #, c-format msgid "if set to yes, check additions/removals of sgid files." msgstr "" #: security/help.pm:121 #, c-format msgid "if set to yes, check empty password in /etc/shadow." msgstr "" #: security/help.pm:122 #, c-format msgid "if set to yes, verify checksum of the suid/sgid files." msgstr "" #: security/help.pm:123 #, c-format msgid "if set to yes, check additions/removals of suid root files." msgstr "" #: security/help.pm:124 #, c-format msgid "if set to yes, report unowned files." msgstr "" #: security/help.pm:125 #, c-format msgid "if set to yes, check files/directories writable by everybody." msgstr "" #: security/help.pm:126 #, c-format msgid "if set to yes, run chkrootkit checks." msgstr "" #: security/help.pm:127 #, c-format msgid "" "if set, send the mail report to this email address else send it to root." msgstr "" #: security/help.pm:128 #, c-format msgid "if set to yes, report check result by mail." msgstr "" #: security/help.pm:129 #, c-format msgid "Do not send mails if there's nothing to warn about" msgstr "" #: security/help.pm:130 #, c-format msgid "if set to yes, run some checks against the rpm database." msgstr "" #: security/help.pm:131 #, c-format msgid "if set to yes, report check result to syslog." msgstr "" #: security/help.pm:132 #, c-format msgid "if set to yes, reports check result to tty." msgstr "" #: security/help.pm:134 #, c-format msgid "Set shell commands history size. A value of -1 means unlimited." msgstr "" #: security/help.pm:136 #, c-format msgid "Set the shell timeout. A value of zero means no timeout." msgstr "" #: security/help.pm:136 #, c-format msgid "Timeout unit is second" msgstr "" #: security/help.pm:138 #, fuzzy, c-format msgid "Set the user's file mode creation mask." msgstr "የአቢወርድ ቋንቋ፦" #: security/l10n.pm:11 #, c-format msgid "Accept bogus IPv4 error messages" msgstr "" #: security/l10n.pm:12 #, c-format msgid "Accept broadcasted icmp echo" msgstr "" #: security/l10n.pm:13 #, fuzzy, c-format msgid "Accept icmp echo" msgstr "አስተያየት የተሰጠበትን ለውጥ ተቀበል" #: security/l10n.pm:15 #, fuzzy, c-format msgid "/etc/issue* exist" msgstr "%s ሰነድ የለም" #: security/l10n.pm:16 #, c-format msgid "Reboot by the console user" msgstr "" #: security/l10n.pm:17 #, c-format msgid "Allow remote root login" msgstr "" #: security/l10n.pm:18 #, fuzzy, c-format msgid "Direct root login" msgstr "የሚፈነጠቅ መመልከቻ ሲጀምር _አሳይ" #: security/l10n.pm:19 #, c-format msgid "List users on display managers (kdm and gdm)" msgstr "" #: security/l10n.pm:20 #, c-format msgid "Export display when passing from root to the other users" msgstr "" #: security/l10n.pm:21 #, fuzzy, c-format msgid "Allow X Window connections" msgstr "ይህንን መስኮት አተልቀው" #: security/l10n.pm:22 #, c-format msgid "Authorize TCP connections to X Window" msgstr "" #: security/l10n.pm:23 #, c-format msgid "Authorize all services controlled by tcp_wrappers" msgstr "" #: security/l10n.pm:24 #, c-format msgid "Chkconfig obey msec rules" msgstr "" #: security/l10n.pm:25 #, c-format msgid "Enable \"crontab\" and \"at\" for users" msgstr "" #: security/l10n.pm:26 #, c-format msgid "Syslog reports to console 12" msgstr "" #: security/l10n.pm:27 #, c-format msgid "Name resolution spoofing protection" msgstr "" #: security/l10n.pm:28 #, c-format msgid "Enable IP spoofing protection" msgstr "" #: security/l10n.pm:29 #, c-format msgid "Enable libsafe if libsafe is found on the system" msgstr "" #: security/l10n.pm:30 #, c-format msgid "Enable the logging of IPv4 strange packets" msgstr "" #: security/l10n.pm:31 #, c-format msgid "Enable msec hourly security check" msgstr "" #: security/l10n.pm:32 #, c-format msgid "Enable su only from the wheel group members" msgstr "" #: security/l10n.pm:33 #, c-format msgid "Use password to authenticate users" msgstr "" #: security/l10n.pm:34 #, c-format msgid "Ethernet cards promiscuity check" msgstr "" #: security/l10n.pm:35 #, fuzzy, c-format msgid "Daily security check" msgstr "ተመልከት ይህንን" #: security/l10n.pm:36 #, c-format msgid "Sulogin(8) in single user level" msgstr "" #: security/l10n.pm:37 #, c-format msgid "No password aging for" msgstr "" #: security/l10n.pm:38 #, c-format msgid "Set password expiration and account inactivation delays" msgstr "" #: security/l10n.pm:39 #, fuzzy, c-format msgid "Password history length" msgstr "የታሪክ መስኮት ክፈት" #: security/l10n.pm:40 #, c-format msgid "Password minimum length and number of digits and upcase letters" msgstr "" #: security/l10n.pm:41 #, fuzzy, c-format msgid "Root umask" msgstr "የRoot የሚስጢር ቃል ፦" #: security/l10n.pm:42 #, fuzzy, c-format msgid "Shell history size" msgstr "አውቶማቲክ የአምድ መጠን" #: security/l10n.pm:43 #, fuzzy, c-format msgid "Shell timeout" msgstr "የሼል ውጤት" #: security/l10n.pm:44 #, fuzzy, c-format msgid "User umask" msgstr "የተጠቃሚ ስም" #: security/l10n.pm:45 #, fuzzy, c-format msgid "Check open ports" msgstr "ስለ &Open Source" #: security/l10n.pm:46 #, fuzzy, c-format msgid "Check for unsecured accounts" msgstr "ሰነዱን ከተሳሳተ የቃላት አጻጻፍ አጣሩ" #: security/l10n.pm:47 #, c-format msgid "Check permissions of files in the users' home" msgstr "" #: security/l10n.pm:48 #, c-format msgid "Check if the network devices are in promiscuous mode" msgstr "" #: security/l10n.pm:49 #, c-format msgid "Run the daily security checks" msgstr "" #: security/l10n.pm:50 #, c-format msgid "Check additions/removals of sgid files" msgstr "" #: security/l10n.pm:51 #, c-format msgid "Check empty password in /etc/shadow" msgstr "" #: security/l10n.pm:52 #, c-format msgid "Verify checksum of the suid/sgid files" msgstr "" #: security/l10n.pm:53 #, c-format msgid "Check additions/removals of suid root files" msgstr "" #: security/l10n.pm:54 #, fuzzy, c-format msgid "Report unowned files" msgstr "ሁሉንም የምስል ፋይሎች" #: security/l10n.pm:55 #, c-format msgid "Check files/directories writable by everybody" msgstr "" #: security/l10n.pm:56 #, fuzzy, c-format msgid "Run chkrootkit checks" msgstr "በተርሚናሉ ውስጥ &አስኪድ" #: security/l10n.pm:57 #, c-format msgid "Do not send empty mail reports" msgstr "" #: security/l10n.pm:58 #, c-format msgid "If set, send the mail report to this email address else send it to root" msgstr "" #: security/l10n.pm:59 #, c-format msgid "Report check result by mail" msgstr "" #: security/l10n.pm:60 #, c-format msgid "Run some checks against the rpm database" msgstr "" #: security/l10n.pm:61 #, c-format msgid "Report check result to syslog" msgstr "" #: security/l10n.pm:62 #, c-format msgid "Reports check result to tty" msgstr "" #: security/level.pm:10 #, c-format msgid "Disable msec" msgstr "" #: security/level.pm:11 #, c-format msgid "Standard" msgstr "መደበኛ" #: security/level.pm:12 #, fuzzy, c-format msgid "Secure" msgstr "ደህንነት" #: security/level.pm:40 #, c-format msgid "" "This level is to be used with care, as it disables all additional security\n" "provided by msec. Use it only when you want to take care of all aspects of " "system security\n" "on your own." msgstr "" #: security/level.pm:43 #, c-format msgid "" "This is the standard security recommended for a computer that will be used " "to connect to the Internet as a client." msgstr "" #: security/level.pm:44 #, c-format msgid "" "With this security level, the use of this system as a server becomes " "possible.\n" "The security is now high enough to use the system as a server which can " "accept\n" "connections from many clients. Note: if your machine is only a client on the " "Internet, you should choose a lower level." msgstr "" #: security/level.pm:51 #, fuzzy, c-format msgid "DrakSec Basic Options" msgstr "ባለሁለት አቅጣጫ ምርጫዎች" #: security/level.pm:54 #, c-format msgid "Please choose the desired security level" msgstr "" #. -PO: this string is used to properly format "<security level>: <level description>" #: security/level.pm:58 #, c-format msgid "%s: %s" msgstr "" #: security/level.pm:61 #, fuzzy, c-format msgid "Security Administrator:" msgstr "የደህንነት ደረጃ፦" #: security/level.pm:62 #, c-format msgid "Login or email:" msgstr "" #: services.pm:19 #, c-format msgid "Listen and dispatch ACPI events from the kernel" msgstr "" #: services.pm:20 #, c-format msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system" msgstr "" #: services.pm:21 #, c-format msgid "Anacron is a periodic command scheduler." msgstr "" #: services.pm:22 #, c-format msgid "" "apmd is used for monitoring battery status and logging it via syslog.\n" "It can also be used for shutting down the machine when the battery is low." msgstr "" #: services.pm:24 #, c-format msgid "" "Runs commands scheduled by the at command at the time specified when\n" "at was run, and runs batch commands when the load average is low enough." msgstr "" #: services.pm:26 #, c-format msgid "Avahi is a ZeroConf daemon which implements an mDNS stack" msgstr "" #: services.pm:27 #, c-format msgid "Set CPU frequency settings" msgstr "" #: services.pm:28 #, c-format msgid "" "cron is a standard UNIX program that runs user-specified programs\n" "at periodic scheduled times. vixie cron adds a number of features to the " "basic\n" "UNIX cron, including better security and more powerful configuration options." msgstr "" #: services.pm:31 #, c-format msgid "" "Common UNIX Printing System (CUPS) is an advanced printer spooling system" msgstr "" #: services.pm:32 #, c-format msgid "Launches the graphical display manager" msgstr "" #: services.pm:33 #, c-format msgid "" "FAM is a file monitoring daemon. It is used to get reports when files " "change.\n" "It is used by GNOME and KDE" msgstr "" #: services.pm:35 #, c-format msgid "" "G15Daemon allows users access to all extra keys by decoding them and \n" "pushing them back into the kernel via the linux UINPUT driver. This driver " "must be loaded \n" "before g15daemon can be used for keyboard access. The G15 LCD is also " "supported. By default, \n" "with no other clients active, g15daemon will display a clock. Client " "applications and \n" "scripts can access the LCD via a simple API." msgstr "" #: services.pm:40 #, c-format msgid "" "GPM adds mouse support to text-based Linux applications such the\n" "Midnight Commander. It also allows mouse-based console cut-and-paste " "operations,\n" "and includes support for pop-up menus on the console." msgstr "" #: services.pm:43 #, c-format msgid "HAL is a daemon that collects and maintains information about hardware" msgstr "" #: services.pm:44 #, c-format msgid "" "HardDrake runs a hardware probe, and optionally configures\n" "new/changed hardware." msgstr "" #: services.pm:46 #, c-format msgid "" "Apache is a World Wide Web server. It is used to serve HTML files and CGI." msgstr "" #: services.pm:47 #, c-format msgid "" "The internet superserver daemon (commonly called inetd) starts a\n" "variety of other internet services as needed. It is responsible for " "starting\n" "many services, including telnet, ftp, rsh, and rlogin. Disabling inetd " "disables\n" "all of the services it is responsible for." msgstr "" #: services.pm:51 #, c-format msgid "Automates a packet filtering firewall with ip6tables" msgstr "" #: services.pm:52 #, c-format msgid "Automates a packet filtering firewall with iptables" msgstr "" #: services.pm:53 #, c-format msgid "" "Launch packet filtering for Linux kernel 2.2 series, to set\n" "up a firewall to protect your machine from network attacks." msgstr "" #: services.pm:55 #, c-format msgid "" "Evenly distributes IRQ load across multiple CPUs for enhanced performance" msgstr "" #: services.pm:56 #, c-format msgid "" "This package loads the selected keyboard map as set in\n" "/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n" "You should leave this enabled for most machines." msgstr "" #: services.pm:59 #, c-format msgid "" "Automatic regeneration of kernel header in /boot for\n" "/usr/include/linux/{autoconf,version}.h" msgstr "" #: services.pm:61 #, c-format msgid "Automatic detection and configuration of hardware at boot." msgstr "" #: services.pm:62 #, c-format msgid "Tweaks system behavior to extend battery life" msgstr "" #: services.pm:63 #, c-format msgid "" "Linuxconf will sometimes arrange to perform various tasks\n" "at boot-time to maintain the system configuration." msgstr "" #: services.pm:65 #, c-format msgid "" "lpd is the print daemon required for lpr to work properly. It is\n" "basically a server that arbitrates print jobs to printer(s)." msgstr "" #: services.pm:67 #, c-format msgid "" "Linux Virtual Server, used to build a high-performance and highly\n" "available server." msgstr "" #: services.pm:69 #, c-format msgid "Monitors the network (Interactive Firewall and wireless" msgstr "" #: services.pm:70 #, c-format msgid "Software RAID monitoring and management" msgstr "" #: services.pm:71 #, c-format msgid "" "DBUS is a daemon which broadcasts notifications of system events and other " "messages" msgstr "" #: services.pm:72 #, c-format msgid "Enables MSEC security policy on system startup" msgstr "" #: services.pm:73 #, c-format msgid "" "named (BIND) is a Domain Name Server (DNS) that is used to resolve host " "names to IP addresses." msgstr "" #: services.pm:74 #, c-format msgid "Initializes network console logging" msgstr "" #: services.pm:75 #, c-format msgid "" "Mounts and unmounts all Network File System (NFS), SMB (Lan\n" "Manager/Windows), and NCP (NetWare) mount points." msgstr "" #: services.pm:77 #, c-format msgid "" "Activates/Deactivates all network interfaces configured to start\n" "at boot time." msgstr "" #: services.pm:79 #, c-format msgid "Requires network to be up if enabled" msgstr "" #: services.pm:80 #, c-format msgid "Wait for the hotplugged network to be up" msgstr "" #: services.pm:81 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP networks.\n" "This service provides NFS server functionality, which is configured via the\n" "/etc/exports file." msgstr "" #: services.pm:84 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP\n" "networks. This service provides NFS file locking functionality." msgstr "" #: services.pm:86 #, c-format msgid "Synchronizes system time using the Network Time Protocol (NTP)" msgstr "" #: services.pm:87 #, c-format msgid "" "Automatically switch on numlock key locker under console\n" "and Xorg at boot." msgstr "" #: services.pm:89 #, c-format msgid "Support the OKI 4w and compatible winprinters." msgstr "" #: services.pm:90 #, c-format msgid "Checks if a partition is close to full up" msgstr "" #: services.pm:91 #, c-format msgid "" "PCMCIA support is usually to support things like ethernet and\n" "modems in laptops. It will not get started unless configured so it is safe " "to have\n" "it installed on machines that do not need it." msgstr "" #: services.pm:94 #, c-format msgid "" "The portmapper manages RPC connections, which are used by\n" "protocols such as NFS and NIS. The portmap server must be running on " "machines\n" "which act as servers for protocols which make use of the RPC mechanism." msgstr "" #: services.pm:97 #, c-format msgid "Reserves some TCP ports" msgstr "" #: services.pm:98 #, c-format msgid "" "Postfix is a Mail Transport Agent, which is the program that moves mail from " "one machine to another." msgstr "" #: services.pm:99 #, c-format msgid "" "Saves and restores system entropy pool for higher quality random\n" "number generation." msgstr "" #: services.pm:101 #, c-format msgid "" "Assign raw devices to block devices (such as hard drive\n" "partitions), for the use of applications such as Oracle or DVD players" msgstr "" #: services.pm:103 #, fuzzy, c-format msgid "Nameserver information manager" msgstr "የቋሚ ዲስክ መረጃ" #: services.pm:104 #, c-format msgid "" "The routed daemon allows for automatic IP router table updated via\n" "the RIP protocol. While RIP is widely used on small networks, more complex\n" "routing protocols are needed for complex networks." msgstr "" #: services.pm:107 #, c-format msgid "" "The rstat protocol allows users on a network to retrieve\n" "performance metrics for any machine on that network." msgstr "" #: services.pm:109 #, c-format msgid "" "Syslog is the facility by which many daemons use to log messages to various " "system log files. It is a good idea to always run rsyslog." msgstr "" #: services.pm:110 #, c-format msgid "" "The rusers protocol allows users on a network to identify who is\n" "logged in on other responding machines." msgstr "" #: services.pm:112 #, c-format msgid "" "The rwho protocol lets remote users get a list of all of the users\n" "logged into a machine running the rwho daemon (similar to finger)." msgstr "" #: services.pm:114 #, c-format msgid "" "SANE (Scanner Access Now Easy) enables to access scanners, video cameras, ..." msgstr "" #: services.pm:115 #, c-format msgid "Packet filtering firewall" msgstr "" #: services.pm:116 #, c-format msgid "" "The SMB/CIFS protocol enables to share access to files & printers and also " "integrates with a Windows Server domain" msgstr "" #: services.pm:117 #, c-format msgid "Launch the sound system on your machine" msgstr "" #: services.pm:118 #, c-format msgid "layer for speech analysis" msgstr "" #: services.pm:119 #, c-format msgid "" "Secure Shell is a network protocol that allows data to be exchanged over a " "secure channel between two computers" msgstr "" #: services.pm:120 #, c-format msgid "" "Syslog is the facility by which many daemons use to log messages\n" "to various system log files. It is a good idea to always run syslog." msgstr "" #: services.pm:122 #, c-format msgid "Moves the generated persistent udev rules to /etc/udev/rules.d" msgstr "" #: services.pm:123 #, c-format msgid "Load the drivers for your usb devices." msgstr "" #: services.pm:124 #, c-format msgid "A lightweight network traffic monitor" msgstr "" #: services.pm:125 #, c-format msgid "Starts the X Font Server." msgstr "" #: services.pm:126 #, c-format msgid "Starts other deamons on demand." msgstr "" #: services.pm:149 #, c-format msgid "Printing" msgstr "በማተም ላይ" #: services.pm:150 #, c-format msgid "Internet" msgstr "ኢንተርኔት" #: services.pm:153 #, c-format msgid "File sharing" msgstr "ሰነድ መጋራት" #: services.pm:155 #, c-format msgid "System" msgstr "ሲስተም" #: services.pm:160 #, c-format msgid "Remote Administration" msgstr "" #: services.pm:168 #, fuzzy, c-format msgid "Database Server" msgstr "ስለተጠሪ መረጃ" #: services.pm:179 services.pm:218 #, c-format msgid "Services" msgstr "አገልግሎት" #: services.pm:179 #, c-format msgid "Choose which services should be automatically started at boot time" msgstr "" #: services.pm:197 #, c-format msgid "%d activated for %d registered" msgstr "" #: services.pm:234 #, c-format msgid "running" msgstr "በሥራ ላይ" #: services.pm:234 #, c-format msgid "stopped" msgstr "" #: services.pm:239 #, fuzzy, c-format msgid "Services and daemons" msgstr "የገጽ አናት እና የገጽ ግርጌ" #: services.pm:245 #, c-format msgid "" "No additional information\n" "about this service, sorry." msgstr "" #: services.pm:250 ugtk2.pm:924 #, c-format msgid "Info" msgstr "መረጃ" #: services.pm:253 #, c-format msgid "Start when requested" msgstr "በተጠየቀ ጊዜ ጀምር" #: services.pm:253 #, fuzzy, c-format msgid "On boot" msgstr "የተመሠረተው፦" #: services.pm:271 #, c-format msgid "Start" msgstr "ጀምር" #: services.pm:271 #, c-format msgid "Stop" msgstr "አቁም" #: standalone.pm:25 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2, or (at your option)\n" "any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" msgstr "" #: standalone.pm:44 #, c-format msgid "" "[--config-info] [--daemon] [--debug] [--default] [--show-conf]\n" "Backup and Restore application\n" "\n" "--default : save default directories.\n" "--debug : show all debug messages.\n" "--show-conf : list of files or directories to backup.\n" "--config-info : explain configuration file options (for non-X " "users).\n" "--daemon : use daemon configuration. \n" "--help : show this message.\n" "--version : show version number.\n" msgstr "" #: standalone.pm:56 #, c-format msgid "" "[--boot]\n" "OPTIONS:\n" " --boot - enable to configure boot loader\n" "default mode: offer to configure autologin feature" msgstr "" #: standalone.pm:60 #, c-format msgid "" "[OPTIONS] [PROGRAM_NAME]\n" "\n" "OPTIONS:\n" " --help - print this help message.\n" " --report - program should be one of %s tools\n" " --incident - program should be one of %s tools" msgstr "" #: standalone.pm:66 #, c-format msgid "" "[--add]\n" " --add - \"add a network interface\" wizard\n" " --del - \"delete a network interface\" wizard\n" " --skip-wizard - manage connections\n" " --internet - configure internet\n" " --wizard - like --add" msgstr "" #: standalone.pm:72 #, c-format msgid "" "\n" "Font Importation and monitoring application\n" "\n" "OPTIONS:\n" "--windows_import : import from all available windows partitions.\n" "--xls_fonts : show all fonts that already exist from xls\n" "--install : accept any font file and any directory.\n" "--uninstall : uninstall any font or any directory of font.\n" "--replace : replace all font if already exist\n" "--application : 0 none application.\n" " : 1 all application available supported.\n" " : name_of_application like so for staroffice \n" " : and gs for ghostscript for only this one." msgstr "" #: standalone.pm:87 #, c-format msgid "" "[OPTIONS]...\n" "%s Terminal Server Configurator\n" "--enable : enable MTS\n" "--disable : disable MTS\n" "--start : start MTS\n" "--stop : stop MTS\n" "--adduser : add an existing system user to MTS (requires username)\n" "--deluser : delete an existing system user from MTS (requires " "username)\n" "--addclient : add a client machine to MTS (requires MAC address, IP, " "nbi image name)\n" "--delclient : delete a client machine from MTS (requires MAC address, " "IP, nbi image name)" msgstr "" #: standalone.pm:99 #, c-format msgid "[keyboard]" msgstr "[መተየቢያ]" #: standalone.pm:100 #, c-format msgid "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" msgstr "" #: standalone.pm:101 #, c-format msgid "" "[OPTIONS]\n" "Network & Internet connection and monitoring application\n" "\n" "--defaultintf interface : show this interface by default\n" "--connect : connect to internet if not already connected\n" "--disconnect : disconnect to internet if already connected\n" "--force : used with (dis)connect : force (dis)connection.\n" "--status : returns 1 if connected 0 otherwise, then exit.\n" "--quiet : do not be interactive. To be used with (dis)connect." msgstr "" #: standalone.pm:111 #, c-format msgid "" "[OPTION]...\n" " --no-confirmation do not ask first confirmation question in %s Update " "mode\n" " --no-verify-rpm do not verify packages signatures\n" " --changelog-first display changelog before filelist in the " "description window\n" " --merge-all-rpmnew propose to merge all .rpmnew/.rpmsave files found" msgstr "" #: standalone.pm:116 #, c-format msgid "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" msgstr "" #: standalone.pm:117 #, c-format msgid "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" msgstr "" #: standalone.pm:153 #, c-format msgid "" "\n" "Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " msgstr "" #: timezone.pm:161 timezone.pm:162 #, fuzzy, c-format msgid "All servers" msgstr "ተጠሪ ጨምር" #: timezone.pm:196 #, c-format msgid "Global" msgstr "" #: timezone.pm:199 #, fuzzy, c-format msgid "Africa" msgstr "ደቡብ አፍሪካ" #: timezone.pm:200 #, fuzzy, c-format msgid "Asia" msgstr "ኦስትሪያ" #: timezone.pm:201 #, c-format msgid "Europe" msgstr "" #: timezone.pm:202 #, fuzzy, c-format msgid "North America" msgstr "ደቡብ አፍሪካ" #: timezone.pm:203 #, fuzzy, c-format msgid "Oceania" msgstr "ማከዶኒያ" #: timezone.pm:204 #, fuzzy, c-format msgid "South America" msgstr "ደቡብ አፍሪካ" #: timezone.pm:213 #, c-format msgid "Hong Kong" msgstr "ሆንግ ኮንግ" #: timezone.pm:250 #, c-format msgid "Russian Federation" msgstr "ራሺያ" #: timezone.pm:258 #, c-format msgid "Yugoslavia" msgstr "ዩጎዝላቪያ" #: ugtk2.pm:812 #, c-format msgid "Is this correct?" msgstr "ይህ ትክክል ነው?" #: ugtk2.pm:874 #, c-format msgid "You have chosen a file, not a directory" msgstr "" #: wizards.pm:95 #, c-format msgid "" "%s is not installed\n" "Click \"Next\" to install or \"Cancel\" to quit" msgstr "" #: wizards.pm:99 #, fuzzy, c-format msgid "Installation failed" msgstr "%s አልተገኘም" #~ msgid "Restrict command line options" #~ msgstr "የትእዛዝ መስመር ምርጫዎችን ወስን" #~ msgid "restrict" #~ msgstr "ወስን" #, fuzzy #~ msgid "Which partition do you want to use for Linux4Win?" #~ msgstr "%sን የት መትከል ይፈልጋሉ?" #~ msgid "Choose the sizes" #~ msgstr "መጠኖቹን ይምረጡ" #, fuzzy #~ msgid "Root partition size in MB: " #~ msgstr "አዲስ መጠን በMB: " #, fuzzy #~ msgid "Swap partition size in MB: " #~ msgstr "አዲስ መጠን በMB: " #, fuzzy #~ msgid "Welcome To Crackers" #~ msgstr "እንደገና የሚሰራ ምንም የለም።" #~ msgid "High" #~ msgstr "ከፍ ያለ" #, fuzzy #~ msgid "Use libsafe for servers" #~ msgstr "ለህብሩ የglyph ቅርጽ አወጣት ተጠቀም" #~ msgid "LILO/grub Installation" #~ msgstr "የLILO/grub ተከላ" #, fuzzy #~ msgid "Security level" #~ msgstr "የደህንነት ደረጃ፦" #~ msgid "Choose action" #~ msgstr "ተግባር ይምረጡ" #, fuzzy #~ msgid "Active Directory with SFU" #~ msgstr "አኃዞች (ከክፍተት ጋር)" #, fuzzy #~ msgid "Active Directory with Winbind" #~ msgstr "አኃዞች (ከክፍተት ጋር)" #, fuzzy #~ msgid "Active Directory with SFU:" #~ msgstr "አኃዞች (ከክፍተት ጋር)" #, fuzzy #~ msgid "Active Directory with Winbind:" #~ msgstr "አኃዞች (ከክፍተት ጋር)" #, fuzzy #~ msgid "Authentication Active Directory" #~ msgstr "የX ዘገባ የማስትገባት ዘዴ" #, fuzzy #~ msgid "LDAP users database" #~ msgstr "ዳታቤዝ" #~ msgid "Authentication Windows Domain" #~ msgstr "የWindows ዶሜን ትክክለኝነቱን ማረጋጥ" #~ msgid "Undo" #~ msgstr "ወደ ነበረበት መልስ" #~ msgid "Save partition table" #~ msgstr "የክፋይ ሠንጠረዡን አስቀምጥ" #~ msgid "Restore partition table" #~ msgstr "የክፋይ ሠንጠረዡ ወደ ነበረበት መልስ" #~ msgid "Info: " #~ msgstr "መረጃ: " #, fuzzy #~ msgid "Unknown driver" #~ msgstr "ያልታወቀ የሆሄያት ኮድ፦ " #~ msgid "Error reading file %s" #~ msgstr "%sን በማንበብ ላይ ስህተት ተፈጥሯል" #, fuzzy #~ msgid "Restoring from file %s failed: %s" #~ msgstr "ከ &pot ሰነድ አሻሽል" #, fuzzy #~ msgid "Bad backup file" #~ msgstr "ጥሩው የፋይል ዓይነት" #, fuzzy #~ msgid "Error writing to file %s" #~ msgstr "ስህተት፦ የታቀደው ፋይል '%s'ን መክፈት አልተቻለም\n" #~ msgid "Ext2" #~ msgstr "Ext2" #~ msgid "Add user" #~ msgstr "ተጠቃሚ ጨምር" #~ msgid "Accept user" #~ msgstr "ተጠቃሚ ተቀበል" #~ msgid "Rescue partition table" #~ msgstr "የክፋይ ሠንጠረዡን አድን" #, fuzzy #~ msgid "Number of capture buffers:" #~ msgstr "የአምዶቹን ቍጥር ለውጥ" #~ msgid "PLL setting:" #~ msgstr "የPLL ምርጫ" #~ msgid "Radio support:" #~ msgstr "የሬዲዮ ድጋፍ"