aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/utf/utf_tools.php
blob: e60a40a195e288322287ca49df1ed00fc2c18e32 (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
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

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

// Enforce ASCII only string handling
setlocale(LC_CTYPE, 'C');

/**
* UTF-8 tools
*
* Whenever possible, these functions will try to use PHP's built-in functions or
* extensions, otherwise they will default to custom routines.
*
*/

if (!extension_loaded('xml'))
{
	/**
	* Implementation of PHP's native utf8_encode for people without XML support
	* This function exploits some nice things that ISO-8859-1 and UTF-8 have in common
	*
	* @param string $str ISO-8859-1 encoded data
	* @return string UTF-8 encoded data
	*/
	function utf8_encode($str)
	{
		$out = '';
		for ($i = 0, $len = strlen($str); $i < $len; $i++)
		{
			$letter = $str[$i];
			$num = ord($letter);
			if ($num < 0x80)
			{
				$out .= $letter;
			}
			else if ($num < 0xC0)
			{
				$out .= "\xC2" . $letter;
			}
			else
			{
				$out .= "\xC3" . chr($num - 64);
			}
		}
		return $out;
	}

	/**
	* Implementation of PHP's native utf8_decode for people without XML support
	*
	* @param string $str UTF-8 encoded data
	* @return string ISO-8859-1 encoded data
	*/
	function utf8_decode($str)
	{
		$pos = 0;
		$len = strlen($str);
		$ret = '';

		while ($pos < $len)
		{
			$ord = ord($str[$pos]) & 0xF0;
			if ($ord === 0xC0 || $ord === 0xD0)
			{
				$charval = ((ord($str[$pos]) & 0x1F) << 6) | (ord($str[$pos + 1]) & 0x3F);
				$pos += 2;
				$ret .= (($charval < 256) ? chr($charval) : '?');
			}
			else if ($ord === 0xE0)
			{
				$ret .= '?';
				$pos += 3;
			}
			else if ($ord === 0xF0)
			{
				$ret .= '?';
				$pos += 4;
			}
			else
			{
				$ret .= $str[$pos];
				++$pos;
			}
		}
		return $ret;
	}
}

// mbstring is old and has it's functions around for older versions of PHP.
// if mbstring is not loaded, we go into native mode.
if (extension_loaded('mbstring'))
{
	mb_internal_encoding('UTF-8');

	/**
	* UTF-8 aware alternative to strrpos
	* Find position of last occurrence of a char in a string
	*/
	/**
	* UTF-8 aware alternative to strrpos
	* @ignore
	*/
	function utf8_strrpos($str,	$needle, $offset = null)
	{
		// Emulate behaviour of strrpos rather than raising warning
		if (empty($str))
		{
			return false;
		}

		if (is_null($offset))
		{
			return mb_strrpos($str, $needle);
		}
		else
		{
			return mb_strrpos($str, $needle, $offset);
		}
	}

	/**
	* UTF-8 aware alternative to strpos
	* @ignore
	*/
	function utf8_strpos($str, $needle, $offset = null)
	{
		if (is_null($offset))
		{
			return mb_strpos($str, $needle);
		}
		else
		{
			return mb_strpos($str, $needle, $offset);
		}
	}

	/**
	* UTF-8 aware alternative to strtolower
	* @ignore
	*/
	function utf8_strtolower($str)
	{
		return mb_strtolower($str);
	}

	/**
	* UTF-8 aware alternative to strtoupper
	* @ignore
	*/
	function utf8_strtoupper($str)
	{
		return mb_strtoupper($str);
	}

	/**
	* UTF-8 aware alternative to substr
	* @ignore
	*/
	function utf8_substr($str, $offset, $length = null)
	{
		if (is_null($length))
		{
			return mb_substr($str, $offset);
		}
		else
		{
			return mb_substr($str, $offset, $length);
		}
	}

	/**
	* Return the length (in characters) of a UTF-8 string
	* @ignore
	*/
	function utf8_strlen($text)
	{
		return mb_strlen($text, 'utf-8');
	}
}
else
{
	/**
	* UTF-8 aware alternative to strrpos
	* Find position of last occurrence of a char in a string
	*
	* @author Harry Fuecks
	* @param string $str haystack
	* @param string $needle needle
	* @param integer $offset (optional) offset (from left)
	* @return mixed integer position or FALSE on failure
	*/
	function utf8_strrpos($str,	$needle, $offset = null)
	{
		if (is_null($offset))
		{
			$ar	= explode($needle, $str);

			if (sizeof($ar) > 1)
			{
				// Pop off the end of the string where the last	match was made
				array_pop($ar);
				$str = join($needle, $ar);

				return utf8_strlen($str);
			}
			return false;
		}
		else
		{
			if (!is_int($offset))
			{
				trigger_error('utf8_strrpos	expects	parameter 3	to be long', E_USER_ERROR);
				return false;
			}

			$str = utf8_substr($str, $offset);

			if (false !== ($pos = utf8_strrpos($str, $needle)))
			{
				return $pos	+ $offset;
			}

			return false;
		}
	}

	/**
	* UTF-8 aware alternative to strpos
	* Find position of first occurrence of a string
	*
	* @author Harry Fuecks
	* @param string $str haystack
	* @param string $needle needle
	* @param integer $offset offset in characters (from left)
	* @return mixed integer position or FALSE on failure
	*/
	function utf8_strpos($str, $needle, $offset = null)
	{
		if (is_null($offset))
		{
			$ar = explode($needle, $str);
			if (sizeof($ar) > 1)
			{
				return utf8_strlen($ar[0]);
			}
			return false;
		}
		else
		{
			if (!is_int($offset))
			{
				trigger_error('utf8_strpos:  Offset must  be an integer', E_USER_ERROR);
				return false;
			}

			$str = utf8_substr($str, $offset);

			if (false !== ($pos = utf8_strpos($str, $needle)))
			{
				return $pos + $offset;
			}

			return false;
		}
	}

	/**
	* UTF-8 aware alternative to strtolower
	* Make a string lowercase
	* Note: The concept of a characters "case" only exists is some alphabets
	* such as Latin, Greek, Cyrillic, Armenian and archaic Georgian - it does
	* not exist in the Chinese alphabet, for example. See Unicode Standard
	* Annex #21: Case Mappings
	*
	* @param string
	* @return string string in lowercase
	*/
	function utf8_strtolower($string)
	{
		static $utf8_upper_to_lower = array(
			"\xC3\x80" => "\xC3\xA0", "\xC3\x81" => "\xC3\xA1",
			"\xC3\x82" => "\xC3\xA2", "\xC3\x83" => "\xC3\xA3", "\xC3\x84" => "\xC3\xA4", "\xC3\x85" => "\xC3\xA5",
			"\xC3\x86" => "\xC3\xA6", "\xC3\x87" => "\xC3\xA7", "\xC3\x88" => "\xC3\xA8", "\xC3\x89" => "\xC3\xA9",
			"\xC3\x8A" => "\xC3\xAA", "\xC3\x8B" => "\xC3\xAB", "\xC3\x8C" => "\xC3\xAC", "\xC3\x8D" => "\xC3\xAD",
			"\xC3\x8E" => "\xC3\xAE", "\xC3\x8F" => "\xC3\xAF", "\xC3\x90" => "\xC3\xB0", "\xC3\x91" => "\xC3\xB1",
			"\xC3\x92" => "\xC3\xB2", "\xC3\x93" => "\xC3\xB3", "\xC3\x94" => "\xC3\xB4", "\xC3\x95" => "\xC3\xB5",
			"\xC3\x96" => "\xC3\xB6", "\xC3\x98" => "\xC3\xB8", "\xC3\x99" => "\xC3\xB9", "\xC3\x9A" => "\xC3\xBA",
			"\xC3\x9B" => "\xC3\xBB", "\xC3\x9C" => "\xC3\xBC", "\xC3\x9D" => "\xC3\xBD", "\xC3\x9E" => "\xC3\xBE",
			"\xC4\x80" => "\xC4\x81", "\xC4\x82" => "\xC4\x83", "\xC4\x84" => "\xC4\x85", "\xC4\x86" => "\xC4\x87",
			"\xC4\x88" => "\xC4\x89", "\xC4\x8A" => "\xC4\x8B", "\xC4\x8C" => "\xC4\x8D", "\xC4\x8E" => "\xC4\x8F",
			"\xC4\x90" => "\xC4\x91", "\xC4\x92" => "\xC4\x93", "\xC4\x96" => "\xC4\x97", "\xC4\x98" => "\xC4\x99",
			"\xC4\x9A" => "\xC4\x9B", "\xC4\x9C" => "\xC4\x9D", "\xC4\x9E" => "\xC4\x9F", "\xC4\xA0" => "\xC4\xA1",
			"\xC4\xA2" => "\xC4\xA3", "\xC4\xA4" => "\xC4\xA5", "\xC4\xA6" => "\xC4\xA7", "\xC4\xA8" => "\xC4\xA9",
			"\xC4\xAA" => "\xC4\xAB", "\xC4\xAE" => "\xC4\xAF", "\xC4\xB4" => "\xC4\xB5", "\xC4\xB6" => "\xC4\xB7",
			"\xC4\xB9" => "\xC4\xBA", "\xC4\xBB" => "\xC4\xBC", "\xC4\xBD" => "\xC4\xBE", "\xC5\x81" => "\xC5\x82",
			"\xC5\x83" => "\xC5\x84", "\xC5\x85" => "\xC5\x86", "\xC5\x87" => "\xC5\x88", "\xC5\x8A" => "\xC5\x8B",
			"\xC5\x8C" => "\xC5\x8D", "\xC5\x90" => "\xC5\x91", "\xC5\x94" => "\xC5\x95", "\xC5\x96" => "\xC5\x97",
			"\xC5\x98" => "\xC5\x99", "\xC5\x9A" => "\xC5\x9B", "\xC5\x9C" => "\xC5\x9D", "\xC5\x9E" => "\xC5\x9F",
			"\xC5\xA0" => "\xC5\xA1", "\xC5\xA2" => "\xC5\xA3", "\xC5\xA4" => "\xC5\xA5", "\xC5\xA6" => "\xC5\xA7",
			"\xC5\xA8" => "\xC5\xA9", "\xC5\xAA" => "\xC5\xAB", "\xC5\xAC" => "\xC5\xAD", "\xC5\xAE" => "\xC5\xAF",
			"\xC5\xB0" => "\xC5\xB1", "\xC5\xB2" => "\xC5\xB3", "\xC5\xB4" => "\xC5\xB5", "\xC5\xB6" => "\xC5\xB7",
			"\xC5\xB8" => "\xC3\xBF", "\xC5\xB9" => "\xC5\xBA", "\xC5\xBB" => "\xC5\xBC", "\xC5\xBD" => "\xC5\xBE",
			"\xC6\xA0" => "\xC6\xA1", "\xC6\xAF" => "\xC6\xB0", "\xC8\x98" => "\xC8\x99", "\xC8\x9A" => "\xC8\x9B",
			"\xCE\x86" => "\xCE\xAC", "\xCE\x88" => "\xCE\xAD", "\xCE\x89" => "\xCE\xAE", "\xCE\x8A" => "\xCE\xAF",
			"\xCE\x8C" => "\xCF\x8C", "\xCE\x8E" => "\xCF\x8D", "\xCE\x8F" => "\xCF\x8E", "\xCE\x91" => "\xCE\xB1",
			"\xCE\x92" => "\xCE\xB2", "\xCE\x93" => "\xCE\xB3", "\xCE\x94" => "\xCE\xB4", "\xCE\x95" => "\xCE\xB5",
			"\xCE\x96" => "\xCE\xB6", "\xCE\x97" => "\xCE\xB7", "\xCE\x98" => "\xCE\xB8", "\xCE\x99" => "\xCE\xB9",
			"\xCE\x9A" => "\xCE\xBA", "\xCE\x9B" => "\xCE\xBB", "\xCE\x9C" => "\xCE\xBC", "\xCE\x9D" => "\xCE\xBD",
			"\xCE\x9E" => "\xCE\xBE", "\xCE\x9F" => "\xCE\xBF", "\xCE\xA0" => "\xCF\x80", "\xCE\xA1" => "\xCF\x81",
			"\xCE\xA3" => "\xCF\x83", "\xCE\xA4" => "\xCF\x84", "\xCE\xA5" => "\xCF\x85", "\xCE\xA6" => "\xCF\x86",
			"\xCE\xA7" => "\xCF\x87", "\xCE\xA8" => "\xCF\x88", "\xCE\xA9" => "\xCF\x89", "\xCE\xAA" => "\xCF\x8A",
			"\xCE\xAB" => "\xCF\x8B", "\xD0\x81" => "\xD1\x91", "\xD0\x82" => "\xD1\x92", "\xD0\x83" => "\xD1\x93",
			"\xD0\x84" => "\xD1\x94", "\xD0\x85" => "\xD1\x95", "\xD0\x86" => "\xD1\x96", "\xD0\x87" => "\xD1\x97",
			"\xD0\x88" => "\xD1\x98", "\xD0\x89" => "\xD1\x99", "\xD0\x8A" => "\xD1\x9A", "\xD0\x8B" => "\xD1\x9B",
			"\xD0\x8C" => "\xD1\x9C", "\xD0\x8E" => "\xD1\x9E", "\xD0\x8F" => "\xD1\x9F", "\xD0\x90" => "\xD0\xB0",
			"\xD0\x91" => "\xD0\xB1", "\xD0\x92" => "\xD0\xB2", "\xD0\x93" => "\xD0\xB3", "\xD0\x94" => "\xD0\xB4",
			"\xD0\x95" => "\xD0\xB5", "\xD0\x96" => "\xD0\xB6", "\xD0\x97" => "\xD0\xB7", "\xD0\x98" => "\xD0\xB8",
			"\xD0\x99" => "\xD0\xB9", "\xD0\x9A" => "\xD0\xBA", "\xD0\x9B" => "\xD0\xBB", "\xD0\x9C" => "\xD0\xBC",
			"\xD0\x9D" => "\xD0\xBD", "\xD0\x9E" => "\xD0\xBE", "\xD0\x9F" => "\xD0\xBF", "\xD0\xA0" => "\xD1\x80",
			"\xD0\xA1" => "\xD1\x81", "\xD0\xA2" => "\xD1\x82", "\xD0\xA3" => "\xD1\x83", "\xD0\xA4" => "\xD1\x84",
			"\xD0\xA5" => "\xD1\x85", "\xD0\xA6" => "\xD1\x86", "\xD0\xA7" => "\xD1\x87", "\xD0\xA8" => "\xD1\x88",
			"\xD0\xA9" => "\xD1\x89", "\xD0\xAA" => "\xD1\x8A", "\xD0\xAB" => "\xD1\x8B", "\xD0\xAC" => "\xD1\x8C",
			"\xD0\xAD" => "\xD1\x8D", "\xD0\xAE" => "\xD1\x8E", "\xD0\xAF" => "\xD1\x8F", "\xD2\x90" => "\xD2\x91",
			"\xE1\xB8\x82" => "\xE1\xB8\x83", "\xE1\xB8\x8A" => "\xE1\xB8\x8B", "\xE1\xB8\x9E" => "\xE1\xB8\x9F", "\xE1\xB9\x80" => "\xE1\xB9\x81",
			"\xE1\xB9\x96" => "\xE1\xB9\x97", "\xE1\xB9\xA0" => "\xE1\xB9\xA1", "\xE1\xB9\xAA" => "\xE1\xB9\xAB", "\xE1\xBA\x80" => "\xE1\xBA\x81",
			"\xE1\xBA\x82" => "\xE1\xBA\x83", "\xE1\xBA\x84" => "\xE1\xBA\x85", "\xE1\xBB\xB2" => "\xE1\xBB\xB3"
		);

		return strtr(strtolower($string), $utf8_upper_to_lower);
	}

	/**
	* UTF-8 aware alternative to strtoupper
	* Make a string uppercase
	* Note: The concept of a characters "case" only exists is some alphabets
	* such as Latin, Greek, Cyrillic, Armenian and archaic Georgian - it does
	* not exist in the Chinese alphabet, for example. See Unicode Standard
	* Annex #21: Case Mappings
	*
	* @param string
	* @return string string in uppercase
	*/
	function utf8_strtoupper($string)
	{
		static $utf8_lower_to_upper = array(
			"\xC3\xA0" => "\xC3\x80", "\xC3\xA1" => "\xC3\x81",
			"\xC3\xA2" => "\xC3\x82", "\xC3\xA3" => "\xC3\x83", "\xC3\xA4" => "\xC3\x84", "\xC3\xA5" => "\xC3\x85",
			"\xC3\xA6" => "\xC3\x86", "\xC3\xA7" => "\xC3\x87", "\xC3\xA8" => "\xC3\x88", "\xC3\xA9" => "\xC3\x89",
			"\xC3\xAA" => "\xC3\x8A", "\xC3\xAB" => "\xC3\x8B", "\xC3\xAC" => "\xC3\x8C", "\xC3\xAD" => "\xC3\x8D",
			"\xC3\xAE" => "\xC3\x8E", "\xC3\xAF" => "\xC3\x8F", "\xC3\xB0" => "\xC3\x90", "\xC3\xB1" => "\xC3\x91",
			"\xC3\xB2" => "\xC3\x92", "\xC3\xB3" => "\xC3\x93", "\xC3\xB4" => "\xC3\x94", "\xC3\xB5" => "\xC3\x95",
			"\xC3\xB6" => "\xC3\x96", "\xC3\xB8" => "\xC3\x98", "\xC3\xB9" => "\xC3\x99", "\xC3\xBA" => "\xC3\x9A",
			"\xC3\xBB" => "\xC3\x9B", "\xC3\xBC" => "\xC3\x9C", "\xC3\xBD" => "\xC3\x9D", "\xC3\xBE" => "\xC3\x9E",
			"\xC3\xBF" => "\xC5\xB8", "\xC4\x81" => "\xC4\x80", "\xC4\x83" => "\xC4\x82", "\xC4\x85" => "\xC4\x84",
			"\xC4\x87" => "\xC4\x86", "\xC4\x89" => "\xC4\x88", "\xC4\x8B" => "\xC4\x8A", "\xC4\x8D" => "\xC4\x8C",
			"\xC4\x8F" => "\xC4\x8E", "\xC4\x91" => "\xC4\x90", "\xC4\x93" => "\xC4\x92", "\xC4\x97" => "\xC4\x96",
			"\xC4\x99" => "\xC4\x98", "\xC4\x9B" => "\xC4\x9A", "\xC4\x9D" => "\xC4\x9C", "\xC4\x9F" => "\xC4\x9E",
			"\xC4\xA1" => "\xC4\xA0", "\xC4\xA3" => "\xC4\xA2", "\xC4\xA5" => "\xC4\xA4", "\xC4\xA7" => "\xC4\xA6",
			"\xC4\xA9" => "\xC4\xA8", "\xC4\xAB" => "\xC4\xAA", "\xC4\xAF" => "\xC4\xAE", "\xC4\xB5" => "\xC4\xB4",
			"\xC4\xB7" => "\xC4\xB6", "\xC4\xBA" => "\xC4\xB9", "\xC4\xBC" => "\xC4\xBB", "\xC4\xBE" => "\xC4\xBD",
			"\xC5\x82" => "\xC5\x81", "\xC5\x84" => "\xC5\x83", "\xC5\x86" => "\xC5\x85", "\xC5\x88" => "\xC5\x87",
			"\xC5\x8B" => "\xC5\x8A", "\xC5\x8D" => "\xC5\x8C", "\xC5\x91" => "\xC5\x90", "\xC5\x95" => "\xC5\x94",
			"\xC5\x97" => "\xC5\x96", "\xC5\x99" => "\xC5\x98", "\xC5\x9B" => "\xC5\x9A", "\xC5\x9D" => "\xC5\x9C",
			"\xC5\x9F" => "\xC5\x9E", "\xC5\xA1" => "\xC5\xA0", "\xC5\xA3" => "\xC5\xA2", "\xC5\xA5" => "\xC5\xA4",
			"\xC5\xA7" => "\xC5\xA6", "\xC5\xA9" => "\xC5\xA8", "\xC5\xAB" => "\xC5\xAA", "\xC5\xAD" => "\xC5\xAC",
			"\xC5\xAF" => "\xC5\xAE", "\xC5\xB1" => "\xC5\xB0", "\xC5\xB3" => "\xC5\xB2", "\xC5\xB5" => "\xC5\xB4",
			"\xC5\xB7" => "\xC5\xB6", "\xC5\xBA" => "\xC5\xB9", "\xC5\xBC" => "\xC5\xBB", "\xC5\xBE" => "\xC5\xBD",
			"\xC6\xA1" => "\xC6\xA0", "\xC6\xB0" => "\xC6\xAF", "\xC8\x99" => "\xC8\x98", "\xC8\x9B" => "\xC8\x9A",
			"\xCE\xAC" => "\xCE\x86", "\xCE\xAD" => "\xCE\x88", "\xCE\xAE" => "\xCE\x89", "\xCE\xAF" => "\xCE\x8A",
			"\xCE\xB1" => "\xCE\x91", "\xCE\xB2" => "\xCE\x92", "\xCE\xB3" => "\xCE\x93", "\xCE\xB4" => "\xCE\x94",
			"\xCE\xB5" => "\xCE\x95", "\xCE\xB6" => "\xCE\x96", "\xCE\xB7" => "\xCE\x97", "\xCE\xB8" => "\xCE\x98",
			"\xCE\xB9" => "\xCE\x99", "\xCE\xBA" => "\xCE\x9A", "\xCE\xBB" => "\xCE\x9B", "\xCE\xBC" => "\xCE\x9C",
			"\xCE\xBD" => "\xCE\x9D", "\xCE\xBE" => "\xCE\x9E", "\xCE\xBF" => "\xCE\x9F", "\xCF\x80" => "\xCE\xA0",
			"\xCF\x81" => "\xCE\xA1", "\xCF\x83" => "\xCE\xA3", "\xCF\x84" => "\xCE\xA4", "\xCF\x85" => "\xCE\xA5",
			"\xCF\x86" => "\xCE\xA6", "\xCF\x87" => "\xCE\xA7", "\xCF\x88" => "\xCE\xA8", "\xCF\x89" => "\xCE\xA9",
			"\xCF\x8A" => "\xCE\xAA", "\xCF\x8B" => "\xCE\xAB", "\xCF\x8C" => "\xCE\x8C", "\xCF\x8D" => "\xCE\x8E",
			"\xCF\x8E" => "\xCE\x8F", "\xD0\xB0" => "\xD0\x90", "\xD0\xB1" => "\xD0\x91", "\xD0\xB2" => "\xD0\x92",
			"\xD0\xB3" => "\xD0\x93", "\xD0\xB4" => "\xD0\x94", "\xD0\xB5" => "\xD0\x95", "\xD0\xB6" => "\xD0\x96",
			"\xD0\xB7" => "\xD0\x97", "\xD0\xB8" => "\xD0\x98", "\xD0\xB9" => "\xD0\x99", "\xD0\xBA" => "\xD0\x9A",
			"\xD0\xBB" => "\xD0\x9B", "\xD0\xBC" => "\xD0\x9C", "\xD0\xBD" => "\xD0\x9D", "\xD0\xBE" => "\xD0\x9E",
			"\xD0\xBF" => "\xD0\x9F", "\xD1\x80" => "\xD0\xA0", "\xD1\x81" => "\xD0\xA1", "\xD1\x82" => "\xD0\xA2",
			"\xD1\x83" => "\xD0\xA3", "\xD1\x84" => "\xD0\xA4", "\xD1\x85" => "\xD0\xA5", "\xD1\x86" => "\xD0\xA6",
			"\xD1\x87" => "\xD0\xA7", "\xD1\x88" => "\xD0\xA8", "\xD1\x89" => "\xD0\xA9", "\xD1\x8A" => "\xD0\xAA",
			"\xD1\x8B" => "\xD0\xAB", "\xD1\x8C" => "\xD0\xAC", "\xD1\x8D" => "\xD0\xAD", "\xD1\x8E" => "\xD0\xAE",
			"\xD1\x8F" => "\xD0\xAF", "\xD1\x91" => "\xD0\x81", "\xD1\x92" => "\xD0\x82", "\xD1\x93" => "\xD0\x83",
			"\xD1\x94" => "\xD0\x84", "\xD1\x95" => "\xD0\x85", "\xD1\x96" => "\xD0\x86", "\xD1\x97" => "\xD0\x87",
			"\xD1\x98" => "\xD0\x88", "\xD1\x99" => "\xD0\x89", "\xD1\x9A" => "\xD0\x8A", "\xD1\x9B" => "\xD0\x8B",
			"\xD1\x9C" => "\xD0\x8C", "\xD1\x9E" => "\xD0\x8E", "\xD1\x9F" => "\xD0\x8F", "\xD2\x91" => "\xD2\x90",
			"\xE1\xB8\x83" => "\xE1\xB8\x82", "\xE1\xB8\x8B" => "\xE1\xB8\x8A", "\xE1\xB8\x9F" => "\xE1\xB8\x9E", "\xE1\xB9\x81" => "\xE1\xB9\x80",
			"\xE1\xB9\x97" => "\xE1\xB9\x96", "\xE1\xB9\xA1" => "\xE1\xB9\xA0", "\xE1\xB9\xAB" => "\xE1\xB9\xAA", "\xE1\xBA\x81" => "\xE1\xBA\x80",
			"\xE1\xBA\x83" => "\xE1\xBA\x82", "\xE1\xBA\x85" => "\xE1\xBA\x84", "\xE1\xBB\xB3" => "\xE1\xBB\xB2"
		);

		return strtr(strtoupper($string), $utf8_lower_to_upper);
	}

	/**
	* UTF-8 aware alternative to substr
	* Return part of a string given character offset (and optionally length)
	*
	* Note arguments: comparied to substr - if offset or length are
	* not integers, this version will not complain but rather massages them
	* into an integer.
	*
	* Note on returned values: substr documentation states false can be
	* returned in some cases (e.g. offset > string length)
	* mb_substr never returns false, it will return an empty string instead.
	* This adopts the mb_substr approach
	*
	* Note on implementation: PCRE only supports repetitions of less than
	* 65536, in order to accept up to MAXINT values for offset and length,
	* we'll repeat a group of 65535 characters when needed.
	*
	* Note on implementation: calculating the number of characters in the
	* string is a relatively expensive operation, so we only carry it out when
	* necessary. It isn't necessary for +ve offsets and no specified length
	*
	* @author Chris Smith<chris@jalakai.co.uk>
	* @param string $str
	* @param integer $offset number of UTF-8 characters offset (from left)
	* @param integer $length (optional) length in UTF-8 characters from offset
	* @return mixed string or FALSE if failure
	*/
	function utf8_substr($str, $offset, $length = NULL)
	{
		// generates E_NOTICE
		// for PHP4 objects, but not PHP5 objects
		$str = (string) $str;
		$offset = (int) $offset;
		if (!is_null($length))
		{
			$length = (int) $length;
		}

		// handle trivial cases
		if ($length === 0 || ($offset < 0 && $length < 0 && $length < $offset))
		{
			return '';
		}

		// normalise negative offsets (we could use a tail
		// anchored pattern, but they are horribly slow!)
		if ($offset < 0)
		{
			// see notes
			$strlen = utf8_strlen($str);
			$offset = $strlen + $offset;
			if ($offset < 0)
			{
				$offset = 0;
			}
		}

		$op = '';
		$lp = '';

		// establish a pattern for offset, a
		// non-captured group equal in length to offset
		if ($offset > 0)
		{
			$ox = (int) ($offset / 65535);
			$oy = $offset % 65535;

			if ($ox)
			{
				$op = '(?:.{65535}){' . $ox . '}';
			}

			$op = '^(?:' . $op . '.{' . $oy . '})';
		}
		else
		{
			// offset == 0; just anchor the pattern
			$op = '^';
		}

		// establish a pattern for length
		if (is_null($length))
		{
			// the rest of the string
			$lp = '(.*)$';
		}
		else
		{
			if (!isset($strlen))
			{
				// see notes
				$strlen = utf8_strlen($str);
			}

			// another trivial case
			if ($offset > $strlen)
			{
				return '';
			}

			if ($length > 0)
			{
				// reduce any length that would
				// go passed the end of the string
				$length = min($strlen - $offset, $length);

				$lx = (int) ($length / 65535);
				$ly = $length % 65535;

				// negative length requires a captured group
				// of length characters
				if ($lx)
				{
					$lp = '(?:.{65535}){' . $lx . '}';
				}
				$lp = '(' . $lp . '.{'. $ly . '})';
			}
			else if ($length < 0)
			{
				if ($length < ($offset - $strlen))
				{
					return '';
				}

				$lx = (int) ((-$length) / 65535);
				$ly = (-$length) % 65535;

				// negative length requires ... capture everything
				// except a group of  -length characters
				// anchored at the tail-end of the string
				if ($lx)
				{
					$lp = '(?:.{65535}){' . $lx . '}';
				}
				$lp = '(.*)(?:' . $lp . '.{' . $ly . '})$';
			}
		}

		if (!preg_match('#' . $op . $lp . '#us', $str, $match))
		{
			return '';
		}

		return $match[1];
	}

	/**
	* Return the length (in characters) of a UTF-8 string
	*
	* @param	string	$text		UTF-8 string
	* @return	integer				Length (in chars) of given string
	*/
	function utf8_strlen($text)
	{
		// Since utf8_decode is replacing multibyte characters to ? strlen works fine
		return strlen(utf8_decode($text));
	}
}

/**
* UTF-8 aware alternative to str_split
* Convert a string to an array
*
* @author Harry Fuecks
* @param string $str UTF-8 encoded
* @param int $split_len number to characters to split string by
* @return array characters in string reverses
*/
function utf8_str_split($str, $split_len = 1)
{
	if (!is_int($split_len) || $split_len < 1)
	{
		return false;
	}

	$len = utf8_strlen($str);
	if ($len <= $split_len)
	{
		return array($str);
	}

	preg_match_all('/.{' . $split_len . '}|[^\x00]{1,' . $split_len . '}$/us', $str, $ar);
	return $ar[0];
}

/**
* UTF-8 aware alternative to strspn
* Find length of initial segment matching the mask
*
* @author Harry Fuecks
*/
function utf8_strspn($str, $mask, $start = null, $length = null)
{
	if ($start !== null || $length !== null)
	{
		$str = utf8_substr($str, $start, $length);
	}

	preg_match('/^[' . $mask . ']+/u', $str, $matches);

	if (isset($matches[0]))
	{
		return utf8_strlen($matches[0]);
	}

	return 0;
}

/**
* UTF-8 aware alternative to ucfirst
* Make a string's first character uppercase
*
* @author Harry Fuecks
* @param string
* @return string with first character as upper case (if applicable)
*/
function utf8_ucfirst($str)
{
	switch (utf8_strlen($str))
	{
		case 0:
			return '';
		break;

		case 1:
			return utf8_strtoupper($str);
		break;

		default:
			preg_match('/^(.{1})(.*)$/us', $str, $matches);
			return utf8_strtoupper($matches[1]) . $matches[2];
		break;
	}
}

/**
* Recode a string to UTF-8
*
* If the encoding is not supported, the string is returned as-is
*
* @param	string	$string		Original string
* @param	string	$encoding	Original encoding (lowered)
* @return	string				The string, encoded in UTF-8
*/
function utf8_recode($string, $encoding)
{
	$encoding = strtolower($encoding);

	if ($encoding == 'utf-8' || !is_string($string) || empty($string))
	{
		return $string;
	}

	// we force iso-8859-1 to be cp1252
	if ($encoding == 'iso-8859-1')
	{
		$encoding = 'cp1252';
	}
	// convert iso-8859-8-i to iso-8859-8
	else if ($encoding == 'iso-8859-8-i')
	{
		$encoding = 'iso-8859-8';
		$string = hebrev($string);
	}

	// First, try iconv()
	if (function_exists('iconv'))
	{
		$ret = @iconv($encoding, 'utf-8', $string);

		if (!empty($ret))
		{
			return $ret;
		}
	}

	// Try the mb_string extension
	if (function_exists('mb_convert_encoding'))
	{
		// mbstring is nasty on PHP4, we must make *sure* that we send a good encoding
		switch ($encoding)
		{
			case 'iso-8859-1':
			case 'iso-8859-2':
			case 'iso-8859-4':
			case 'iso-8859-7':
			case 'iso-8859-9':
			case 'iso-8859-15':
			case 'windows-1251':
			case 'windows-1252':
			case 'cp1252':
			case 'shift_jis':
			case 'euc-kr':
			case 'big5':
			case 'gb2312':
				$ret = @mb_convert_encoding($string, 'utf-8', $encoding);

				if (!empty($ret))
				{
					return $ret;
				}
		}
	}

	// Try the recode extension
	if (function_exists('recode_string'))
	{
		$ret = @recode_string($encoding . '..utf-8', $string);

		if (!empty($ret))
		{
			return $ret;
		}
	}

	// If nothing works, check if we have a custom transcoder available
	if (!preg_match('#^[a-z0-9_ \\-]+$#', $encoding))
	{
		// Make sure the encoding name is alphanumeric, we don't want it to be abused into loading arbitrary files
		trigger_error('Unknown encoding: ' . $encoding, E_USER_ERROR);
	}

	global $phpbb_root_path, $phpEx;

	// iso-8859-* character encoding
	if (preg_match('/iso[_ -]?8859[_ -]?(\\d+)/', $encoding, $array))
	{
		switch ($array[1])
		{
			case '1':
			case '2':
			case '4':
			case '7':
			case '8':
			case '9':
			case '15':
				if (!function_exists('iso_8859_' . $array[1]))
				{
					if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx))
					{
						trigger_error('Basic reencoder file is missing', E_USER_ERROR);
					}
					include($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx);
				}
				return call_user_func('iso_8859_' . $array[1], $string);
			break;

			default:
				trigger_error('Unknown encoding: ' . $encoding, E_USER_ERROR);
			break;
		}
	}

	// CP/WIN character encoding
	if (preg_match('/(?:cp|windows)[_\- ]?(\\d+)/', $encoding, $array))
	{
		switch ($array[1])
		{
			case '932':
			break;
			case '1250':
			case '1251':
			case '1252':
			case '1254':
			case '1255':
			case '1256':
			case '1257':
			case '874':
				if (!function_exists('cp' . $array[1]))
				{
					if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx))
					{
						trigger_error('Basic reencoder file is missing', E_USER_ERROR);
					}
					include($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx);
				}
				return call_user_func('cp' . $array[1], $string);
			break;

			default:
				trigger_error('Unknown encoding: ' . $encoding, E_USER_ERROR);
			break;
		}
	}

	// TIS-620
	if (preg_match('/tis[_ -]?620/', $encoding))
	{
		if (!function_exists('tis_620'))
		{
			if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx))
			{
				trigger_error('Basic reencoder file is missing', E_USER_ERROR);
			}
			include($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx);
		}
		return tis_620($string);
	}

	// SJIS
	if (preg_match('/sjis(?:[_ -]?win)?|(?:cp|ibm)[_ -]?932|shift[_ -]?jis/', $encoding))
	{
		if (!function_exists('sjis'))
		{
			if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx))
			{
				trigger_error('CJK reencoder file is missing', E_USER_ERROR);
			}
			include($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx);
		}
		return sjis($string);
	}

	// EUC_KR
	if (preg_match('/euc[_ -]?kr/', $encoding))
	{
		if (!function_exists('euc_kr'))
		{
			if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx))
			{
				trigger_error('CJK reencoder file is missing', E_USER_ERROR);
			}
			include($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx);
		}
		return euc_kr($string);
	}

	// BIG-5
	if (preg_match('/big[_ -]?5/', $encoding))
	{
		if (!function_exists('big5'))
		{
			if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx))
			{
				trigger_error('CJK reencoder file is missing', E_USER_ERROR);
			}
			include($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx);
		}
		return big5($string);
	}

	// GB2312
	if (preg_match('/gb[_ -]?2312/', $encoding))
	{
		if (!function_exists('gb2312'))
		{
			if (!file_exists($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx))
			{
				trigger_error('CJK reencoder file is missing', E_USER_ERROR);
			}
			include($phpbb_root_path . 'includes/utf/data/recode_cjk.' . $phpEx);
		}
		return gb2312($string);
	}

	// Trigger an error?! Fow now just give bad data :-(
	trigger_error('Unknown encoding: ' . $encoding, E_USER_ERROR);
	//return $string; // use utf_normalizer::cleanup() ?
}

/**
* Replace all UTF-8 chars that are not in ASCII with their NCR
*
* @param	string	$text		UTF-8 string in NFC
* @return	string				ASCII string using NCRs for non-ASCII chars
*/
function utf8_encode_ncr($text)
{
	return preg_replace_callback('#[\\xC2-\\xF4][\\x80-\\xBF]{1,3}#', 'utf8_encode_ncr_callback', $text);
}

/**
* Callback used in encode_ncr()
*
* Takes a UTF-8 char and replaces it with its NCR. Attention, $m is an array
*
* @param	array	$m			0-based numerically indexed array passed by preg_replace_callback()
* @return	string				A HTML NCR if the character is valid, or the original string otherwise
*/
function utf8_encode_ncr_callback($m)
{
	return '&#' . utf8_ord($m[0]) . ';';
}

/**
* Converts a UTF-8 char to an NCR
*
* @param string $chr UTF-8 char
* @return integer UNICODE code point
*/
function utf8_ord($chr)
{
	switch (strlen($chr))
	{
		case 1:
			return ord($chr);
		break;

		case 2:
			return ((ord($chr[0]) & 0x1F) << 6) | (ord($chr[1]) & 0x3F);
		break;

		case 3:
			return ((ord($chr[0]) & 0x0F) << 12) | ((ord($chr[1]) & 0x3F) << 6) | (ord($chr[2]) & 0x3F);
		break;

		case 4:
			return ((ord($chr[0]) & 0x07) << 18) | ((ord($chr[1]) & 0x3F) << 12) | ((ord($chr[2]) & 0x3F) << 6) | (ord($chr[3]) & 0x3F);
		break;

		default:
			return $chr;
	}
}

/**
* Converts an NCR to a UTF-8 char
*
* @param	int		$cp	UNICODE code point
* @return	string		UTF-8 char
*/
function utf8_chr($cp)
{
	if ($cp > 0xFFFF)
	{
		return chr(0xF0 | ($cp >> 18)) . chr(0x80 | (($cp >> 12) & 0x3F)) . chr(0x80 | (($cp >> 6) & 0x3F)) . chr(0x80 | ($cp & 0x3F));
	}
	else if ($cp > 0x7FF)
	{
		return chr(0xE0 | ($cp >> 12)) . chr(0x80 | (($cp >> 6) & 0x3F)) . chr(0x80 | ($cp & 0x3F));
	}
	else if ($cp > 0x7F)
	{
		return chr(0xC0 | ($cp >> 6)) . chr(0x80 | ($cp & 0x3F));
	}
	else
	{
		return chr($cp);
	}
}

/**
* Convert Numeric Character References to UTF-8 chars
*
* Notes:
*	- we do not convert NCRs recursively, if you pass &#38;#38; it will return &#38;
*	- we DO NOT check for the existence of the Unicode characters, therefore an entity may be converted to an inexistent codepoint
*
* @param	string	$text		String to convert, encoded in UTF-8 (no normal form required)
* @return	string				UTF-8 string where NCRs have been replaced with the actual chars
*/
function utf8_decode_ncr($text)
{
	return preg_replace_callback('/&#([0-9]{1,6}|x[0-9A-F]{1,5});/i', 'utf8_decode_ncr_callback', $text);
}

/**
* Callback used in decode_ncr()
*
* Takes a NCR (in decimal or hexadecimal) and returns a UTF-8 char. Attention, $m is an array.
* It will ignore most of invalid NCRs, but not all!
*
* @param	array	$m			0-based numerically indexed array passed by preg_replace_callback()
* @return	string				UTF-8 char
*/
function utf8_decode_ncr_callback($m)
{
	$cp = (strncasecmp($m[1], 'x', 1)) ? $m[1] : hexdec(substr($m[1], 1));

	return utf8_chr($cp);
}

/**
* Case folds a unicode string as per Unicode 5.0, section 3.13
*
* @param	string	$text	text to be case folded
* @param	string	$option	determines how we will fold the cases
* @return	string			case folded text
*/
function utf8_case_fold($text, $option = 'full')
{
	static $uniarray = array();
	global $phpbb_root_path, $phpEx;

	// common is always set
	if (!isset($uniarray['c']))
	{
		$uniarray['c'] = include($phpbb_root_path . 'includes/utf/data/case_fold_c.' . $phpEx);
	}

	// only set full if we need to
	if ($option === 'full' && !isset($uniarray['f']))
	{
		$uniarray['f'] = include($phpbb_root_path . 'includes/utf/data/case_fold_f.' . $phpEx);
	}

	// only set simple if we need to
	if ($option !== 'full' && !isset($uniarray['s']))
	{
		$uniarray['s'] = include($phpbb_root_path . 'includes/utf/data/case_fold_s.' . $phpEx);
	}

	// common is always replaced
	$text = strtr($text, $uniarray['c']);

	if ($option === 'full')
	{
		// full replaces a character with multiple characters
		$text = strtr($text, $uniarray['f']);
	}
	else
	{
		// simple replaces a character with another character
		$text = strtr($text, $uniarray['s']);
	}

	return $text;
}

/**
* Takes the input and does a "special" case fold. It does minor normalization
* and returns NFKC compatable text
*
* @param	string	$text	text to be case folded
* @param	string	$option	determines how we will fold the cases
* @return	string			case folded text
*/
function utf8_case_fold_nfkc($text, $option = 'full')
{
	static $fc_nfkc_closure = array(
		"\xCD\xBA"	=> "\x20\xCE\xB9",
		"\xCF\x92"	=> "\xCF\x85",
		"\xCF\x93"	=> "\xCF\x8D",
		"\xCF\x94"	=> "\xCF\x8B",
		"\xCF\xB2"	=> "\xCF\x83",
		"\xCF\xB9"	=> "\xCF\x83",
		"\xE1\xB4\xAC"	=> "\x61",
		"\xE1\xB4\xAD"	=> "\xC3\xA6",
		"\xE1\xB4\xAE"	=> "\x62",
		"\xE1\xB4\xB0"	=> "\x64",
		"\xE1\xB4\xB1"	=> "\x65",
		"\xE1\xB4\xB2"	=> "\xC7\x9D",
		"\xE1\xB4\xB3"	=> "\x67",
		"\xE1\xB4\xB4"	=> "\x68",
		"\xE1\xB4\xB5"	=> "\x69",
		"\xE1\xB4\xB6"	=> "\x6A",
		"\xE1\xB4\xB7"	=> "\x6B",
		"\xE1\xB4\xB8"	=> "\x6C",
		"\xE1\xB4\xB9"	=> "\x6D",
		"\xE1\xB4\xBA"	=> "\x6E",
		"\xE1\xB4\xBC"	=> "\x6F",
		"\xE1\xB4\xBD"	=> "\xC8\xA3",
		"\xE1\xB4\xBE"	=> "\x70",
		"\xE1\xB4\xBF"	=> "\x72",
		"\xE1\xB5\x80"	=> "\x74",
		"\xE1\xB5\x81"	=> "\x75",
		"\xE1\xB5\x82"	=> "\x77",
		"\xE2\x82\xA8"	=> "\x72\x73",
		"\xE2\x84\x82"	=> "\x63",
		"\xE2\x84\x83"	=> "\xC2\xB0\x63",
		"\xE2\x84\x87"	=> "\xC9\x9B",
		"\xE2\x84\x89"	=> "\xC2\xB0\x66",
		"\xE2\x84\x8B"	=> "\x68",
		"\xE2\x84\x8C"	=> "\x68",
		"\xE2\x84\x8D"	=> "\x68",
		"\xE2\x84\x90"	=> "\x69",
		"\xE2\x84\x91"	=> "\x69",
		"\xE2\x84\x92"	=> "\x6C",
		"\xE2\x84\x95"	=> "\x6E",
		"\xE2\x84\x96"	=> "\x6E\x6F",
		"\xE2\x84\x99"	=> "\x70",
		"\xE2\x84\x9A"	=> "\x71",
		"\xE2\x84\x9B"	=> "\x72",
		"\xE2\x84\x9C"	=> "\x72",
		"\xE2\x84\x9D"	=> "\x72",
		"\xE2\x84\xA0"	=> "\x73\x6D",
		"\xE2\x84\xA1"	=> "\x74\x65\x6C",
		"\xE2\x84\xA2"	=> "\x74\x6D",
		"\xE2\x84\xA4"	=> "\x7A",
		"\xE2\x84\xA8"	=> "\x7A",
		"\xE2\x84\xAC"	=> "\x62",
		"\xE2\x84\xAD"	=> "\x63",
		"\xE2\x84\xB0"	=> "\x65",
		"\xE2\x84\xB1"	=> "\x66",
		"\xE2\x84\xB3"	=> "\x6D",
		"\xE2\x84\xBB"	=> "\x66\x61\x78",
		"\xE2\x84\xBE"	=> "\xCE\xB3",
		"\xE2\x84\xBF"	=> "\xCF\x80",
		"\xE2\x85\x85"	=> "\x64",
		"\xE3\x89\x90"	=> "\x70\x74\x65",
		"\xE3\x8B\x8C"	=> "\x68\x67",
		"\xE3\x8B\x8E"	=> "\x65\x76",
		"\xE3\x8B\x8F"	=> "\x6C\x74\x64",
		"\xE3\x8D\xB1"	=> "\x68\x70\x61",
		"\xE3\x8D\xB3"	=> "\x61\x75",
		"\xE3\x8D\xB5"	=> "\x6F\x76",
		"\xE3\x8D\xBA"	=> "\x69\x75",
		"\xE3\x8E\x80"	=> "\x70\x61",
		"\xE3\x8E\x81"	=> "\x6E\x61",
		"\xE3\x8E\x82"	=> "\xCE\xBC\x61",
		"\xE3\x8E\x83"	=> "\x6D\x61",
		"\xE3\x8E\x84"	=> "\x6B\x61",
		"\xE3\x8E\x85"	=> "\x6B\x62",
		"\xE3\x8E\x86"	=> "\x6D\x62",
		"\xE3\x8E\x87"	=> "\x67\x62",
		"\xE3\x8E\x8A"	=> "\x70\x66",
		"\xE3\x8E\x8B"	=> "\x6E\x66",
		"\xE3\x8E\x8C"	=> "\xCE\xBC\x66",
		"\xE3\x8E\x90"	=> "\x68\x7A",
		"\xE3\x8E\x91"	=> "\x6B\x68\x7A",
		"\xE3\x8E\x92"	=> "\x6D\x68\x7A",
		"\xE3\x8E\x93"	=> "\x67\x68\x7A",
		"\xE3\x8E\x94"	=> "\x74\x68\x7A",
		"\xE3\x8E\xA9"	=> "\x70\x61",
		"\xE3\x8E\xAA"	=> "\x6B\x70\x61",
		"\xE3\x8E\xAB"	=> "\x6D\x70\x61",
		"\xE3\x8E\xAC"	=> "\x67\x70\x61",
		"\xE3\x8E\xB4"	=> "\x70\x76",
		"\xE3\x8E\xB5"	=> "\x6E\x76",
		"\xE3\x8E\xB6"	=> "\xCE\xBC\x76",
		"\xE3\x8E\xB7"	=> "\x6D\x76",
		"\xE3\x8E\xB8"	=> "\x6B\x76",
		"\xE3\x8E\xB9"	=> "\x6D\x76",
		"\xE3\x8E\xBA"	=> "\x70\x77",
		"\xE3\x8E\xBB"	=> "\x6E\x77",
		"\xE3\x8E\xBC"	=> "\xCE\xBC\x77",
		"\xE3\x8E\xBD"	=> "\x6D\x77",
		"\xE3\x8E\xBE"	=> "\x6B\x77",
		"\xE3\x8E\xBF"	=> "\x6D\x77",
		"\xE3\x8F\x80"	=> "\x6B\xCF\x89",
		"\xE3\x8F\x81"	=> "\x6D\xCF\x89",
		"\xE3\x8F\x83"	=> "\x62\x71",
		"\xE3\x8F\x86"	=> "\x63\xE2\x88\x95\x6B\x67",
		"\xE3\x8F\x87"	=> "\x63\x6F\x2E",
		"\xE3\x8F\x88"	=> "\x64\x62",
		"\xE3\x8F\x89"	=> "\x67\x79",
		"\xE3\x8F\x8B"	=> "\x68\x70",
		"\xE3\x8F\x8D"	=> "\x6B\x6B",
		"\xE3\x8F\x8E"	=> "\x6B\x6D",
		"\xE3\x8F\x97"	=> "\x70\x68",
		"\xE3\x8F\x99"	=> "\x70\x70\x6D",
		"\xE3\x8F\x9A"	=> "\x70\x72",
		"\xE3\x8F\x9C"	=> "\x73\x76",
		"\xE3\x8F\x9D"	=> "\x77\x62",
		"\xE3\x8F\x9E"	=> "\x76\xE2\x88\x95\x6D",
		"\xE3\x8F\x9F"	=> "\x61\xE2\x88\x95\x6D",
		"\xF0\x9D\x90\x80"	=> "\x61",
		"\xF0\x9D\x90\x81"	=> "\x62",
		"\xF0\x9D\x90\x82"	=> "\x63",
		"\xF0\x9D\x90\x83"	=> "\x64",
		"\xF0\x9D\x90\x84"	=> "\x65",
		"\xF0\x9D\x90\x85"	=> "\x66",
		"\xF0\x9D\x90\x86"	=> "\x67",
		"\xF0\x9D\x90\x87"	=> "\x68",
		"\xF0\x9D\x90\x88"	=> "\x69",
		"\xF0\x9D\x90\x89"	=> "\x6A",
		"\xF0\x9D\x90\x8A"	=> "\x6B",
		"\xF0\x9D\x90\x8B"	=> "\x6C",
		"\xF0\x9D\x90\x8C"	=> "\x6D",
		"\xF0\x9D\x90\x8D"	=> "\x6E",
		"\xF0\x9D\x90\x8E"	=> "\x6F",
		"\xF0\x9D\x90\x8F"	=> "\x70",
		"\xF0\x9D\x90\x90"	=> "\x71",
		"\xF0\x9D\x90\x91"	=> "\x72",
		"\xF0\x9D\x90\x92"	=> "\x73",
		"\xF0\x9D\x90\x93"	=> "\x74",
		"\xF0\x9D\x90\x94"	=> "\x75",
		"\xF0\x9D\x90\x95"	=> "\x76",
		"\xF0\x9D\x90\x96"	=> "\x77",
		"\xF0\x9D\x90\x97"	=> "\x78",
		"\xF0\x9D\x90\x98"	=> "\x79",
		"\xF0\x9D\x90\x99"	=> "\x7A",
		"\xF0\x9D\x90\xB4"	=> "\x61",
		"\xF0\x9D\x90\xB5"	=> "\x62",
		"\xF0\x9D\x90\xB6"	=> "\x63",
		"\xF0\x9D\x90\xB7"	=> "\x64",
		"\xF0\x9D\x90\xB8"	=> "\x65",
		"\xF0\x9D\x90\xB9"	=> "\x66",
		"\xF0\x9D\x90\xBA"	=> "\x67",
		"\xF0\x9D\x90\xBB"	=> "\x68",
		"\xF0\x9D\x90\xBC"	=> "\x69",
		"\xF0\x9D\x90\xBD"	=> "\x6A",
		"\xF0\x9D\x90\xBE"	=> "\x6B",
		"\xF0\x9D\x90\xBF"	=> "\x6C",
		"\xF0\x9D\x91\x80"	=> "\x6D",
		"\xF0\x9D\x91\x81"	=> "\x6E",
		"\xF0\x9D\x91\x82"	=> "\x6F",
		"\xF0\x9D\x91\x83"	=> "\x70",
		"\xF0\x9D\x91\x84"	=> "\x71",
		"\xF0\x9D\x91\x85"	=> "\x72",
		"\xF0\x9D\x91\x86"	=> "\x73",
		"\xF0\x9D\x91\x87"	=> "\x74",
		"\xF0\x9D\x91\x88"	=> "\x75",
		"\xF0\x9D\x91\x89"	=> "\x76",
		"\xF0\x9D\x91\x8A"	=> "\x77",
		"\xF0\x9D\x91\x8B"	=> "\x78",
		"\xF0\x9D\x91\x8C"	=> "\x79",
		"\xF0\x9D\x91\x8D"	=> "\x7A",
		"\xF0\x9D\x91\xA8"	=> "\x61",
		"\xF0\x9D\x91\xA9"	=> "\x62",
		"\xF0\x9D\x91\xAA"	=> "\x63",
		"\xF0\x9D\x91\xAB"	=> "\x64",
		"\xF0\x9D\x91\xAC"	=> "\x65",
		"\xF0\x9D\x91\xAD"	=> "\x66",
		"\xF0\x9D\x91\xAE"	=> "\x67",
		"\xF0\x9D\x91\xAF"	=> "\x68",
		"\xF0\x9D\x91\xB0"	=> "\x69",
		"\xF0\x9D\x91\xB1"	=> "\x6A",
		"\xF0\x9D\x91\xB2"	=> "\x6B",
		"\xF0\x9D\x91\xB3"	=> "\x6C",
		"\xF0\x9D\x91\xB4"	=> "\x6D",
		"\xF0\x9D\x91\xB5"	=> "\x6E",
		"\xF0\x9D\x91\xB6"	=> "\x6F",
		"\xF0\x9D\x91\xB7"	=> "\x70",
		"\xF0\x9D\x91\xB8"	=> "\x71",
		"\xF0\x9D\x91\xB9"	=> "\x72",
		"\xF0\x9D\x91\xBA"	=> "\x73",
		"\xF0\x9D\x91\xBB"	=> "\x74",
		"\xF0\x9D\x91\xBC"	=> "\x75",
		"\xF0\x9D\x91\xBD"	=> "\x76",
		"\xF0\x9D\x91\xBE"	=> "\x77",
		"\xF0\x9D\x91\xBF"	=> "\x78",
		"\xF0\x9D\x92\x80"	=> "\x79",
		"\xF0\x9D\x92\x81"	=> "\x7A",
		"\xF0\x9D\x92\x9C"	=> "\x61",
		"\xF0\x9D\x92\x9E"	=> "\x63",
		"\xF0\x9D\x92\x9F"	=> "\x64",
		"\xF0\x9D\x92\xA2"	=> "\x67",
		"\xF0\x9D\x92\xA5"	=> "\x6A",
		"\xF0\x9D\x92\xA6"	=> "\x6B",
		"\xF0\x9D\x92\xA9"	=> "\x6E",
		"\xF0\x9D\x92\xAA"	=> "\x6F",
		"\xF0\x9D\x92\xAB"	=> "\x70",
		"\xF0\x9D\x92\xAC"	=> "\x71",
		"\xF0\x9D\x92\xAE"	=> "\x73",
		"\xF0\x9D\x92\xAF"	=> "\x74",
		"\xF0\x9D\x92\xB0"	=> "\x75",
		"\xF0\x9D\x92\xB1"	=> "\x76",
		"\xF0\x9D\x92\xB2"	=> "\x77",
		"\xF0\x9D\x92\xB3"	=> "\x78",
		"\xF0\x9D\x92\xB4"	=> "\x79",
		"\xF0\x9D\x92\xB5"	=> "\x7A",
		"\xF0\x9D\x93\x90"	=> "\x61",
		"\xF0\x9D\x93\x91"	=> "\x62",
		"\xF0\x9D\x93\x92"	=> "\x63",
		"\xF0\x9D\x93\x93"	=> "\x64",
		"\xF0\x9D\x93\x94"	=> "\x65",
		"\xF0\x9D\x93\x95"	=> "\x66",
		"\xF0\x9D\x93\x96"	=> "\x67",
		"\xF0\x9D\x93\x97"	=> "\x68",
		"\xF0\x9D\x93\x98"	=> "\x69",
		"\xF0\x9D\x93\x99"	=> "\x6A",
		"\xF0\x9D\x93\x9A"	=> "\x6B",
		"\xF0\x9D\x93\x9B"	=> "\x6C",
		"\xF0\x9D\x93\x9C"	=> "\x6D",
		"\xF0\x9D\x93\x9D"	=> "\x6E",
		"\xF0\x9D\x93\x9E"	=> "\x6F",
		"\xF0\x9D\x93\x9F"	=> "\x70",
		"\xF0\x9D\x93\xA0"	=> "\x71",
		"\xF0\x9D\x93\xA1"	=> "\x72",
		"\xF0\x9D\x93\xA2"	=> "\x73",
		"\xF0\x9D\x93\xA3"	=> "\x74",
		"\xF0\x9D\x93\xA4"	=> "\x75",
		"\xF0\x9D\x93\xA5"	=> "\x76",
		"\xF0\x9D\x93\xA6"	=> "\x77",
		"\xF0\x9D\x93\xA7"	=> "\x78",
		"\xF0\x9D\x93\xA8"	=> "\x79",
		"\xF0\x9D\x93\xA9"	=> "\x7A",
		"\xF0\x9D\x94\x84"	=> "\x61",
		"\xF0\x9D\x94\x85"	=> "\x62",
		"\xF0\x9D\x94\x87"	=> "\x64",
		"\xF0\x9D\x94\x88"	=> "\x65",
		"\xF0\x9D\x94\x89"	=> "\x66",
		"\xF0\x9D\x94\x8A"	=> "\x67",
		"\xF0\x9D\x94\x8D"	=> "\x6A",
		"\xF0\x9D\x94\x8E"	=> "\x6B",
		"\xF0\x9D\x94\x8F"	=> "\x6C",
		"\xF0\x9D\x94\x90"	=> "\x6D",
		"\xF0\x9D\x94\x91"	=> "\x6E",
		"\xF0\x9D\x94\x92"	=> "\x6F",
		"\xF0\x9D\x94\x93"	=> "\x70",
		"\xF0\x9D\x94\x94"	=> "\x71",
		"\xF0\x9D\x94\x96"	=> "\x73",
		"\xF0\x9D\x94\x97"	=> "\x74",
		"\xF0\x9D\x94\x98"	=> "\x75",
		"\xF0\x9D\x94\x99"	=> "\x76",
		"\xF0\x9D\x94\x9A"	=> "\x77",
		"\xF0\x9D\x94\x9B"	=> "\x78",
		"\xF0\x9D\x94\x9C"	=> "\x79",
		"\xF0\x9D\x94\xB8"	=> "\x61",
		"\xF0\x9D\x94\xB9"	=> "\x62",
		"\xF0\x9D\x94\xBB"	=> "\x64",
		"\xF0\x9D\x94\xBC"	=> "\x65",
		"\xF0\x9D\x94\xBD"	=> "\x66",
		"\xF0\x9D\x94\xBE"	=> "\x67",
		"\xF0\x9D\x95\x80"	=> "\x69",
		"\xF0\x9D\x95\x81"	=> "\x6A",
		"\xF0\x9D\x95\x82"	=> "\x6B",
		"\xF0\x9D\x95\x83"	=> "\x6C",
		"\xF0\x9D\x95\x84"	=> "\x6D",
		"\xF0\x9D\x95\x86"	=> "\x6F",
		"\xF0\x9D\x95\x8A"	=> "\x73",
		"\xF0\x9D\x95\x8B"	=> "\x74",
		"\xF0\x9D\x95\x8C"	=> "\x75",
		"\xF0\x9D\x95\x8D"	=> "\x76",
		"\xF0\x9D\x95\x8E"	=> "\x77",
		"\xF0\x9D\x95\x8F"	=> "\x78",
		"\xF0\x9D\x95\x90"	=> "\x79",
		"\xF0\x9D\x95\xAC"	=> "\x61",
		"\xF0\x9D\x95\xAD"	=> "\x62",
		"\xF0\x9D\x95\xAE"	=> "\x63",
		"\xF0\x9D\x95\xAF"	=> "\x64",
		"\xF0\x9D\x95\xB0"	=> "\x65",
		"\xF0\x9D\x95\xB1"	=> "\x66",
		"\xF0\x9D\x95\xB2"	=> "\x67",
		"\xF0\x9D\x95\xB3"	=> "\x68",
		"\xF0\x9D\x95\xB4"	=> "\x69",
		"\xF0\x9D\x95\xB5"	=> "\x6A",
		"\xF0\x9D\x95\xB6"	=> "\x6B",
		"\xF0\x9D\x95\xB7"	=> "\x6C",
		"\xF0\x9D\x95\xB8"	=> "\x6D",
		"\xF0\x9D\x95\xB9"	=> "\x6E",
		"\xF0\x9D\x95\xBA"	=> "\x6F",
		"\xF0\x9D\x95\xBB"	=> "\x70",
		"\xF0\x9D\x95\xBC"	=> "\x71",
		"\xF0\x9D\x95\xBD"	=> "\x72",
		"\xF0\x9D\x95\xBE"	=> "\x73",
		"\xF0\x9D\x95\xBF"	=> "\x74",
		"\xF0\x9D\x96\x80"	=> "\x75",
		"\xF0\x9D\x96\x81"	=> "\x76",
		"\xF0\x9D\x96\x82"	=> "\x77",
		"\xF0\x9D\x96\x83"	=> "\x78",
		"\xF0\x9D\x96\x84"	=> "\x79",
		"\xF0\x9D\x96\x85"	=> "\x7A",
		"\xF0\x9D\x96\xA0"	=> "\x61",
		"\xF0\x9D\x96\xA1"	=> "\x62",
		"\xF0\x9D\x96\xA2"	=> "\x63",
		"\xF0\x9D\x96\xA3"	=> "\x64",
		"\xF0\x9D\x96\xA4"	=> "\x65",
		"\xF0\x9D\x96\xA5"	=> "\x66",
		"\xF0\x9D\x96\xA6"	=> "\x67",
		"\xF0\x9D\x96\xA7"	=> "\x68",
		"\xF0\x9D\x96\xA8"	=> "\x69",
		"\xF0\x9D\x96\xA9"	=> "\x6A",
		"\xF0\x9D\x96\xAA"	=> "\x6B",
		"\xF0\x9D\x96\xAB"	=> "\x6C",
		"\xF0\x9D\x96\xAC"	=> "\x6D",
		"\xF0\x9D\x96\xAD"	=> "\x6E",
		"\xF0\x9D\x96\xAE"	=> "\x6F",
		"\xF0\x9D\x96\xAF"	=> "\x70",
		"\xF0\x9D\x96\xB0"	=> "\x71",
		"\xF0\x9D\x96\xB1"	=> "\x72",
		"\xF0\x9D\x96\xB2"	=> "\x73",
		"\xF0\x9D\x96\xB3"	=> "\x74",
		"\xF0\x9D\x96\xB4"	=> "\x75",
		"\xF0\x9D\x96\xB5"	=> "\x76",
		"\xF0\x9D\x96\xB6"	=> "\x77",
		"\xF0\x9D\x96\xB7"	=> "\x78",
		"\xF0\x9D\x96\xB8"	=> "\x79",
		"\xF0\x9D\x96\xB9"	=> "\x7A",
		"\xF0\x9D\x97\x94"	=> "\x61",
		"\xF0\x9D\x97\x95"	=> "\x62",
		"\xF0\x9D\x97\x96"	=> "\x63",
		"\xF0\x9D\x97\x97"	=> "\x64",
		"\xF0\x9D\x97\x98"	=> "\x65",
		"\xF0\x9D\x97\x99"	=> "\x66",
		"\xF0\x9D\x97\x9A"	=> "\x67",
		"\xF0\x9D\x97\x9B"	=> "\x68",
		"\xF0\x9D\x97\x9C"	=> "\x69",
		"\xF0\x9D\x97\x9D"	=> "\x6A",
		"\xF0\x9D\x97\x9E"	=> "\x6B",
		"\xF0\x9D\x97\x9F"	=> "\x6C",
		"\xF0\x9D\x97\xA0"	=> "\x6D",
		"\xF0\x9D\x97\xA1"	=> "\x6E",
		"\xF0\x9D\x97\xA2"	=> "\x6F",
		"\xF0\x9D\x97\xA3"	=> "\x70",
		"\xF0\x9D\x97\xA4"	=> "\x71",
		"\xF0\x9D\x97\xA5"	=> "\x72",
		"\xF0\x9D\x97\xA6"	=> "\x73",
		"\xF0\x9D\x97\xA7"	=> "\x74",
		"\xF0\x9D\x97\xA8"	=> "\x75",
		"\xF0\x9D\x97\xA9"	=> "\x76",
		"\xF0\x9D\x97\xAA"	=> "\x77",
		"\xF0\x9D\x97\xAB"	=> "\x78",
		"\xF0\x9D\x97\xAC"	=> "\x79",
		"\xF0\x9D\x97\xAD"	=> "\x7A",
		"\xF0\x9D\x98\x88"	=> "\x61",
		"\xF0\x9D\x98\x89"	=> "\x62",
		"\xF0\x9D\x98\x8A"	=> "\x63",
		"\xF0\x9D\x98\x8B"	=> "\x64",
		"\xF0\x9D\x98\x8C"	=> "\x65",
		"\xF0\x9D\x98\x8D"	=> "\x66",
		"\xF0\x9D\x98\x8E"	=> "\x67",
		"\xF0\x9D\x98\x8F"	=> "\x68",
		"\xF0\x9D\x98\x90"	=> "\x69",
		"\xF0\x9D\x98\x91"	=> "\x6A",
		"\xF0\x9D\x98\x92"	=> "\x6B",
		"\xF0\x9D\x98\x93"	=> "\x6C",
		"\xF0\x9D\x98\x94"	=> "\x6D",
		"\xF0\x9D\x98\x95"	=> "\x6E",
		"\xF0\x9D\x98\x96"	=> "\x6F",
		"\xF0\x9D\x98\x97"	=> "\x70",
		"\xF0\x9D\x98\x98"	=> "\x71",
		"\xF0\x9D\x98\x99"	=> "\x72",
		"\xF0\x9D\x98\x9A"	=> "\x73",
		"\xF0\x9D\x98\x9B"	=> "\x74",
		"\xF0\x9D\x98\x9C"	=> "\x75",
		"\xF0\x9D\x98\x9D"	=> "\x76",
		"\xF0\x9D\x98\x9E"	=> "\x77",
		"\xF0\x9D\x98\x9F"	=> "\x78",
		"\xF0\x9D\x98\xA0"	=> "\x79",
		"\xF0\x9D\x98\xA1"	=> "\x7A",
		"\xF0\x9D\x98\xBC"	=> "\x61",
		"\xF0\x9D\x98\xBD"	=> "\x62",
		"\xF0\x9D\x98\xBE"	=> "\x63",
		"\xF0\x9D\x98\xBF"	=> "\x64",
		"\xF0\x9D\x99\x80"	=> "\x65",
		"\xF0\x9D\x99\x81"	=> "\x66",
		"\xF0\x9D\x99\x82"	=> "\x67",
		"\xF0\x9D\x99\x83"	=> "\x68",
		"\xF0\x9D\x99\x84"	=> "\x69",
		"\xF0\x9D\x99\x85"	=> "\x6A",
		"\xF0\x9D\x99\x86"	=> "\x6B",
		"\xF0\x9D\x99\x87"	=> "\x6C",
		"\xF0\x9D\x99\x88"	=> "\x6D",
		"\xF0\x9D\x99\x89"	=> "\x6E",
		"\xF0\x9D\x99\x8A"	=> "\x6F",
		"\xF0\x9D\x99\x8B"	=> "\x70",
		"\xF0\x9D\x99\x8C"	=> "\x71",
		"\xF0\x9D\x99\x8D"	=> "\x72",
		"\xF0\x9D\x99\x8E"	=> "\x73",
		"\xF0\x9D\x99\x8F"	=> "\x74",
		"\xF0\x9D\x99\x90"	=> "\x75",
		"\xF0\x9D\x99\x91"	=> "\x76",
		"\xF0\x9D\x99\x92"	=> "\x77",
		"\xF0\x9D\x99\x93"	=> "\x78",
		"\xF0\x9D\x99\x94"	=> "\x79",
		"\xF0\x9D\x99\x95"	=> "\x7A",
		"\xF0\x9D\x99\xB0"	=> "\x61",
		"\xF0\x9D\x99\xB1"	=> "\x62",
		"\xF0\x9D\x99\xB2"	=> "\x63",
		"\xF0\x9D\x99\xB3"	=> "\x64",
		"\xF0\x9D\x99\xB4"	=> "\x65",
		"\xF0\x9D\x99\xB5"	=> "\x66",
		"\xF0\x9D\x99\xB6"	=> "\x67",
		"\xF0\x9D\x99\xB7"	=> "\x68",
		"\xF0\x9D\x99\xB8"	=> "\x69",
		"\xF0\x9D\x99\xB9"	=> "\x6A",
		"\xF0\x9D\x99\xBA"	=> "\x6B",
		"\xF0\x9D\x99\xBB"	=> "\x6C",
		"\xF0\x9D\x99\xBC"	=> "\x6D",
		"\xF0\x9D\x99\xBD"	=> "\x6E",
		"\xF0\x9D\x99\xBE"	=> "\x6F",
		"\xF0\x9D\x99\xBF"	=> "\x70",
		"\xF0\x9D\x9A\x80"	=> "\x71",
		"\xF0\x9D\x9A\x81"	=> "\x72",
		"\xF0\x9D\x9A\x82"	=> "\x73",
		"\xF0\x9D\x9A\x83"	=> "\x74",
		"\xF0\x9D\x9A\x84"	=> "\x75",
		"\xF0\x9D\x9A\x85"	=> "\x76",
		"\xF0\x9D\x9A\x86"	=> "\x77",
		"\xF0\x9D\x9A\x87"	=> "\x78",
		"\xF0\x9D\x9A\x88"	=> "\x79",
		"\xF0\x9D\x9A\x89"	=> "\x7A",
		"\xF0\x9D\x9A\xA8"	=> "\xCE\xB1",
		"\xF0\x9D\x9A\xA9"	=> "\xCE\xB2",
		"\xF0\x9D\x9A\xAA"	=> "\xCE\xB3",
		"\xF0\x9D\x9A\xAB"	=> "\xCE\xB4",
		"\xF0\x9D\x9A\xAC"	=> "\xCE\xB5",
		"\xF0\x9D\x9A\xAD"	=> "\xCE\xB6",
		"\xF0\x9D\x9A\xAE"	=> "\xCE\xB7",
		"\xF0\x9D\x9A\xAF"	=> "\xCE\xB8",
		"\xF0\x9D\x9A\xB0"	=> "\xCE\xB9",
		"\xF0\x9D\x9A\xB1"	=> "\xCE\xBA",
		"\xF0\x9D\x9A\xB2"	=> "\xCE\xBB",
		"\xF0\x9D\x9A\xB3"	=> "\xCE\xBC",
		"\xF0\x9D\x9A\xB4"	=> "\xCE\xBD",
		"\xF0\x9D\x9A\xB5"	=> "\xCE\xBE",
		"\xF0\x9D\x9A\xB6"	=> "\xCE\xBF",
		"\xF0\x9D\x9A\xB7"	=> "\xCF\x80",
		"\xF0\x9D\x9A\xB8"	=> "\xCF\x81",
		"\xF0\x9D\x9A\xB9"	=> "\xCE\xB8",
		"\xF0\x9D\x9A\xBA"	=> "\xCF\x83",
		"\xF0\x9D\x9A\xBB"	=> "\xCF\x84",
		"\xF0\x9D\x9A\xBC"	=> "\xCF\x85",
		"\xF0\x9D\x9A\xBD"	=> "\xCF\x86",
		"\xF0\x9D\x9A\xBE"	=> "\xCF\x87",
		"\xF0\x9D\x9A\xBF"	=> "\xCF\x88",
		"\xF0\x9D\x9B\x80"	=> "\xCF\x89",
		"\xF0\x9D\x9B\x93"	=> "\xCF\x83",
		"\xF0\x9D\x9B\xA2"	=> "\xCE\xB1",
		"\xF0\x9D\x9B\xA3"	=> "\xCE\xB2",
		"\xF0\x9D\x9B\xA4"	=> "\xCE\xB3",
		"\xF0\x9D\x9B\xA5"	=> "\xCE\xB4",
		"\xF0\x9D\x9B\xA6"	=> "\xCE\xB5",
		"\xF0\x9D\x9B\xA7"	=> "\xCE\xB6",
		"\xF0\x9D\x9B\xA8"	=> "\xCE\xB7",
		"\xF0\x9D\x9B\xA9"	=> "\xCE\xB8",
		"\xF0\x9D\x9B\xAA"	=> "\xCE\xB9",
		"\xF0\x9D\x9B\xAB"	=> "\xCE\xBA",
		"\xF0\x9D\x9B\xAC"	=> "\xCE\xBB",
		"\xF0\x9D\x9B\xAD"	=> "\xCE\xBC",
		"\xF0\x9D\x9B\xAE"	=> "\xCE\xBD",
		"\xF0\x9D\x9B\xAF"	=> "\xCE\xBE",
		"\xF0\x9D\x9B\xB0"	=> "\xCE\xBF",
		"\xF0\x9D\x9B\xB1"	=> "\xCF\x80",
		"\xF0\x9D\x9B\xB2"	=> "\xCF\x81",
		"\xF0\x9D\x9B\xB3"	=> "\xCE\xB8",
		"\xF0\x9D\x9B\xB4"	=> "\xCF\x83",
		"\xF0\x9D\x9B\xB5"	=> "\xCF\x84",
		"\xF0\x9D\x9B\xB6"	=> "\xCF\x85",
		"\xF0\x9D\x9B\xB7"	=> "\xCF\x86",
		"\xF0\x9D\x9B\xB8"	=> "\xCF\x87",
		"\xF0\x9D\x9B\xB9"	=> "\xCF\x88",
		"\xF0\x9D\x9B\xBA"	=> "\xCF\x89",
		"\xF0\x9D\x9C\x8D"	=> "\xCF\x83",
		"\xF0\x9D\x9C\x9C"	=> "\xCE\xB1",
		"\xF0\x9D\x9C\x9D"	=> "\xCE\xB2",
		"\xF0\x9D\x9C\x9E"	=> "\xCE\xB3",
		"\xF0\x9D\x9C\x9F"	=> "\xCE\xB4",
		"\xF0\x9D\x9C\xA0"	=> "\xCE\xB5",
		"\xF0\x9D\x9C\xA1"	=> "\xCE\xB6",
		"\xF0\x9D\x9C\xA2"	=> "\xCE\xB7",
		"\xF0\x9D\x9C\xA3"	=> "\xCE\xB8",
		"\xF0\x9D\x9C\xA4"	=> "\xCE\xB9",
		"\xF0\x9D\x9C\xA5"	=> "\xCE\xBA",
		"\xF0\x9D\x9C\xA6"	=> "\xCE\xBB",
		"\xF0\x9D\x9C\xA7"	=> "\xCE\xBC",
		"\xF0\x9D\x9C\xA8"	=> "\xCE\xBD",
		"\xF0\x9D\x9C\xA9"	=> "\xCE\xBE",
		"\xF0\x9D\x9C\xAA"	=> "\xCE\xBF",
		"\xF0\x9D\x9C\xAB"	=> "\xCF\x80",
		"\xF0\x9D\x9C\xAC"	=> "\xCF\x81",
		"\xF0\x9D\x9C\xAD"	=> "\xCE\xB8",
		"\xF0\x9D\x9C\xAE"	=> "\xCF\x83",
		"\xF0\x9D\x9C\xAF"	=> "\xCF\x84",
		"\xF0\x9D\x9C\xB0"	=> "\xCF\x85",
		"\xF0\x9D\x9C\xB1"	=> "\xCF\x86",
		"\xF0\x9D\x9C\xB2"	=> "\xCF\x87",
		"\xF0\x9D\x9C\xB3"	=> "\xCF\x88",
		"\xF0\x9D\x9C\xB4"	=> "\xCF\x89",
		"\xF0\x9D\x9D\x87"	=> "\xCF\x83",
		"\xF0\x9D\x9D\x96"	=> "\xCE\xB1",
		"\xF0\x9D\x9D\x97"	=> "\xCE\xB2",
		"\xF0\x9D\x9D\x98"	=> "\xCE\xB3",
		"\xF0\x9D\x9D\x99"	=> "\xCE\xB4",
		"\xF0\x9D\x9D\x9A"	=> "\xCE\xB5",
		"\xF0\x9D\x9D\x9B"	=> "\xCE\xB6",
		"\xF0\x9D\x9D\x9C"	=> "\xCE\xB7",
		"\xF0\x9D\x9D\x9D"	=> "\xCE\xB8",
		"\xF0\x9D\x9D\x9E"	=> "\xCE\xB9",
		"\xF0\x9D\x9D\x9F"	=> "\xCE\xBA",
		"\xF0\x9D\x9D\xA0"	=> "\xCE\xBB",
		"\xF0\x9D\x9D\xA1"	=> "\xCE\xBC",
		"\xF0\x9D\x9D\xA2"	=> "\xCE\xBD",
		"\xF0\x9D\x9D\xA3"	=> "\xCE\xBE",
		"\xF0\x9D\x9D\xA4"	=> "\xCE\xBF",
		"\xF0\x9D\x9D\xA5"	=> "\xCF\x80",
		"\xF0\x9D\x9D\xA6"	=> "\xCF\x81",
		"\xF0\x9D\x9D\xA7"	=> "\xCE\xB8",
		"\xF0\x9D\x9D\xA8"	=> "\xCF\x83",
		"\xF0\x9D\x9D\xA9"	=> "\xCF\x84",
		"\xF0\x9D\x9D\xAA"	=> "\xCF\x85",
		"\xF0\x9D\x9D\xAB"	=> "\xCF\x86",
		"\xF0\x9D\x9D\xAC"	=> "\xCF\x87",
		"\xF0\x9D\x9D\xAD"	=> "\xCF\x88",
		"\xF0\x9D\x9D\xAE"	=> "\xCF\x89",
		"\xF0\x9D\x9E\x81"	=> "\xCF\x83",
		"\xF0\x9D\x9E\x90"	=> "\xCE\xB1",
		"\xF0\x9D\x9E\x91"	=> "\xCE\xB2",
		"\xF0\x9D\x9E\x92"	=> "\xCE\xB3",
		"\xF0\x9D\x9E\x93"	=> "\xCE\xB4",
		"\xF0\x9D\x9E\x94"	=> "\xCE\xB5",
		"\xF0\x9D\x9E\x95"	=> "\xCE\xB6",
		"\xF0\x9D\x9E\x96"	=> "\xCE\xB7",
		"\xF0\x9D\x9E\x97"	=> "\xCE\xB8",
		"\xF0\x9D\x9E\x98"	=> "\xCE\xB9",
		"\xF0\x9D\x9E\x99"	=> "\xCE\xBA",
		"\xF0\x9D\x9E\x9A"	=> "\xCE\xBB",
		"\xF0\x9D\x9E\x9B"	=> "\xCE\xBC",
		"\xF0\x9D\x9E\x9C"	=> "\xCE\xBD",
		"\xF0\x9D\x9E\x9D"	=> "\xCE\xBE",
		"\xF0\x9D\x9E\x9E"	=> "\xCE\xBF",
		"\xF0\x9D\x9E\x9F"	=> "\xCF\x80",
		"\xF0\x9D\x9E\xA0"	=> "\xCF\x81",
		"\xF0\x9D\x9E\xA1"	=> "\xCE\xB8",
		"\xF0\x9D\x9E\xA2"	=> "\xCF\x83",
		"\xF0\x9D\x9E\xA3"	=> "\xCF\x84",
		"\xF0\x9D\x9E\xA4"	=> "\xCF\x85",
		"\xF0\x9D\x9E\xA5"	=> "\xCF\x86",
		"\xF0\x9D\x9E\xA6"	=> "\xCF\x87",
		"\xF0\x9D\x9E\xA7"	=> "\xCF\x88",
		"\xF0\x9D\x9E\xA8"	=> "\xCF\x89",
		"\xF0\x9D\x9E\xBB"	=> "\xCF\x83",
		"\xF0\x9D\x9F\x8A"	=> "\xCF\x9D",
	);
	global $phpbb_root_path, $phpEx;

	// do the case fold
	$text = utf8_case_fold($text, $option);

	if (!class_exists('utf_normalizer'))
	{
		global $phpbb_root_path, $phpEx;
		include($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
	}

	// convert to NFKC
	utf_normalizer::nfkc($text);

	// FC_NFKC_Closure, http://www.unicode.org/Public/5.0.0/ucd/DerivedNormalizationProps.txt
	$text = strtr($text, $fc_nfkc_closure);

	return $text;
}

/**
* Assume the input is NFC:
* Takes the input and does a "special" case fold. It does minor normalization as well.
*
* @param	string	$text	text to be case folded
* @param	string	$option	determines how we will fold the cases
* @return	string			case folded text
*/
function utf8_case_fold_nfc($text, $option = 'full')
{
	static $uniarray = array();
	static $ypogegrammeni = array(
		"\xCD\xBA"		=> "\x20\xCD\x85",
		"\xE1\xBE\x80"	=> "\xE1\xBC\x80\xCD\x85",
		"\xE1\xBE\x81"	=> "\xE1\xBC\x81\xCD\x85",
		"\xE1\xBE\x82"	=> "\xE1\xBC\x82\xCD\x85",
		"\xE1\xBE\x83"	=> "\xE1\xBC\x83\xCD\x85",
		"\xE1\xBE\x84"	=> "\xE1\xBC\x84\xCD\x85",
		"\xE1\xBE\x85"	=> "\xE1\xBC\x85\xCD\x85",
		"\xE1\xBE\x86"	=> "\xE1\xBC\x86\xCD\x85",
		"\xE1\xBE\x87"	=> "\xE1\xBC\x87\xCD\x85",
		"\xE1\xBE\x88"	=> "\xE1\xBC\x88\xCD\x85",
		"\xE1\xBE\x89"	=> "\xE1\xBC\x89\xCD\x85",
		"\xE1\xBE\x8A"	=> "\xE1\xBC\x8A\xCD\x85",
		"\xE1\xBE\x8B"	=> "\xE1\xBC\x8B\xCD\x85",
		"\xE1\xBE\x8C"	=> "\xE1\xBC\x8C\xCD\x85",
		"\xE1\xBE\x8D"	=> "\xE1\xBC\x8D\xCD\x85",
		"\xE1\xBE\x8E"	=> "\xE1\xBC\x8E\xCD\x85",
		"\xE1\xBE\x8F"	=> "\xE1\xBC\x8F\xCD\x85",
		"\xE1\xBE\x90"	=> "\xE1\xBC\xA0\xCD\x85",
		"\xE1\xBE\x91"	=> "\xE1\xBC\xA1\xCD\x85",
		"\xE1\xBE\x92"	=> "\xE1\xBC\xA2\xCD\x85",
		"\xE1\xBE\x93"	=> "\xE1\xBC\xA3\xCD\x85",
		"\xE1\xBE\x94"	=> "\xE1\xBC\xA4\xCD\x85",
		"\xE1\xBE\x95"	=> "\xE1\xBC\xA5\xCD\x85",
		"\xE1\xBE\x96"	=> "\xE1\xBC\xA6\xCD\x85",
		"\xE1\xBE\x97"	=> "\xE1\xBC\xA7\xCD\x85",
		"\xE1\xBE\x98"	=> "\xE1\xBC\xA8\xCD\x85",
		"\xE1\xBE\x99"	=> "\xE1\xBC\xA9\xCD\x85",
		"\xE1\xBE\x9A"	=> "\xE1\xBC\xAA\xCD\x85",
		"\xE1\xBE\x9B"	=> "\xE1\xBC\xAB\xCD\x85",
		"\xE1\xBE\x9C"	=> "\xE1\xBC\xAC\xCD\x85",
		"\xE1\xBE\x9D"	=> "\xE1\xBC\xAD\xCD\x85",
		"\xE1\xBE\x9E"	=> "\xE1\xBC\xAE\xCD\x85",
		"\xE1\xBE\x9F"	=> "\xE1\xBC\xAF\xCD\x85",
		"\xE1\xBE\xA0"	=> "\xE1\xBD\xA0\xCD\x85",
		"\xE1\xBE\xA1"	=> "\xE1\xBD\xA1\xCD\x85",
		"\xE1\xBE\xA2"	=> "\xE1\xBD\xA2\xCD\x85",
		"\xE1\xBE\xA3"	=> "\xE1\xBD\xA3\xCD\x85",
		"\xE1\xBE\xA4"	=> "\xE1\xBD\xA4\xCD\x85",
		"\xE1\xBE\xA5"	=> "\xE1\xBD\xA5\xCD\x85",
		"\xE1\xBE\xA6"	=> "\xE1\xBD\xA6\xCD\x85",
		"\xE1\xBE\xA7"	=> "\xE1\xBD\xA7\xCD\x85",
		"\xE1\xBE\xA8"	=> "\xE1\xBD\xA8\xCD\x85",
		"\xE1\xBE\xA9"	=> "\xE1\xBD\xA9\xCD\x85",
		"\xE1\xBE\xAA"	=> "\xE1\xBD\xAA\xCD\x85",
		"\xE1\xBE\xAB"	=> "\xE1\xBD\xAB\xCD\x85",
		"\xE1\xBE\xAC"	=> "\xE1\xBD\xAC\xCD\x85",
		"\xE1\xBE\xAD"	=> "\xE1\xBD\xAD\xCD\x85",
		"\xE1\xBE\xAE"	=> "\xE1\xBD\xAE\xCD\x85",
		"\xE1\xBE\xAF"	=> "\xE1\xBD\xAF\xCD\x85",
		"\xE1\xBE\xB2"	=> "\xE1\xBD\xB0\xCD\x85",
		"\xE1\xBE\xB3"	=> "\xCE\xB1\xCD\x85",
		"\xE1\xBE\xB4"	=> "\xCE\xAC\xCD\x85",
		"\xE1\xBE\xB7"	=> "\xE1\xBE\xB6\xCD\x85",
		"\xE1\xBE\xBC"	=> "\xCE\x91\xCD\x85",
		"\xE1\xBF\x82"	=> "\xE1\xBD\xB4\xCD\x85",
		"\xE1\xBF\x83"	=> "\xCE\xB7\xCD\x85",
		"\xE1\xBF\x84"	=> "\xCE\xAE\xCD\x85",
		"\xE1\xBF\x87"	=> "\xE1\xBF\x86\xCD\x85",
		"\xE1\xBF\x8C"	=> "\xCE\x97\xCD\x85",
		"\xE1\xBF\xB2"	=> "\xE1\xBD\xBC\xCD\x85",
		"\xE1\xBF\xB3"	=> "\xCF\x89\xCD\x85",
		"\xE1\xBF\xB4"	=> "\xCF\x8E\xCD\x85",
		"\xE1\xBF\xB7"	=> "\xE1\xBF\xB6\xCD\x85",
		"\xE1\xBF\xBC"	=> "\xCE\xA9\xCD\x85",
	);
	global $phpbb_root_path, $phpEx;

	// perform a small trick, avoid further normalization on composed points that contain U+0345 in their decomposition
	$text = strtr($text, $ypogegrammeni);

	// do the case fold
	$text = utf8_case_fold($text, $option);

	return $text;
}

if (extension_loaded('intl'))
{
	/**
	* wrapper around PHP's native normalizer from intl
	* previously a PECL extension, included in the core since PHP 5.3.0
	* http://php.net/manual/en/normalizer.normalize.php
	*
	* @param	mixed	$strings	a string or an array of strings to normalize
	* @return	mixed				the normalized content, preserving array keys if array given.
	*/
	function utf8_normalize_nfc($strings)
	{
		if (empty($strings))
		{
			return $strings;
		}

		if (!is_array($strings))
		{
			if (Normalizer::isNormalized($strings))
			{
				return $strings;
			}
			return (string) Normalizer::normalize($strings);
		}
		else
		{
			foreach ($strings as $key => $string)
			{
				if (is_array($string))
				{
					foreach ($string as $_key => $_string)
					{
						if (Normalizer::isNormalized($strings[$key][$_key]))
						{
							continue;
						}
						$strings[$key][$_key] = (string) Normalizer::normalize($strings[$key][$_key]);
					}
				}
				else
				{
					if (Normalizer::isNormalized($strings[$key]))
					{
						continue;
					}
					$strings[$key] = (string) Normalizer::normalize($strings[$key]);
				}
			}
		}

		return $strings;
	}
}
else
{
	/**
	* A wrapper function for the normalizer which takes care of including the class if
	* required and modifies the passed strings to be in NFC (Normalization Form Composition).
	*
	* @param	mixed	$strings	a string or an array of strings to normalize
	* @return	mixed				the normalized content, preserving array keys if array given.
	*/
	function utf8_normalize_nfc($strings)
	{
		if (empty($strings))
		{
			return $strings;
		}

		if (!class_exists('utf_normalizer'))
		{
			global $phpbb_root_path, $phpEx;
			include($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
		}

		if (!is_array($strings))
		{
			utf_normalizer::nfc($strings);
		}
		else if (is_array($strings))
		{
			foreach ($strings as $key => $string)
			{
				if (is_array($string))
				{
					foreach ($string as $_key => $_string)
					{
						utf_normalizer::nfc($strings[$key][$_key]);
					}
				}
				else
				{
					utf_normalizer::nfc($strings[$key]);
				}
			}
		}

		return $strings;
	}
}

/**
* This function is used to generate a "clean" version of a string.
* Clean means that it is a case insensitive form (case folding) and that it is normalized (NFC).
* Additionally a homographs of one character are transformed into one specific character (preferably ASCII
* if it is an ASCII character).
*
* Please be aware that if you change something within this function or within
* functions used here you need to rebuild/update the username_clean column in the users table. And all other
* columns that store a clean string otherwise you will break this functionality.
*
* @param	string	$text	An unclean string, mabye user input (has to be valid UTF-8!)
* @return	string			Cleaned up version of the input string
*/
function utf8_clean_string($text)
{
	global $phpbb_root_path, $phpEx;

	static $homographs = array();
	if (empty($homographs))
	{
		$homographs = include($phpbb_root_path . 'includes/utf/data/confusables.' . $phpEx);
	}

	$text = utf8_case_fold_nfkc($text);
	$text = strtr($text, $homographs);
	// Other control characters
	$text = preg_replace('#(?:[\x00-\x1F\x7F]+|(?:\xC2[\x80-\x9F])+)#', '', $text);

	// we need to reduce multiple spaces to a single one
	$text = preg_replace('# {2,}#', ' ', $text);

	// we can use trim here as all the other space characters should have been turned
	// into normal ASCII spaces by now
	return trim($text);
}

/**
* A wrapper for htmlspecialchars($value, ENT_COMPAT, 'UTF-8')
*/
function utf8_htmlspecialchars($value)
{
	return htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
}

/**
* Trying to convert returned system message to utf8
*
* PHP assumes such messages are ISO-8859-1 so we'll do that too
* and if it breaks messages we'll blame it on them ;-)
*/
function utf8_convert_message($message)
{
	// First of all check if conversion is neded at all, as there is no point
	// in converting ASCII messages from ISO-8859-1 to UTF-8
	if (!preg_match('/[\x80-\xFF]/', $message))
	{
		return utf8_htmlspecialchars($message);
	}

	// else we need to convert some part of the message
	return utf8_htmlspecialchars(utf8_recode($message, 'ISO-8859-1'));
}

/**
* UTF8-compatible wordwrap replacement
*
* @param	string	$string	The input string
* @param	int		$width	The column width. Defaults to 75.
* @param	string	$break	The line is broken using the optional break parameter. Defaults to '\n'.
* @param	bool	$cut	If the cut is set to TRUE, the string is always wrapped at the specified width. So if you have a word that is larger than the given width, it is broken apart.
*
* @return	string			the given string wrapped at the specified column.
*
*/
function utf8_wordwrap($string, $width = 75, $break = "\n", $cut = false)
{
	// We first need to explode on $break, not destroying existing (intended) breaks
	$lines = explode($break, $string);
	$new_lines = array(0 => '');
	$index = 0;

	foreach ($lines as $line)
	{
		$words = explode(' ', $line);

		for ($i = 0, $size = sizeof($words); $i < $size; $i++)
		{
			$word = $words[$i];

			// If cut is true we need to cut the word if it is > width chars
			if ($cut && utf8_strlen($word) > $width)
			{
				$words[$i] = utf8_substr($word, $width);
				$word = utf8_substr($word, 0, $width);
				$i--;
			}

			if (utf8_strlen($new_lines[$index] . $word) > $width)
			{
				$new_lines[$index] = substr($new_lines[$index], 0, -1);
				$index++;
				$new_lines[$index] = '';
			}

			$new_lines[$index] .= $word . ' ';
		}

		$new_lines[$index] = substr($new_lines[$index], 0, -1);
		$index++;
		$new_lines[$index] = '';
	}

	unset($new_lines[$index]);
	return implode($break, $new_lines);
}

/**
* UTF8-safe basename() function
*
* basename() has some limitations and is dependent on the locale setting
* according to the PHP manual. Therefore we provide our own locale independent
* basename function.
*
* @param string $filename The filename basename() should be applied to
* @return string The basenamed filename
*/
function utf8_basename($filename)
{
	// We always check for forward slash AND backward slash
	// because they could be mixed or "sneaked" in. ;)
	// You know, never trust user input...
	if (strpos($filename, '/') !== false)
	{
		$filename = utf8_substr($filename, utf8_strrpos($filename, '/') + 1);
	}

	if (strpos($filename, '\\') !== false)
	{
		$filename = utf8_substr($filename, utf8_strrpos($filename, '\\') + 1);
	}

	return $filename;
}

/**
* UTF8-safe str_replace() function
*
* @param string $search The value to search for
* @param string $replace The replacement string
* @param string $subject The target string
* @return string The resultant string
*/
function utf8_str_replace($search, $replace, $subject)
{
	if (!is_array($search))
	{
		$search = array($search);
		if (is_array($replace))
		{
			$replace = (string) $replace;
			trigger_error('Array to string conversion', E_USER_NOTICE);
		}
	}

	$length = sizeof($search);

	if (!is_array($replace))
	{
		$replace = array_fill(0, $length, $replace);
	}
	else
	{
		$replace = array_pad($replace, $length, '');
	}

	for ($i = 0; $i < $length; $i++)
	{
		$search_length = utf8_strlen($search[$i]);
		$replace_length = utf8_strlen($replace[$i]);

		$offset = 0;
		while (($start = utf8_strpos($subject, $search[$i], $offset)) !== false)
		{
			$subject = utf8_substr($subject, 0, $start) . $replace[$i] . utf8_substr($subject, $start + $search_length);
			$offset = $start + $replace_length;
		}
	}

	return $subject;
}
#: 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 "Ethernetkaart" #: harddrake/data.pm:410 #, c-format msgid "Modem" msgstr "Modem" #: harddrake/data.pm:420 #, c-format msgid "ADSL adapters" msgstr "ADSL toestelle" #: harddrake/data.pm:432 #, c-format msgid "Memory" msgstr "Geheue" #: harddrake/data.pm:441 #, c-format msgid "Printer" msgstr "Drukker" #. -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 "Stuurstok" #: harddrake/data.pm:474 #, c-format msgid "Keyboard" msgstr "Sleutelbord" #: harddrake/data.pm:488 #, c-format msgid "Tablet and touchscreen" msgstr "" #: harddrake/data.pm:497 #, c-format msgid "Mouse" msgstr "Muis" #: harddrake/data.pm:512 #, c-format msgid "Biometry" msgstr "" #: harddrake/data.pm:520 #, fuzzy, c-format msgid "UPS" msgstr "CUPS" #: harddrake/data.pm:529 #, c-format msgid "Scanner" msgstr "Skandeerder" #: harddrake/data.pm:540 #, c-format msgid "Unknown/Others" msgstr "Onbekend/Ander" #: harddrake/data.pm:570 #, c-format msgid "cpu # " msgstr "cpu # " #: harddrake/sound.pm:270 #, c-format msgid "Please Wait... Applying the configuration" msgstr "Wag asb... Konfigurasie word toegpas" #: harddrake/sound.pm:331 #, c-format msgid "Enable PulseAudio" msgstr "" #: harddrake/sound.pm:336 #, c-format msgid "Use Glitch-Free mode" msgstr "" #: harddrake/sound.pm:342 #, c-format msgid "Reset sound mixer to default values" msgstr "" #: harddrake/sound.pm:347 #, c-format msgid "Troubleshooting" msgstr "Probleemoplossing" #: harddrake/sound.pm:354 #, c-format msgid "No alternative driver" msgstr "Geen alternatiewe drywer" #: harddrake/sound.pm:355 #, c-format msgid "" "There's no known OSS/ALSA alternative driver for your sound card (%s) which " "currently uses \"%s\"" msgstr "" "Daar is geen OSS/ALSA alternatief vir u klankkaart (%s) wat huidiglik \"%s\" " "gebruik" #: harddrake/sound.pm:362 #, c-format msgid "Sound configuration" msgstr "Klankkonfigurasie" #: harddrake/sound.pm:364 #, c-format msgid "" "Here you can select an alternative driver (either OSS or ALSA) for your " "sound card (%s)." msgstr "" "Hier kan u 'n alternatiewe drywer vir u klankkaart kies ( OSS of ALSA)" "klankkaart (%s)." #. -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:369 #, fuzzy, c-format msgid "" "\n" "\n" "Your card currently uses the %s\"%s\" driver (the default driver for your " "card is \"%s\")" msgstr "" "\n" "\n" "U kaart gebruik tans die %s\"%s\" drywer ( die kaart se verstek drywer is " "\"%s\")" #: harddrake/sound.pm:371 #, 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 "" "OSS (Open Sound System) was die eerste klank-API. Dit is onafhanklikvan die " "bedryfstelsel (dus is dit beskikbaar op meeste UNIX(tm) stelselsdit is 'n " "vreeslik basiese API.\n" "Drywers vir OSS is ook vreeslik omslagtig\n" "\n" "ALSA (Advanced Linux Sound Architecture) het 'n modulêre argitektuur wat\n" "'n wye verskeidenheid ISA, USB en PCI kaarte ondersteun.\n" "\n" "Die API is ook heelwat hoër as die van OSS.\n" "\n" "On alsa te gebruik, kan u:\n" "- die ou versoenbare OSS-api gebruik\n" "- die nuwe ALSA-api gebruik. Dit het heelwat gevorderde\n" "glanspunte het, maar moet die ALSA programmateek gebruik\n" #: harddrake/sound.pm:385 harddrake/sound.pm:468 #, c-format msgid "Driver:" msgstr "Drywer:" #: harddrake/sound.pm:399 #, 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 "" "Die ou \"%s\" drywer is op 'n swartlys.\n" "\n" "Dit is geraporteer dat die die kernel 'oops' as dit aflaai.\n" "\n" "Die nuwe \"%s\" drywer sal met die volgende selflaai gebruik word." #: harddrake/sound.pm:407 #, c-format msgid "No open source driver" msgstr "Geen oopbron drywer" #: harddrake/sound.pm:408 #, c-format msgid "" "There's no free driver for your sound card (%s), but there's a proprietary " "driver at \"%s\"." msgstr "" "Daar is geen gratis drywer vir u klankkaart (%s) nie, daar is wel 'n " "gepatenteerde een by \"%s\"." #: harddrake/sound.pm:411 #, c-format msgid "No known driver" msgstr "Geen drywer bekend" #: harddrake/sound.pm:412 #, c-format msgid "There's no known driver for your sound card (%s)" msgstr "" "Daar is geen drywer, sover ons weet, beskikbaar vir klankkaart (%s) nie" #: harddrake/sound.pm:427 #, c-format msgid "Sound troubleshooting" msgstr "Klank foutopsporing" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:430 #, 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 "" "Probeer gerus hierdie metode om u klank aan die gang te kry:\n" "(vanaf die instruksielyn)\n" "\n" "\n" "- \"lspcidrake -v | fgrep -i AUDIO\"sal vir u aandui watter verstek drywer " "u\n" "kaart gebruik\n" "\n" "- \"grep sound-slot /etc/modprobe.conf\" sal aan u vertoon watter drywer\n" "tans gebruik word\n" "\n" "- \"/sbin/lsmod\" sal u toelaat om te sien of die kaart se module (drywer)\n" "reeds gelaai is of nie.\n" "\n" "- \"/sbin/chkconfig --list sound\" en \"/sbin/chkconfig --list alsa\" sal\n" "aandui indien 'sound' en 'alsa' dienste loop in init vlak 3\n" "\n" "- \"aumix -q\" sal vir u aandui of die klank swygend is of nie \n" "\n" "- \"/sbin/fuser -v /dev/dsp\" sal aandui watter program die klankkaart\n" "gebruik.\n" #: harddrake/sound.pm:457 #, c-format msgid "Let me pick any driver" msgstr "Laat ek enige drywer kies" #: harddrake/sound.pm:460 #, c-format msgid "Choosing an arbitrary driver" msgstr "Kies 'n eiemagtige drywer" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:463 #, c-format msgid "" "If you really think that you know which driver is the right one for your " "card\n" "you can pick one from the above list.\n" "\n" "The current driver for your \"%s\" sound card is \"%s\" " msgstr "" "Indien u seker is dat u die regte drywer vir u kaart ken\n" "kies dan dit uit die lys.\n" "\n" "Die \"%s\" klankkaart gebruik tans die \"%s\" drywer " #: harddrake/v4l.pm:12 #, c-format msgid "Auto-detect" msgstr "Gebruik outospeuring" #: harddrake/v4l.pm:97 harddrake/v4l.pm:285 harddrake/v4l.pm:337 #, c-format msgid "Unknown|Generic" msgstr "Onbekend|Generies" #: harddrake/v4l.pm:130 #, c-format msgid "Unknown|CPH05X (bt878) [many vendors]" msgstr "Onbekend|CPH05X (bt878) [baie vervaardigers]" #: harddrake/v4l.pm:131 #, c-format msgid "Unknown|CPH06X (bt878) [many vendors]" msgstr "Onbekend|CPH06X (bt878) [baie vervaardigers]" #: 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 "" "Die GNU/Linux se bttv module outospeur gewoonlik al die TV-kaart se " "parameters korrek.\n" "Indien dit nie gebeur het nie, kan u die korrekte instemmer en kaart tipe " "hier opstel. Kies bloot die parameters wat benodig word." #: harddrake/v4l.pm:478 #, c-format msgid "Card model:" msgstr "Model kaart:" #: harddrake/v4l.pm:479 #, c-format msgid "Tuner type:" msgstr "Tipe instemmer" #: interactive.pm:129 interactive.pm:550 interactive/curses.pm:270 #: interactive/http.pm:103 interactive/http.pm:156 interactive/stdio.pm:39 #: interactive/stdio.pm:148 interactive/stdio.pm:149 mygtk2.pm:846 #: ugtk2.pm:421 ugtk2.pm:519 ugtk2.pm:812 ugtk2.pm:835 #, c-format msgid "Ok" msgstr "OK" #: interactive.pm:229 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:157 #, c-format msgid "Yes" msgstr "Ja" #: interactive.pm:229 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:157 #, c-format msgid "No" msgstr "Nee" #: interactive.pm:263 #, c-format msgid "Choose a file" msgstr "Kies 'n lêer" #: interactive.pm:388 interactive/gtk.pm:453 #, c-format msgid "Add" msgstr "Voeg by" #: interactive.pm:388 interactive/gtk.pm:453 #, c-format msgid "Modify" msgstr "Verander" #: interactive.pm:550 interactive/curses.pm:270 ugtk2.pm:519 #, c-format msgid "Finish" msgstr "Voltooi" #: interactive.pm:551 interactive/curses.pm:267 ugtk2.pm:517 #, c-format msgid "Previous" msgstr "Vorige" #: interactive/curses.pm:576 ugtk2.pm:872 #, fuzzy, c-format msgid "No file chosen" msgstr "bestands-kieser" #: interactive/curses.pm:580 ugtk2.pm:876 #, fuzzy, c-format msgid "You have chosen a directory, not a file" msgstr "Tuisgids nie beskikbaar nie." #: interactive/curses.pm:582 ugtk2.pm:878 #, fuzzy, c-format msgid "No such directory" msgstr "Nie 'n gids nie" #: interactive/curses.pm:582 ugtk2.pm:878 #, c-format msgid "No such file" msgstr "Nee soos lêer" #: interactive/gtk.pm:592 #, 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 "Swak keuse, probeer weer\n" #: interactive/stdio.pm:30 interactive/stdio.pm:155 #, c-format msgid "Your choice? (default %s) " msgstr "U keuse? (verstek %s) " #: interactive/stdio.pm:54 #, c-format msgid "" "Entries you'll have to fill:\n" "%s" msgstr "" "Velde wat u moet invul:\n" "%s" #: interactive/stdio.pm:70 #, c-format msgid "Your choice? (0/1, default `%s') " msgstr "U keuse? (0/1, verstek %s) " #: interactive/stdio.pm:97 #, c-format msgid "Button `%s': %s" msgstr "Knoppie: %s: %s" #: interactive/stdio.pm:98 #, c-format msgid "Do you want to click on this button?" msgstr "Wil u op hierdie knoppie klik?" #: interactive/stdio.pm:110 #, c-format msgid "Your choice? (default `%s'%s) " msgstr "U keuse? (verstek '%s'%s) " #: interactive/stdio.pm:110 #, c-format msgid " enter `void' for void entry" msgstr " noem 'n leë inskrywing 'void'" #: interactive/stdio.pm:128 #, c-format msgid "=> There are many things to choose from (%s).\n" msgstr "=> Daar is heelwat dinge om van te kies (%s).\n" #: 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 "" "Kies asseblief die eerste getal van die 10-reeks wat u wil redigeer,\n" "of gebruik bloot [Enter] om voort te gaan.\n" "U keuse?" #: interactive/stdio.pm:144 #, c-format msgid "" "=> Notice, a label changed:\n" "%s" msgstr "" "=> Aandag, 'n etiket het verander:\n" "%s" #: interactive/stdio.pm:151 #, c-format msgid "Re-submit" msgstr "Dien weer in" #. -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 "Andorra" #: lang.pm:221 timezone.pm:228 #, c-format msgid "United Arab Emirates" msgstr "Verenigde Arabiese Emirate" #: lang.pm:222 #, c-format msgid "Afghanistan" msgstr "Afghanistan" #: lang.pm:223 #, c-format msgid "Antigua and Barbuda" msgstr "Antigua and Barbuda" #: lang.pm:224 #, c-format msgid "Anguilla" msgstr "Anguilla" #: lang.pm:225 #, c-format msgid "Albania" msgstr "Albanië" #: lang.pm:226 #, c-format msgid "Armenia" msgstr "Armenië" #: lang.pm:227 #, c-format msgid "Netherlands Antilles" msgstr "Netherlands Antilles" #: lang.pm:228 #, c-format msgid "Angola" msgstr "Angola" #: lang.pm:229 #, c-format msgid "Antarctica" msgstr "Antartika" #: lang.pm:230 timezone.pm:273 #, c-format msgid "Argentina" msgstr "Argentinië" #: lang.pm:231 #, c-format msgid "American Samoa" msgstr "American Samoa" #: lang.pm:232 mirror.pm:12 timezone.pm:231 #, c-format msgid "Austria" msgstr "Oostenryk" #: lang.pm:233 mirror.pm:11 timezone.pm:269 #, c-format msgid "Australia" msgstr "Australië" #: lang.pm:234 #, c-format msgid "Aruba" msgstr "Aruba" #: lang.pm:235 #, c-format msgid "Azerbaijan" msgstr "Azerbaijan" #: lang.pm:236 #, c-format msgid "Bosnia and Herzegovina" msgstr "Bosnië en Herzegovina" #: lang.pm:237 #, c-format msgid "Barbados" msgstr "Barbados" #: lang.pm:238 timezone.pm:213 #, c-format msgid "Bangladesh" msgstr "Bangladesh" #: lang.pm:239 mirror.pm:13 timezone.pm:233 #, c-format msgid "Belgium" msgstr "België" #: lang.pm:240 #, c-format msgid "Burkina Faso" msgstr "Burkina Faso" #: lang.pm:241 timezone.pm:234 #, c-format msgid "Bulgaria" msgstr "Bulgaars" #: lang.pm:242 #, c-format msgid "Bahrain" msgstr "Bahrain" #: lang.pm:243 #, c-format msgid "Burundi" msgstr "Burundi" #: lang.pm:244 #, c-format msgid "Benin" msgstr "Benin" #: lang.pm:245 #, c-format msgid "Bermuda" msgstr "Bermuda" #: lang.pm:246 #, c-format msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #: lang.pm:247 #, c-format msgid "Bolivia" msgstr "Bolivia" #: lang.pm:248 mirror.pm:14 timezone.pm:274 #, c-format msgid "Brazil" msgstr "Brasilië" #: lang.pm:249 #, c-format msgid "Bahamas" msgstr "Bahamas" #: lang.pm:250 #, c-format msgid "Bhutan" msgstr "Bhutan" #: lang.pm:251 #, c-format msgid "Bouvet Island" msgstr "Bouvet Eiland" #: lang.pm:252 #, c-format msgid "Botswana" msgstr "Botswana" #: lang.pm:253 timezone.pm:232 #, c-format msgid "Belarus" msgstr "Belarus" #: lang.pm:254 #, c-format msgid "Belize" msgstr "Belize" #: lang.pm:255 mirror.pm:15 timezone.pm:263 #, c-format msgid "Canada" msgstr "Kanada" #: lang.pm:256 #, c-format msgid "Cocos (Keeling) Islands" msgstr "Kokos-eilande" #: lang.pm:257 #, c-format msgid "Congo (Kinshasa)" msgstr "Kongo (Kinshasa)" #: lang.pm:258 #, c-format msgid "Central African Republic" msgstr "Sentrale-Afrika Republiek" #: lang.pm:259 #, c-format msgid "Congo (Brazzaville)" msgstr "Congo (Brazzaville)" #: lang.pm:260 mirror.pm:39 timezone.pm:257 #, c-format msgid "Switzerland" msgstr "Switserland" #: lang.pm:261 #, c-format msgid "Cote d'Ivoire" msgstr "Cote d'Ivoire" #: lang.pm:262 #, c-format msgid "Cook Islands" msgstr "Cook Eilande" #: lang.pm:263 timezone.pm:275 #, c-format msgid "Chile" msgstr "Chili" #: lang.pm:264 #, c-format msgid "Cameroon" msgstr "Kameroen" #: lang.pm:265 timezone.pm:214 #, c-format msgid "China" msgstr "China" #: lang.pm:266 #, c-format msgid "Colombia" msgstr "Colombië" #: lang.pm:267 mirror.pm:16 #, c-format msgid "Costa Rica" msgstr "Costa Rica" #: lang.pm:268 #, c-format msgid "Serbia & Montenegro" msgstr "Serbia & Montenegro" #: lang.pm:269 #, c-format msgid "Cuba" msgstr "Kuba" #: lang.pm:270 #, c-format msgid "Cape Verde" msgstr "Cape Verde" #: lang.pm:271 #, c-format msgid "Christmas Island" msgstr "Christmas Island" #: lang.pm:272 #, c-format msgid "Cyprus" msgstr "Ciprus" #: lang.pm:273 mirror.pm:17 timezone.pm:235 #, c-format msgid "Czech Republic" msgstr "Tsjeggiese Republiek" #: lang.pm:274 mirror.pm:22 timezone.pm:240 #, c-format msgid "Germany" msgstr "Duitsland" #: lang.pm:275 #, c-format msgid "Djibouti" msgstr "Djibouti" #: lang.pm:276 mirror.pm:18 timezone.pm:236 #, c-format msgid "Denmark" msgstr "Denemarke" #: lang.pm:277 #, c-format msgid "Dominica" msgstr "Dominica" #: lang.pm:278 #, c-format msgid "Dominican Republic" msgstr "Dominikaanse Republiek" #: lang.pm:279 #, c-format msgid "Algeria" msgstr "Algerië" #: lang.pm:280 #, c-format msgid "Ecuador" msgstr "Ecuador" #: lang.pm:281 mirror.pm:19 timezone.pm:237 #, c-format msgid "Estonia" msgstr "Estonië" #: lang.pm:282 #, c-format msgid "Egypt" msgstr "Egipte" #: lang.pm:283 #, c-format msgid "Western Sahara" msgstr "Westelike Sahara" #: lang.pm:284 #, c-format msgid "Eritrea" msgstr "Eritrea" #: lang.pm:285 mirror.pm:37 timezone.pm:255 #, c-format msgid "Spain" msgstr "Spanje" #: lang.pm:286 #, c-format msgid "Ethiopia" msgstr "Ethiopië" #: lang.pm:287 mirror.pm:20 timezone.pm:238 #, c-format msgid "Finland" msgstr "Finland" #: lang.pm:288 #, c-format msgid "Fiji" msgstr "Fidji" #: lang.pm:289 #, c-format msgid "Falkland Islands (Malvinas)" msgstr "Falkland Islands (Malvinas)" #: lang.pm:290 #, c-format msgid "Micronesia" msgstr "Micronesia" #: lang.pm:291 #, c-format msgid "Faroe Islands" msgstr "Faroe Eilande" #: lang.pm:292 mirror.pm:21 timezone.pm:239 #, c-format msgid "France" msgstr "Frankryk" #: lang.pm:293 #, c-format msgid "Gabon" msgstr "Gaboen" #: lang.pm:294 timezone.pm:259 #, c-format msgid "United Kingdom" msgstr "Verenigde Koninkryk" #: lang.pm:295 #, c-format msgid "Grenada" msgstr "Grenada" #: lang.pm:296 #, c-format msgid "Georgia" msgstr "Georgia" #: lang.pm:297 #, c-format msgid "French Guiana" msgstr "Frans-Guiana" #: lang.pm:298 #, c-format msgid "Ghana" msgstr "Ghana" #: lang.pm:299 #, c-format msgid "Gibraltar" msgstr "Gibraltar" #: lang.pm:300 #, c-format msgid "Greenland" msgstr "Groenland" #: lang.pm:301 #, c-format msgid "Gambia" msgstr "Gambia" #: lang.pm:302 #, c-format msgid "Guinea" msgstr "Guinee" #: lang.pm:303 #, c-format msgid "Guadeloupe" msgstr "Guadeloupe" #: lang.pm:304 #, c-format msgid "Equatorial Guinea" msgstr "Ekwatoriale Guinea" #: lang.pm:305 mirror.pm:23 timezone.pm:241 #, c-format msgid "Greece" msgstr "Griekeland" #: lang.pm:306 #, c-format msgid "South Georgia and the South Sandwich Islands" msgstr "South Georgia and the South Sandwich Islands" #: lang.pm:307 timezone.pm:264 #, c-format msgid "Guatemala" msgstr "Guatemala" #: lang.pm:308 #, c-format msgid "Guam" msgstr "Guam" #: lang.pm:309 #, c-format msgid "Guinea-Bissau" msgstr "Guinea-Bissau" #: lang.pm:310 #, c-format msgid "Guyana" msgstr "Guyana" #: lang.pm:311 #, c-format msgid "Hong Kong SAR (China)" msgstr "Hong Kong SAR (China)" #: lang.pm:312 #, c-format msgid "Heard and McDonald Islands" msgstr "Heard en McDonald Eilande" #: lang.pm:313 #, c-format msgid "Honduras" msgstr "Honduras" #: lang.pm:314 #, c-format msgid "Croatia" msgstr "Kroasië" #: lang.pm:315 #, c-format msgid "Haiti" msgstr "Haïti" #: lang.pm:316 mirror.pm:24 timezone.pm:242 #, c-format msgid "Hungary" msgstr "Hongarye" #: lang.pm:317 timezone.pm:217 #, c-format msgid "Indonesia" msgstr "Indonesië" #: lang.pm:318 mirror.pm:25 timezone.pm:243 #, c-format msgid "Ireland" msgstr "Ierland" #: lang.pm:319 mirror.pm:26 timezone.pm:219 #, c-format msgid "Israel" msgstr "Israel" #: lang.pm:320 timezone.pm:216 #, c-format msgid "India" msgstr "Indië" #: lang.pm:321 #, c-format msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" #: lang.pm:322 #, c-format msgid "Iraq" msgstr "Irak" #: lang.pm:323 timezone.pm:218 #, c-format msgid "Iran" msgstr "Iran" #: lang.pm:324 #, c-format msgid "Iceland" msgstr "Ysland" #: lang.pm:325 mirror.pm:27 timezone.pm:244 #, c-format msgid "Italy" msgstr "Italië" #: lang.pm:326 #, c-format msgid "Jamaica" msgstr "Jamaika" #: lang.pm:327 #, c-format msgid "Jordan" msgstr "Jordanië" #: lang.pm:328 mirror.pm:28 timezone.pm:220 #, c-format msgid "Japan" msgstr "Japan" #: lang.pm:329 #, c-format msgid "Kenya" msgstr "Kenia" #: lang.pm:330 #, c-format msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #: lang.pm:331 #, c-format msgid "Cambodia" msgstr "Kambodja" #: lang.pm:332 #, c-format msgid "Kiribati" msgstr "Kiribati" #: lang.pm:333 #, c-format msgid "Comoros" msgstr "Comoros" #: lang.pm:334 #, c-format msgid "Saint Kitts and Nevis" msgstr "Saint Kitts and Nevis" #: lang.pm:335 #, c-format msgid "Korea (North)" msgstr "Korea (Noord)" #: lang.pm:336 timezone.pm:221 #, c-format msgid "Korea" msgstr "Korea" #: lang.pm:337 #, c-format msgid "Kuwait" msgstr "Koeweit" #: lang.pm:338 #, c-format msgid "Cayman Islands" msgstr "Cayman Eilande" #: lang.pm:339 #, c-format msgid "Kazakhstan" msgstr "Kazakhstan" #: lang.pm:340 #, c-format msgid "Laos" msgstr "Laos" #: lang.pm:341 #, c-format msgid "Lebanon" msgstr "Libanon" #: lang.pm:342 #, c-format msgid "Saint Lucia" msgstr "Saint Lucia" #: lang.pm:343 #, c-format msgid "Liechtenstein" msgstr "Liechtenstein" #: lang.pm:344 #, c-format msgid "Sri Lanka" msgstr "Sri Lanka" #: lang.pm:345 #, c-format msgid "Liberia" msgstr "Liberië" #: lang.pm:346 #, c-format msgid "Lesotho" msgstr "Lesotho" #: lang.pm:347 timezone.pm:245 #, c-format msgid "Lithuania" msgstr "Litaue" #: lang.pm:348 timezone.pm:246 #, c-format msgid "Luxembourg" msgstr "Luxemburg" #: lang.pm:349 #, c-format msgid "Latvia" msgstr "Letland" #: lang.pm:350 #, c-format msgid "Libya" msgstr "Libië" #: lang.pm:351 #, c-format msgid "Morocco" msgstr "Marokko" #: lang.pm:352 #, c-format msgid "Monaco" msgstr "Monaco" #: lang.pm:353 #, c-format msgid "Moldova" msgstr "Moldova" #: lang.pm:354 #, c-format msgid "Madagascar" msgstr "Madagaskar" #: lang.pm:355 #, c-format msgid "Marshall Islands" msgstr "Marshall Eilande" #: lang.pm:356 #, c-format msgid "Macedonia" msgstr "Masedonië" #: lang.pm:357 #, c-format msgid "Mali" msgstr "Mali" #: lang.pm:358 #, c-format msgid "Myanmar" msgstr "Myanmar" #: lang.pm:359 #, c-format msgid "Mongolia" msgstr "Mongolië" #: lang.pm:360 #, c-format msgid "Northern Mariana Islands" msgstr "Noordelike Mariana Eilande" #: lang.pm:361 #, c-format msgid "Martinique" msgstr "Martinique" #: lang.pm:362 #, c-format msgid "Mauritania" msgstr "Mauritanië" #: lang.pm:363 #, c-format msgid "Montserrat" msgstr "Montserrat" #: lang.pm:364 #, c-format msgid "Malta" msgstr "Malta" #: lang.pm:365 #, c-format msgid "Mauritius" msgstr "Mauritius" #: lang.pm:366 #, c-format msgid "Maldives" msgstr "Maldives" #: lang.pm:367 #, c-format msgid "Malawi" msgstr "Malawië" #: lang.pm:368 timezone.pm:265 #, c-format msgid "Mexico" msgstr "Mexiko" #: lang.pm:369 timezone.pm:222 #, c-format msgid "Malaysia" msgstr "Maleisië" #: lang.pm:370 #, c-format msgid "Mozambique" msgstr "Mosambiek" #: lang.pm:371 #, c-format msgid "Namibia" msgstr "Namibië" #: lang.pm:372 #, c-format msgid "New Caledonia" msgstr "Nieu-Caledonië" #: lang.pm:373 #, c-format msgid "Niger" msgstr "Niger" #: lang.pm:374 #, c-format msgid "Norfolk Island" msgstr "Norfolk Eiland" #: lang.pm:375 #, c-format msgid "Nigeria" msgstr "Nigerië" #: lang.pm:376 #, c-format msgid "Nicaragua" msgstr "Nicaragua" #: lang.pm:377 mirror.pm:29 timezone.pm:247 #, c-format msgid "Netherlands" msgstr "Nederlands" #: lang.pm:378 mirror.pm:31 timezone.pm:248 #, c-format msgid "Norway" msgstr "Noorweë" #: lang.pm:379 #, c-format msgid "Nepal" msgstr "Nepal" #: lang.pm:380 #, c-format msgid "Nauru" msgstr "Nauru" #: lang.pm:381 #, c-format msgid "Niue" msgstr "Niue" #: lang.pm:382 mirror.pm:30 timezone.pm:270 #, c-format msgid "New Zealand" msgstr "Neu-Seeland" #: lang.pm:383 #, c-format msgid "Oman" msgstr "Oman" #: lang.pm:384 #, c-format msgid "Panama" msgstr "Panama" #: lang.pm:385 #, c-format msgid "Peru" msgstr "Peru" #: lang.pm:386 #, c-format msgid "French Polynesia" msgstr "Fraanse Polinesië" #: lang.pm:387 #, c-format msgid "Papua New Guinea" msgstr "Papua New Guinea" #: lang.pm:388 timezone.pm:223 #, c-format msgid "Philippines" msgstr "Filippyne" #: lang.pm:389 #, c-format msgid "Pakistan" msgstr "Pakistan" #: lang.pm:390 mirror.pm:32 timezone.pm:249 #, c-format msgid "Poland" msgstr "Pole" #: lang.pm:391 #, c-format msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre en Miquelon" #: lang.pm:392 #, c-format msgid "Pitcairn" msgstr "Pitcairn" #: lang.pm:393 #, c-format msgid "Puerto Rico" msgstr "Puerto Rico" #: lang.pm:394 #, c-format msgid "Palestine" msgstr "Palestina" #: lang.pm:395 mirror.pm:33 timezone.pm:250 #, c-format msgid "Portugal" msgstr "Portugal" #: lang.pm:396 #, c-format msgid "Paraguay" msgstr "Paraguay" #: lang.pm:397 #, c-format msgid "Palau" msgstr "Palau" #: lang.pm:398 #, c-format msgid "Qatar" msgstr "Qatar" #: lang.pm:399 #, c-format msgid "Reunion" msgstr "Hereniging" #: lang.pm:400 timezone.pm:251 #, c-format msgid "Romania" msgstr "Roemenië" #: lang.pm:401 mirror.pm:34 #, c-format msgid "Russia" msgstr "Rusland" #: lang.pm:402 #, c-format msgid "Rwanda" msgstr "Rwanda" #: lang.pm:403 #, c-format msgid "Saudi Arabia" msgstr "Saoedi-Arabië" #: lang.pm:404 #, c-format msgid "Solomon Islands" msgstr "Solomon Eilande" #: lang.pm:405 #, c-format msgid "Seychelles" msgstr "Seychelle" #: lang.pm:406 #, c-format msgid "Sudan" msgstr "Sudan" #: lang.pm:407 mirror.pm:38 timezone.pm:256 #, c-format msgid "Sweden" msgstr "Swede" #: lang.pm:408 timezone.pm:224 #, c-format msgid "Singapore" msgstr "Singapoer" #: lang.pm:409 #, c-format msgid "Saint Helena" msgstr "Saint Helena" #: lang.pm:410 timezone.pm:254 #, c-format msgid "Slovenia" msgstr "Slovenië" #: lang.pm:411 #, c-format msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard en Jan Mayen Eilande" #: lang.pm:412 mirror.pm:35 timezone.pm:253 #, c-format msgid "Slovakia" msgstr "Slovakye" #: lang.pm:413 #, c-format msgid "Sierra Leone" msgstr "Sierra Leone" #: lang.pm:414 #, c-format msgid "San Marino" msgstr "San Marino" #: lang.pm:415 #, c-format msgid "Senegal" msgstr "Senekal" #: lang.pm:416 #, c-format msgid "Somalia" msgstr "Somalië" #: lang.pm:417 #, c-format msgid "Suriname" msgstr "Suriname" #: lang.pm:418 #, c-format msgid "Sao Tome and Principe" msgstr "Sao Tome and Principe" #: lang.pm:419 #, c-format msgid "El Salvador" msgstr "El Salvador" #: lang.pm:420 #, c-format msgid "Syria" msgstr "Sirië" #: lang.pm:421 #, c-format msgid "Swaziland" msgstr "Swaziland" #: lang.pm:422 #, c-format msgid "Turks and Caicos Islands" msgstr "Turks en Caicos Eilande" #: lang.pm:423 #, c-format msgid "Chad" msgstr "Tsjad" #: lang.pm:424 #, c-format msgid "French Southern Territories" msgstr "French Southern Territories" #: lang.pm:425 #, c-format msgid "Togo" msgstr "Togo" #: lang.pm:426 mirror.pm:41 timezone.pm:226 #, c-format msgid "Thailand" msgstr "Thailand" #: lang.pm:427 #, c-format msgid "Tajikistan" msgstr "Tajikistan" #: lang.pm:428 #, c-format msgid "Tokelau" msgstr "Tokelau" #: lang.pm:429 #, c-format msgid "East Timor" msgstr "East Timor" #: lang.pm:430 #, c-format msgid "Turkmenistan" msgstr "Turkmenistan" #: lang.pm:431 #, c-format msgid "Tunisia" msgstr "Tunisië" #: lang.pm:432 #, c-format msgid "Tonga" msgstr "Tonga" #: lang.pm:433 timezone.pm:227 #, c-format msgid "Turkey" msgstr "Turkye" #: lang.pm:434 #, c-format msgid "Trinidad and Tobago" msgstr "Trinidad en Tobago" #: lang.pm:435 #, c-format msgid "Tuvalu" msgstr "Tuvalu" #: lang.pm:436 mirror.pm:40 timezone.pm:225 #, c-format msgid "Taiwan" msgstr "Taiwan" #: lang.pm:437 timezone.pm:210 #, c-format msgid "Tanzania" msgstr "Tanzanië" #: lang.pm:438 timezone.pm:258 #, c-format msgid "Ukraine" msgstr "Oekraine" #: lang.pm:439 #, c-format msgid "Uganda" msgstr "Uganda" #: lang.pm:440 #, c-format msgid "United States Minor Outlying Islands" msgstr "Verenigde State se Kliener Omliggende Eilande" #: lang.pm:441 mirror.pm:42 timezone.pm:266 #, c-format msgid "United States" msgstr "Verenigde State" #: lang.pm:442 #, c-format msgid "Uruguay" msgstr "Uruguay" #: lang.pm:443 #, c-format msgid "Uzbekistan" msgstr "Uzbekistan" #: lang.pm:444 #, c-format msgid "Vatican" msgstr "Vatican" #: lang.pm:445 #, c-format msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent en die Grenadines" #: lang.pm:446 #, c-format msgid "Venezuela" msgstr "Venezuela" #: lang.pm:447 #, c-format msgid "Virgin Islands (British)" msgstr "Virgin Eilande (Brits)" #: lang.pm:448 #, c-format msgid "Virgin Islands (U.S.)" msgstr "Virgin Eilande (VSA)" #: lang.pm:449 #, c-format msgid "Vietnam" msgstr "Viëtnam" #: lang.pm:450 #, c-format msgid "Vanuatu" msgstr "Vanuatu" #: lang.pm:451 #, c-format msgid "Wallis and Futuna" msgstr "Wallis en Futuna" #: lang.pm:452 #, c-format msgid "Samoa" msgstr "Samoa" #: lang.pm:453 #, c-format msgid "Yemen" msgstr "Yemen" #: lang.pm:454 #, c-format msgid "Mayotte" msgstr "Mayotte" #: lang.pm:455 mirror.pm:36 timezone.pm:209 #, c-format msgid "South Africa" msgstr "Suid-Afrika" #: lang.pm:456 #, c-format msgid "Zambia" msgstr "Zambië" #: lang.pm:457 #, c-format msgid "Zimbabwe" msgstr "Zimbabwe" #: lang.pm:1191 #, c-format msgid "Welcome to %s" msgstr "Welkom by %s" #: lvm.pm:92 #, c-format msgid "Moving used physical extents to other physical volumes failed" msgstr "" #: lvm.pm:149 #, c-format msgid "Physical volume %s is still in use" msgstr "" #: lvm.pm:159 #, c-format msgid "Remove the logical volumes first\n" msgstr "Verwyder eers die logiese volumes\n" #: lvm.pm:202 #, c-format msgid "The bootloader can't handle /boot on multiple physical volumes" msgstr "" #. -PO: Only write something if needed: #: messages.pm:11 #, c-format msgid "_: You can warn about unofficial translation here" msgstr "" #: messages.pm:18 #, c-format msgid "Introduction" msgstr "" #: messages.pm:20 #, c-format msgid "" "The operating system and the different components available in the Mageia " "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 distribution, and any " "applications \n" "distributed with these products provided by Mageia's licensors or suppliers." msgstr "" #: messages.pm:27 #, c-format msgid "1. License Agreement" msgstr "" #: messages.pm:29 #, c-format msgid "" "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." msgstr "" #: messages.pm:41 #, c-format msgid "2. Limited Warranty" msgstr "" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: messages.pm:44 #, c-format msgid "" "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 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." msgstr "" #: messages.pm:68 #, c-format msgid "3. The GPL License and Related Licenses" msgstr "" #: messages.pm:70 #, c-format msgid "" "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 \"%s\" License." msgstr "" #: messages.pm:79 #, c-format msgid "4. Intellectual Property Rights" msgstr "" #: messages.pm:81 #, c-format msgid "" "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\" and associated logos are trademarks of %s" msgstr "" #: messages.pm:88 #, c-format msgid "5. Governing Laws" msgstr "" #: messages.pm:90 #, c-format msgid "" "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:102 #, 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 license 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 "" "Waarskuwing: Oopbronsagteware is nie noodwendig vry van patente nie.\n" "Sommige van die sagteware hier ingesluit mag dalk gedek wees deur\n" "patente in die land waar u woon.\n" "Die MP3-dekodeerders wat hier ingesluit word, benodig moonlik 'n\n" "lisensie om wettiglik gebruik te kan word.(http://www.mp3licensing.com)\n" "Indien u onseker is oor 'n patent, raadpleeg die plaaslike wette.\n" "( Wees daarom bly jy woon nie in die VSA nie! )" #: messages.pm:111 #, fuzzy, c-format msgid "" "Congratulations, installation is complete.\n" "Remove the boot media and press Enter to reboot." msgstr "" "Geluk, installasie is afgehandel.\n" "Verwyder die herlaaimedium en druk 'enter' om te herlaai." #: messages.pm:113 #, c-format msgid "" "For information on fixes which are available for this release of Mageia,\n" "consult the Errata available from:\n" "%s" msgstr "" "Vir inligting oor hierdie vrystelling van Mageia,\n" "bekyk die errata beskikbaar op\n" "%s" #: messages.pm:115 #, c-format msgid "" "Information on configuring your system is available in the post\n" "install chapter of the Official Mageia User's Guide." msgstr "" "Inligting oor stelskonfigurasie is beskikbaar in die postinstallasie-\n" "hoofstuk in die Offisiële Mageia Gebruikersgids." #: modules/interactive.pm:19 #, fuzzy, c-format msgid "This driver has no configuration parameter!" msgstr "CUPS-drukkerkonfigurasie" #: modules/interactive.pm:22 #, c-format msgid "Module configuration" msgstr "Konfigurasie van module" #: modules/interactive.pm:22 #, c-format msgid "You can configure each parameter of the module here." msgstr "U kan elke parameter van die module hier konfigureer" #: modules/interactive.pm:64 #, c-format msgid "Found %s interfaces" msgstr "Het %s koppelvlakke gevind" #: modules/interactive.pm:65 #, c-format msgid "Do you have another one?" msgstr "Beskik u oor nog?" #: modules/interactive.pm:66 #, c-format msgid "Do you have any %s interfaces?" msgstr "Het u enige %s koppelvlakke?" #: modules/interactive.pm:72 #, c-format msgid "See hardware info" msgstr "Sien hardeware inligting" #: modules/interactive.pm:83 #, fuzzy, c-format msgid "Installing driver for USB controller" msgstr "Drywer vir \"%s\" kaart \"%s\" in installasieproses" #: modules/interactive.pm:84 #, fuzzy, c-format msgid "Installing driver for firewire controller \"%s\"" msgstr "Drywer vir \"%s\" kaart \"%s\" in installasieproses" #: modules/interactive.pm:85 #, fuzzy, c-format msgid "Installing driver for hard disk drive controller \"%s\"" msgstr "Drywer vir \"%s\" kaart \"%s\" in installasieproses" #: modules/interactive.pm:86 #, fuzzy, c-format msgid "Installing driver for ethernet controller \"%s\"" msgstr "Drywer vir \"%s\" kaart \"%s\" in installasieproses" #. -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 "Drywer vir %s kaart %s in installasieproses" #: 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 "" "U kan nou opsies vir module %s voorsien.\n" "Let daarop dat enige adresse voorafgegaan moet word deur 0x (bv '0x123')" #: 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 "" "U kan nou die opsies voorsien vir module %s.\n" "Opsies is in die formaat ``naam=waarde naam2=waarde2 ...''.\n" "Bv. ``io=0x300 irq-7''" #: modules/interactive.pm:119 #, c-format msgid "Module options:" msgstr "Module opsies:" #. -PO: the %s is the driver type (scsi, network, sound,...) #: modules/interactive.pm:132 #, c-format msgid "Which %s driver should I try?" msgstr "Watter %s drywer moet ek probeer?" #: 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 "" "In sekere gevalle sal die %s drywer ekstra inligting benodig, alhoewel in\n" "meeste gevalle dit nie nodig is nie. Wil u ekstra opsies voorsien of moet\n" "rekenaar self daarvoor aftas. In uitsonderlike gevalle mag die rekenaar\n" "vries, maar sal nie skade veroorsaak nie." #: modules/interactive.pm:145 #, c-format msgid "Autoprobe" msgstr "Aftas" #: modules/interactive.pm:145 #, c-format msgid "Specify options" msgstr "Spesifieer opsies" #: modules/interactive.pm:157 #, c-format msgid "" "Loading module %s failed.\n" "Do you want to try again with other parameters?" msgstr "" "Laai van module %s het gefaal.\n" "Wil u ander parameters probeer?" #: mygtk2.pm:1222 #, fuzzy, c-format msgid "Are you sure you want to quit?" msgstr "Wil u op hierdie knoppie klik?" #: mygtk2.pm:1563 mygtk2.pm:1564 #, c-format msgid "Password is trivial to guess" msgstr "" #: mygtk2.pm:1542 #, c-format msgid "Password should be resistant to basic attacks" msgstr "" #: mygtk2.pm:1543 mygtk2.pm:1544 #, fuzzy, c-format msgid "Password seems secure" msgstr "Benodig wagwoord" #: partition_table.pm:428 #, c-format msgid "mount failed: " msgstr "heg het gefaal: " #: partition_table.pm:540 #, c-format msgid "Extended partition not supported on this platform" msgstr "Ekstensiepartisie word nie op hierdie platform ondersteun nie" #: partition_table.pm:558 #, c-format msgid "" "You have a hole in your partition table but I cannot use it.\n" "The only solution is to move your primary partitions to have the hole next " "to the extended partitions." msgstr "" "U het 'n gat die partisietabel maar ek kan dit nie gebruik nie.\n" "Die enigste oplossing is om die primêre partisie te skuif sodat die gat\n" "langs die ekstensie partisies is" #: partition_table/raw.pm:296 #, c-format msgid "" "Something bad is happening on your hard disk 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 "" "Iets vrots gebeur op u hardeskyf.\n" "'n Data-integriteitstoets het misluk.\n" "Dit beteken dat enigiets wat na u hardeskyf geskryf word as gemors sal " "eindig." #: pkgs.pm:254 pkgs.pm:257 pkgs.pm:270 #, c-format msgid "Unused packages removal" msgstr "" #: pkgs.pm:254 #, c-format msgid "Finding unused hardware packages..." msgstr "" #: pkgs.pm:257 #, c-format msgid "Finding unused localization packages..." msgstr "" #: pkgs.pm:271 #, c-format msgid "" "We have detected that some packages are not needed for your system " "configuration." msgstr "" #: pkgs.pm:272 #, c-format msgid "We will remove the following packages, unless you choose otherwise:" msgstr "" #: pkgs.pm:275 pkgs.pm:276 #, fuzzy, c-format msgid "Unused hardware support" msgstr "laat radio ondersteuning toe" #: pkgs.pm:279 pkgs.pm:280 #, c-format msgid "Unused localization" msgstr "" #: raid.pm:43 #, fuzzy, c-format msgid "Cannot add a partition to _formatted_ RAID %s" msgstr "Kan nie 'n partisie by geformatteerde RAID md%d byvoeg nie" #: raid.pm:166 #, c-format msgid "Not enough partitions for RAID level %d\n" msgstr "Nie genoeg partisies vir RAID vlak %d nie\n" #: scanner.pm:96 #, c-format msgid "Could not create directory /usr/share/sane/firmware!" msgstr "Kon nie gids /usr/share/sane/firmware skep nie!" #: scanner.pm:107 #, fuzzy, c-format msgid "Could not create link /usr/share/sane/%s!" msgstr "Kon nie gids /usr/share/sane/firmware skep nie!" #: scanner.pm:114 #, c-format msgid "Could not copy firmware file %s to /usr/share/sane/firmware!" msgstr "Kon nie firmware-lêer %s na /usr/share/sane/firmware kopieer nie!" #: scanner.pm:121 #, c-format msgid "Could not set permissions of firmware file %s!" msgstr "Kon nie die permisies van die firmware-lêer %s stel nie." #: scanner.pm:200 #, c-format msgid "Scannerdrake" msgstr "Scannerdrake" #: scanner.pm:201 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "Kon nie die pakkete installeer om u skandeerder(s) te deel nie." #: scanner.pm:202 #, c-format msgid "Your scanner(s) will not be available for non-root users." msgstr "U skandeerder(s) sal NIE vir normale gebruikers beskikbaar wees NIE. " #: security/help.pm:11 #, fuzzy, c-format msgid "Accept bogus IPv4 error messages." msgstr "Aanvaar snert IPv4 foutboodskappe" #: security/help.pm:13 #, fuzzy, c-format msgid "Accept broadcasted icmp echo." msgstr "Aanvaar uitgesaaide icmp-ego's" #: security/help.pm:15 #, fuzzy, c-format msgid "Accept icmp echo." msgstr "Aanvaar icmp-ego's" #: security/help.pm:17 #, fuzzy, c-format msgid "Allow autologin." msgstr "Laat toe/Verbied outo-inteken." #. -PO: here "ALL" is a value in a pull-down menu; translate it the same as "ALL" is #: security/help.pm:21 #, fuzzy, 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 "" "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." #: security/help.pm:27 #, fuzzy, c-format msgid "Allow reboot by the console user." msgstr "Laat toe/Verbied herbegin deur 'n konsole-gebruiker." #: security/help.pm:29 #, fuzzy, c-format msgid "Allow remote root login." msgstr "Laat eksterne 'root'-inteken toe" #: security/help.pm:31 #, fuzzy, c-format msgid "Allow direct root login." msgstr "Laat toe/Weier vir 'root' om direk in te teken." #: security/help.pm:33 #, fuzzy, c-format msgid "" "Allow the list of users on the system on display managers (kdm and gdm)." msgstr "" "Laat toe/Verbied die vertoon van gebruikername op vertoonbestuurders\n" " (display managers, bv. kdm en gdm)." #: 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 #, fuzzy, 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 "" "Laat toe/Verbied X-konneksies:\n" "\n" "- ALMAL ( alle konneksies word toegelaat),\n" "\n" "- PLAASLIK (slegs vanaf die plaaslike rekenaar),\n" "\n" "- GEEN (geen konneksie)." #: 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 "" "Hierdie argument spesifiseer indien kliënte gemagtig is om aan die\n" "X-bediener te koppel via die netwerk (tcp poort 6000) of nie." #. -PO: here "ALL", "Local" and "None" are values in a pull-down menu; translate them the same as they're #: security/help.pm:53 #, fuzzy, 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 "" "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))." #: 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 "" "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." #: security/help.pm:72 #, fuzzy, 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 "" "Versper/Ontsper 'crantab' en 'at' vir gebruikers.\n" "\n" "Plaas toegelete gebruikers in /etc/cron.allow en /etc/at.allow\n" "(verwys na man at(1) en crontab(1))." #: security/help.pm:77 #, fuzzy, c-format msgid "Enable syslog reports to console 12" msgstr "Ontsper/Versper 'syslog' verslae na konsole 12" #: security/help.pm:79 #, fuzzy, c-format msgid "" "Enable name resolution spoofing protection. If\n" "\"%s\" is true, also reports to syslog." msgstr "" "Versper/Ontsper flous-naamresolusie-beskerming. Indien\n" " \"%s\" gekies is, sal dit aangeteken word\n" " in die staaflêers." #: security/help.pm:80 #, c-format msgid "Security Alerts:" msgstr "Sekuriteits-waarskuwings:" #: security/help.pm:82 #, fuzzy, c-format msgid "Enable IP spoofing protection." msgstr "Ontsper flous-naamresolusie-beskerming" #: security/help.pm:84 #, fuzzy, c-format msgid "Enable libsafe if libsafe is found on the system." msgstr "Ontsper 'libsafe' indien 'libsafe' teenwoordig is." #: security/help.pm:86 #, fuzzy, c-format msgid "Enable the logging of IPv4 strange packets." msgstr "Ontsper aanteken van vreemde IPv4-pakkies in staaflêer." #: security/help.pm:88 #, fuzzy, c-format msgid "Enable msec hourly security check." msgstr "Aktiveer msec se uurlikse ondersoek" #: security/help.pm:90 #, fuzzy, c-format msgid "" "Enable su only from members of the wheel group. If set to no, allows su from " "any user." msgstr "" "'su'-funksie slegs vir lede van die \"wheel\"-groep of vir enige gebruiker." #: security/help.pm:92 #, c-format msgid "Use password to authenticate users." msgstr "Geldigverklaring deur wagwoorde" #: security/help.pm:94 #, fuzzy, c-format msgid "Activate Ethernet cards promiscuity check." msgstr "Aktiveer/Versper ethernetkaarte 'promoscuity' toets." #: security/help.pm:96 #, fuzzy, c-format msgid "Activate daily security check." msgstr "Aktiveer/Versper daaglikese sekuriteits-toets." #: security/help.pm:98 #, fuzzy, c-format msgid "Enable sulogin(8) in single user level." msgstr "Versper/Ontsper sulogin(8) in enkel-gebruiker modus" #: security/help.pm:100 #, c-format msgid "Add the name as an exception to the handling of password aging by msec." msgstr "Voeg die naam by as 'n uitsondering tot wagwoordveroudering deur msec." #: security/help.pm:102 #, c-format msgid "Set password aging to \"max\" days and delay to change to \"inactive\"." msgstr "" "Verstel wagwoord-veroudering no \"max\" dae en versuim om\n" "te verander na \"inactive\"." #: security/help.pm:104 #, c-format msgid "Set the password history length to prevent password reuse." msgstr "Stel die wagwoord-geskiedenis se lente om hergebruik te voorkom" #: security/help.pm:106 #, c-format msgid "" "Set the password minimum length and minimum number of digit and minimum " "number of capitalized letters." msgstr "" "Stel die wagwoord se minimum lengte, minimum aantal syfers en die minimum " "hoofletters." #: security/help.pm:108 #, fuzzy, c-format msgid "Set the root's file mode creation mask." msgstr "Kies 'root' se 'umask'." #: security/help.pm:109 #, c-format msgid "if set to yes, check open ports." msgstr "indien ja gekies is, ondersoek die oop poorte." #: 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 "" "indien ja gekies is, toets vir:\n" "\n" "-leë wagwoorde,\n" "\n" "-geen wagwoord in /etc/shadow\n" "\n" "-vir gebuikers buiten 'root' wie se UID '0' is." #: security/help.pm:117 #, c-format msgid "if set to yes, check permissions of files in the users' home." msgstr "" "indien ja gekies is, ondersoek lêer-vergunningsvlakke in gebuiker se tuisgids" #: security/help.pm:118 #, c-format msgid "if set to yes, check if the network devices are in promiscuous mode." msgstr "" "indien ja gekies is, kyk of netwerk-toestelle in 'promiscuous'-modus is." #: security/help.pm:119 #, c-format msgid "if set to yes, run the daily security checks." msgstr "indien ja gekies is, loop daaglikse sekuriteitstoetse." #: security/help.pm:120 #, c-format msgid "if set to yes, check additions/removals of sgid files." msgstr "indien ja gekies is, ondersoek byvoeg/verwydering van sgid-lêers." #: security/help.pm:121 #, c-format msgid "if set to yes, check empty password in /etc/shadow." msgstr "indien ja gekies is, kyk vir leë wagwoorde in '/etc/shadow'" #: security/help.pm:122 #, c-format msgid "if set to yes, verify checksum of the suid/sgid files." msgstr "" "indien ja gekies is, ondersoek die toetssom (checksum) van suid/sgid lêers" #: security/help.pm:123 #, c-format msgid "if set to yes, check additions/removals of suid root files." msgstr "indien ja gekies is, let na byvoeg/verwydering van 'suid root' lêers." #: security/help.pm:124 #, c-format msgid "if set to yes, report unowned files." msgstr "indie ja gekies is, verklik lêers sonder eienaars." #: security/help.pm:125 #, c-format msgid "if set to yes, check files/directories writable by everybody." msgstr "" "indien ja gekies is, soek vir lêers/lêergidse waarna enige iemand kan skryf." #: security/help.pm:126 #, c-format msgid "if set to yes, run chkrootkit checks." msgstr "indien ja gekies is, doen 'chkrootkit'-toetse." #: security/help.pm:127 #, c-format msgid "" "if set, send the mail report to this email address else send it to root." msgstr "" "Indien gespesifiseer, stuur die e-pos verslag na hierdie adres, so nie,\n" "stuur na 'root'" #: security/help.pm:128 #, c-format msgid "if set to yes, report check result by mail." msgstr "indien ja gekies is, stuur toetsreslutate via e-pos." #: security/help.pm:129 #, c-format msgid "Do not send mails if there's nothing to warn about" msgstr "Moet nie e-pos stuur indien daar niks is om oor te waarsku nie" #: security/help.pm:130 #, c-format msgid "if set to yes, run some checks against the rpm database." msgstr "indien ja gekies is, doen 'n paar toetse teen die rpm-databasis." #: security/help.pm:131 #, c-format msgid "if set to yes, report check result to syslog." msgstr "indien ja gekies is, skryf deursoek-resultate na staaflêer." #: security/help.pm:132 #, c-format msgid "if set to yes, reports check result to tty." msgstr "indien ja gekies is, skryf toetsresultate na tty." #: security/help.pm:134 #, c-format msgid "Set shell commands history size. A value of -1 means unlimited." msgstr "Stel instruksiedop se geskiedenisgrootte. '-1' beteken oneindig groot." #: security/help.pm:136 #, c-format msgid "Set the shell timeout. A value of zero means no timeout." msgstr "Voorsien die tydsbeperking van die dop. Indien geen, maak dit Zero" #: security/help.pm:136 #, c-format msgid "Timeout unit is second" msgstr "Uittel se eenheid is in sekondes" #: security/help.pm:138 #, fuzzy, c-format msgid "Set the user's file mode creation mask." msgstr "Stel die 'umask'" #: security/l10n.pm:11 #, c-format msgid "Accept bogus IPv4 error messages" msgstr "Aanvaar snert IPv4 foutboodskappe" #: security/l10n.pm:12 #, c-format msgid "Accept broadcasted icmp echo" msgstr "Aanvaar uitgesaaide icmp-ego's" #: security/l10n.pm:13 #, c-format msgid "Accept icmp echo" msgstr "Aanvaar icmp-ego's" #: security/l10n.pm:15 #, c-format msgid "/etc/issue* exist" msgstr "/etc/issue* bestaan reeds" #: security/l10n.pm:16 #, c-format msgid "Reboot by the console user" msgstr "Herbegin deur die konsole se gebruiker" #: security/l10n.pm:17 #, c-format msgid "Allow remote root login" msgstr "Laat eksterne 'root'-inteken toe" #: security/l10n.pm:18 #, c-format msgid "Direct root login" msgstr "Direkte 'root' inteken" #: security/l10n.pm:19 #, c-format msgid "List users on display managers (kdm and gdm)" msgstr "Wys gebruikers op vertoonbestuurders (kdm en gdm)" #: security/l10n.pm:20 #, c-format msgid "Export display when passing from root to the other users" msgstr "" #: security/l10n.pm:21 #, c-format msgid "Allow X Window connections" msgstr "Laat X Window konneksies toe" #: security/l10n.pm:22 #, c-format msgid "Authorize TCP connections to X Window" msgstr "Magtig TCP konneksies na 'X Window'" #: security/l10n.pm:23 #, c-format msgid "Authorize all services controlled by tcp_wrappers" msgstr "Magtig al die dienste wat tcp_wrappers beheer" #: security/l10n.pm:24 #, c-format msgid "Chkconfig obey msec rules" msgstr "'Chkconfig' volg 'msec' se reëls" #: security/l10n.pm:25 #, c-format msgid "Enable \"crontab\" and \"at\" for users" msgstr "Aktiveer \"crontab en \"at\" vir gebruikers" #: security/l10n.pm:26 #, c-format msgid "Syslog reports to console 12" msgstr "'syslog' verslae na konsole 12" #: security/l10n.pm:27 #, c-format msgid "Name resolution spoofing protection" msgstr "Flous-naamresolusie-beskerming" #: security/l10n.pm:28 #, c-format msgid "Enable IP spoofing protection" msgstr "Ontsper flous-naamresolusie-beskerming" #: security/l10n.pm:29 #, c-format msgid "Enable libsafe if libsafe is found on the system" msgstr "Ontsper 'libsafe' indien 'libsafe' teenwoordig is." #: security/l10n.pm:30 #, c-format msgid "Enable the logging of IPv4 strange packets" msgstr "Ontsper aanteken van vreemde IPv4-pakkies in staaflêer." #: security/l10n.pm:31 #, c-format msgid "Enable msec hourly security check" msgstr "Aktiveer msec se uurlikse ondersoek" #: security/l10n.pm:32 #, fuzzy, c-format msgid "Enable su only from the wheel group members" msgstr "" "Aktiveer 'su' slegs vir die 'wheel'-groep se lede OF vir enige gebruiker" #: security/l10n.pm:33 #, c-format msgid "Use password to authenticate users" msgstr "Geldigverklaring deur wagwoorde" #: security/l10n.pm:34 #, c-format msgid "Ethernet cards promiscuity check" msgstr "Ethernetkaarte 'promoscuity' toets" #: security/l10n.pm:35 #, c-format msgid "Daily security check" msgstr "Daaglikse sekuriteits-toets" #: security/l10n.pm:36 #, c-format msgid "Sulogin(8) in single user level" msgstr "'Sulogin(8)' in enkel-gebruikervlak" #: security/l10n.pm:37 #, c-format msgid "No password aging for" msgstr "Geen wagwoordveroudering vir" #: security/l10n.pm:38 #, c-format msgid "Set password expiration and account inactivation delays" msgstr "" "Spesifseer intervalle van wagwoord-verval en de-aktivering van rekeninge" #: security/l10n.pm:39 #, c-format msgid "Password history length" msgstr "Lengte van wagwoord-geskiedenis" #: security/l10n.pm:40 #, c-format msgid "Password minimum length and number of digits and upcase letters" msgstr "Wagwoord se minimum lente en die aantal syfers en hoofletters" #: security/l10n.pm:41 #, c-format msgid "Root umask" msgstr "'root' se umask" #: security/l10n.pm:42 #, c-format msgid "Shell history size" msgstr "Instruksiedop se geskiendenis-gootte" #: security/l10n.pm:43 #, c-format msgid "Shell timeout" msgstr "Tydsbeperking vir dop" #: security/l10n.pm:44 #, c-format msgid "User umask" msgstr "Gebruiker se 'umask'" #: security/l10n.pm:45 #, c-format msgid "Check open ports" msgstr "Toets oop poorte" #: security/l10n.pm:46 #, c-format msgid "Check for unsecured accounts" msgstr "Toets vir nie-veilige rekeninge" #: security/l10n.pm:47 #, c-format msgid "Check permissions of files in the users' home" msgstr "Ondersoek lêer-verunningsvlakke in gebruiker se tuisgids" #: security/l10n.pm:48 #, c-format msgid "Check if the network devices are in promiscuous mode" msgstr "kyk of netwerk-toestelle in 'promiscuous'-modus is" #: security/l10n.pm:49 #, c-format msgid "Run the daily security checks" msgstr "Loop die daaglikse sekuriteits-toetse" #: security/l10n.pm:50 #, c-format msgid "Check additions/removals of sgid files" msgstr "Ondersoek die byvoeg/verwydering van sgid-lêers" #: security/l10n.pm:51 #, c-format msgid "Check empty password in /etc/shadow" msgstr "Kyk vir leë wagwoorde in '/etc/shadow'" #: security/l10n.pm:52 #, c-format msgid "Verify checksum of the suid/sgid files" msgstr "Ondersoek die toetssom (checksum) van suid/sgid lêers" #: security/l10n.pm:53 #, c-format msgid "Check additions/removals of suid root files" msgstr "Ondersoek die byvoeg/verwydering van suid 'root'-lêers" #: security/l10n.pm:54 #, c-format msgid "Report unowned files" msgstr "Raporteer eienaarlose-lêers" #: security/l10n.pm:55 #, c-format msgid "Check files/directories writable by everybody" msgstr "Soek vir lêers/lêergidse waarna enige iemand kan skryf." #: security/l10n.pm:56 #, c-format msgid "Run chkrootkit checks" msgstr "Loop 'chkrootkit' toetste" #: 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 "" "Indien gespesifiseer, stuur die e-pos verslag na hierdie adres, so nie,\n" "stuur na 'root'" #: security/l10n.pm:59 #, c-format msgid "Report check result by mail" msgstr "Stuur toets-reslutate via e-pos" #: security/l10n.pm:60 #, c-format msgid "Run some checks against the rpm database" msgstr "Doen 'n paar toetse teen die rpm-databasis" #: security/l10n.pm:61 #, c-format msgid "Report check result to syslog" msgstr "Skryf toetsreslutate na 'n staaflêer" #: security/l10n.pm:62 #, c-format msgid "Reports check result to tty" msgstr "Stuur toets-resultate na tty" #: security/level.pm:10 #, c-format msgid "Disable msec" msgstr "" #: security/level.pm:11 #, c-format msgid "Standard" msgstr "Standaard" #: security/level.pm:12 #, fuzzy, c-format msgid "Secure" msgstr "Sekuriteit" #: security/level.pm:52 #, 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:55 #, 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 "" "Hierdie is die standaard sekuriteitsvlak wat aanbeveel word vir rekenaars\n" "wat aan die internet as 'n kliënt konnekteer." #: security/level.pm:56 #, 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 "" "Met hierdie sekuriteitsvlak kan u stelsel as 'n bediener gebruik word.\n" "Die sekuriteit is goed genoeg sodat die rekenaar konneksies van kliënte\n" "af kan aanvaar.\n" "Aandag: Indien u masjien bloot 'n kliënt op die Internet is, kan u 'n laer\n" "vlak kies." #: security/level.pm:63 #, c-format msgid "DrakSec Basic Options" msgstr "DrakSec Basiese Opsies" #: security/level.pm:66 #, c-format msgid "Please choose the desired security level" msgstr "Kies die verlangde sekuriteitsvlak" #. -PO: this string is used to properly format "<security level>: <level description>" #: security/level.pm:70 #, c-format msgid "%s: %s" msgstr "" #: security/level.pm:73 #, c-format msgid "Security Administrator:" msgstr "Sekuriteits-admin:" #: security/level.pm:74 #, c-format msgid "Login or email:" msgstr "" #: services.pm:18 #, c-format msgid "Listen and dispatch ACPI events from the kernel" msgstr "" #: services.pm:19 #, c-format msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system" msgstr "Loop die ALSA (Gevorderde Linux Klankargitektuur) klankstelsel" #: services.pm:20 #, c-format msgid "Anacron is a periodic command scheduler." msgstr "Anacron is skeduleerder vir periodiese instruksies." #: services.pm:21 #, 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 "" "Die apmd monitor die sterkte van u battery en skryf terugvoer na u\n" "staaflêers.\n" "Dit kan ook ingespan word om die rekenaar af te skakeel, sodra die battery\n" "pap word." #: services.pm:23 #, 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 "" "Loop instruksies deur 'at' geskeduleer op die tyd deur 'at'\n" "gespesifiseer.\n" "Loop ook instruksiebondels wanneer die stelsellas laag genoeg is." #: services.pm:25 #, c-format msgid "Avahi is a ZeroConf daemon which implements an mDNS stack" msgstr "" #: services.pm:26 #, c-format msgid "Set CPU frequency settings" msgstr "" #: services.pm:27 #, 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 "" "cron is die standaard UNIX program om gebruikergespesifiseerde programme\n" "op periodies geskeduleerde tye te loop. vixie cron voeg addisionele\n" " funksionaliteit\n" "by die standaard UNIX cron, insluitende beter sekuriteit en 'n kragtiger\n" "konfigurasie." #: services.pm:30 #, c-format msgid "" "Common UNIX Printing System (CUPS) is an advanced printer spooling system" msgstr "" #: services.pm:31 #, c-format msgid "Launches the graphical display manager" msgstr "" #: services.pm:32 #, 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 "" "\"FAM\" is 'n montor daemon wat verslag lewer sodra lêers verander.\n" "Word deur GNOME en KDE gebruik" #: services.pm:34 #, 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:39 #, 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 "" "GPM verleen muisvermoëns aan teksgebaseerde Linuxapplikasies soos\n" "Midnight Commander. Dit laat muisgebaseerde knip-en-plak aksies op die\n" "konsole toe asook opspringkieskaarte." #: services.pm:42 #, c-format msgid "HAL is a daemon that collects and maintains information about hardware" msgstr "" #: services.pm:43 #, c-format msgid "" "HardDrake runs a hardware probe, and optionally configures\n" "new/changed hardware." msgstr "" "HardDrake tas die hardeware af, en konfigureer\n" "nuwe/veranderde hardeware." #: services.pm:45 #, c-format msgid "" "Apache is a World Wide Web server. It is used to serve HTML files and CGI." msgstr "" "Apache is 'n WWW-bediener.\n" "Dit kan HTML-lêers uitstuur en CGI's hanteer" #: services.pm:46 #, 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 "" "Die internet-superbedienerdiensprogram (gewoonlik inetd genoem) laai 'n\n" "verskeidenheid internetdienste soos nodig. Dit is gewoonlik verantwoordelik " "vir\n" "telnet, ftp, rsh en rlogin. As inetd gesper word, sper dit ook die dienste " "waarvoor\n" "inetd verantwoordelik is." #: services.pm:50 #, c-format msgid "Automates a packet filtering firewall with ip6tables" msgstr "" #: services.pm:51 #, c-format msgid "Automates a packet filtering firewall with iptables" msgstr "" #: services.pm:52 #, c-format msgid "" "Evenly distributes IRQ load across multiple CPUs for enhanced performance" msgstr "" #: services.pm:53 #, 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 "" "Hierdie pakket laai die sleutelbordkaart soos dit in\n" "/etc/sysconfig/keyboard\n" "opgestel is. Dit kan vernader word met die kbdconfig nutsprogram.\n" "U moet dit op meeste rekenaars ongesper laat." #: services.pm:56 #, c-format msgid "" "Automatic regeneration of kernel header in /boot for\n" "/usr/include/linux/{autoconf,version}.h" msgstr "" "Automatic regeneration of kernel header in /boot for\n" "/usr/include/linux/{autoconf,version}.h" #: services.pm:58 #, c-format msgid "Automatic detection and configuration of hardware at boot." msgstr "Outospeuring en hardewarekonfigurasie met herlaaityd." #: services.pm:59 #, c-format msgid "Tweaks system behavior to extend battery life" msgstr "" #: services.pm:60 #, c-format msgid "" "Linuxconf will sometimes arrange to perform various tasks\n" "at boot-time to maintain the system configuration." msgstr "" "Linuxconf sal soms verskillende take verrig tydens die selflaai,\n" "om so die stelsel se konfigurasie te onderhou." #: services.pm:62 #, 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 "" "lpd is die drukkerdiensprogram en is nodig vir lpr om te funksioneer.\n" "Dit is 'n diens wat drukstukke na drukkers toe reguleer." #: services.pm:64 #, c-format msgid "" "Linux Virtual Server, used to build a high-performance and highly\n" "available server." msgstr "" "'Linux Virtual Server', word gebruik om 'n hoë werkverrigting\n" "en beskikbare bediener te verkry." #: services.pm:66 #, c-format msgid "Monitors the network (Interactive Firewall and wireless" msgstr "" #: services.pm:67 #, c-format msgid "Software RAID monitoring and management" msgstr "" #: services.pm:68 #, c-format msgid "" "DBUS is a daemon which broadcasts notifications of system events and other " "messages" msgstr "" #: services.pm:69 #, c-format msgid "Enables MSEC security policy on system startup" msgstr "" #: services.pm:70 #, c-format msgid "" "named (BIND) is a Domain Name Server (DNS) that is used to resolve host " "names to IP addresses." msgstr "" "named (BIND) is die domeinnaamdiens (DNS) wat gebruik word om\n" "rekenaarname na IP-adresse toe om te skakel." #: services.pm:71 #, c-format msgid "Initializes network console logging" msgstr "" #: services.pm:72 #, c-format msgid "" "Mounts and unmounts all Network File System (NFS), SMB (Lan\n" "Manager/Windows), and NCP (NetWare) mount points." msgstr "" "Heg en ontheg alle netwerklêerstels (NFS), SMB (Lan Manger/Windows)\n" "en NCP (Netware) hegpunte." #: services.pm:74 #, c-format msgid "" "Activates/Deactivates all network interfaces configured to start\n" "at boot time." msgstr "" "Aktiveer/Deaktiveer all netwerkkoppelvlakke wat opgestel is om by\n" "herlaaityf te begin." #: services.pm:76 #, c-format msgid "Requires network to be up if enabled" msgstr "" #: services.pm:77 #, c-format msgid "Wait for the hotplugged network to be up" msgstr "" #: services.pm:78 #, 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 "" "NFS is 'n populêre protokol vir lêerdeling oor TCP/IP netwerke.\n" "Hierdie diens voorsien NFS-bedienerfunksionaliteit. Dit word via\n" "die /etc/exports lêer opgestel." #: services.pm:81 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP\n" "networks. This service provides NFS file locking functionality." msgstr "" "NFS is 'n populêre protokol vir lêerdeling oor TCP/IP netwerke.\n" "Hierdie diens voorsien die NFS-lêersluitfunksionaliteit." #: services.pm:83 #, c-format msgid "Synchronizes system time using the Network Time Protocol (NTP)" msgstr "" #: services.pm:84 #, c-format msgid "" "Automatically switch on numlock key locker under console\n" "and Xorg at boot." msgstr "" "Aktiveer outomaties die numslot-sleutel vir die aantekentolk en\n" "'Xorg' tydens selflaai." #: services.pm:86 #, c-format msgid "Support the OKI 4w and compatible winprinters." msgstr "Ondersteun die OKI-4W en aanpasbare WIN-drukkers" #: services.pm:87 #, c-format msgid "Checks if a partition is close to full up" msgstr "" #: services.pm:88 #, 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 "" "PCMCIA is gewoonlik nodig om ondersteuning te verleen aan\n" "toestelle soos ethernet en modems in skootrekenaars. Dit sal nie\n" "gelaai word, behalwe as dit konfigureer is nie en dit is derhalwe\n" "veilig om op rekenaars te hê wat dit nie nodig het nie." #: services.pm:91 #, 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 "" "Portmapper bestuur RPC-konneksies wat deur protokolle soos NFS en NIS\n" "gebruik word. Portmap moet loop op rekenaars wat as bedieners vir hierdie\n" "protokolle, en ander protokolle wat die RPC meganisme gebruik, dien." #: services.pm:94 #, c-format msgid "Reserves some TCP ports" msgstr "" #: services.pm:95 #, c-format msgid "" "Postfix is a Mail Transport Agent, which is the program that moves mail from " "one machine to another." msgstr "" "Postfix is 'n e-posoordragagent (MTA). Dit is die program wat e-pos\n" "van een bediener na 'n ander oordra." #: services.pm:96 #, c-format msgid "" "Saves and restores system entropy pool for higher quality random\n" "number generation." msgstr "" "Stoor en herstel die stelsel-entropie-poel vir hoë kwaliteit,\n" "lukraak-nommergenerasie." #: services.pm:98 #, c-format msgid "" "Assign raw devices to block devices (such as hard disk drive\n" "partitions), for the use of applications such as Oracle or DVD players" msgstr "" "Ken rou-toestelle aan blok-toestelle toe ( soos bv. hardeskyf\n" "partisies), vir programme soos Oracle en DVD-spelers" #: services.pm:100 #, fuzzy, c-format msgid "Nameserver information manager" msgstr "Hardeskyfinligting" #: services.pm:101 #, 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 "" "Die 'routed' diensprogram hanteer outomatiese IP-roeteer-tabel-opdatering\n" "via die RIP protokol. Alhoewel RIP baie gebruik word in klein netwerke, is\n" "meer komplekse protokolle nodig vir komplekser netwerke." #: services.pm:104 #, c-format msgid "" "The rstat protocol allows users on a network to retrieve\n" "performance metrics for any machine on that network." msgstr "" "Die 'rstat' protokol laat gebruikers op 'n netwerk toe om\n" "werksverrigting-inligting oor enige rekenaar op die\n" "netwerk te onttrek." #: services.pm:106 #, fuzzy, 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 "" "Syslog is die fasiliteit wat baie diensprogramme gebruik om boodskappe\n" "te log na 'n verskeidenheid loglêers. Dit is altyd goed om syslog te loop." #: services.pm:107 #, c-format msgid "" "The rusers protocol allows users on a network to identify who is\n" "logged in on other responding machines." msgstr "" "Die 'rusers' protokol laat netwerkgebruikers toe om te bepaal wie\n" "aangeteken is op ander samewerkende rekenaars." #: services.pm:109 #, 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 "" "Die 'rwho' protokol laat eksterne gebruikers toe om te sien wie\n" "ingeteken is op 'n rkeneaar wat die 'rwho' diensprogram loop. (Amper soos " "'finger')." #: services.pm:111 #, c-format msgid "" "SANE (Scanner Access Now Easy) enables to access scanners, video cameras, ..." msgstr "" #: services.pm:112 #, c-format msgid "Packet filtering firewall" msgstr "" #: services.pm:113 #, 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:114 #, c-format msgid "Launch the sound system on your machine" msgstr "Laai die klankstelsel op u rekenaar" #: services.pm:115 #, c-format msgid "layer for speech analysis" msgstr "" #: services.pm:116 #, 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:117 #, 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 "" "Syslog is die fasiliteit wat baie diensprogramme gebruik om boodskappe\n" "te log na 'n verskeidenheid loglêers. Dit is altyd goed om syslog te loop." #: services.pm:119 #, c-format msgid "Moves the generated persistent udev rules to /etc/udev/rules.d" msgstr "" #: services.pm:120 #, c-format msgid "Load the drivers for your usb devices." msgstr "Laai die drywers vir u USB-toestelle" #: services.pm:121 #, c-format msgid "A lightweight network traffic monitor" msgstr "" #: services.pm:122 #, c-format msgid "Starts the X Font Server." msgstr "" #: services.pm:123 #, c-format msgid "Starts other deamons on demand." msgstr "" #: services.pm:152 #, c-format msgid "Printing" msgstr "Drukwerk" #: services.pm:155 #, c-format msgid "Internet" msgstr "Internet" #: services.pm:160 #, c-format msgid "" "_: Keep these entry short\n" "Networking" msgstr "Netwerk" #: services.pm:162 #, c-format msgid "System" msgstr "Stelsel" #: services.pm:168 #, c-format msgid "Remote Administration" msgstr "Eksterne-administrasie" #: services.pm:177 #, c-format msgid "Database Server" msgstr "Databasis-bediener" #: services.pm:188 services.pm:227 #, c-format msgid "Services" msgstr "Dienste" #: services.pm:188 #, c-format msgid "Choose which services should be automatically started at boot time" msgstr "Kies watter dienste moet outomaties begin met herlaaityd." #: services.pm:206 #, c-format msgid "%d activated for %d registered" msgstr "%d ge-aktiveer vir %d geregistreer" #: services.pm:243 #, c-format msgid "running" msgstr "aktief" #: services.pm:243 #, c-format msgid "stopped" msgstr "onaktief" #: services.pm:248 #, c-format msgid "Services and daemons" msgstr "Dienste en deamone" #: services.pm:254 #, c-format msgid "" "No additional information\n" "about this service, sorry." msgstr "" "Jammer, geen ekstra inligting\n" "rakende hierdie diens nie." #: services.pm:259 ugtk2.pm:924 #, c-format msgid "Info" msgstr "Info" #: services.pm:262 #, c-format msgid "Start when requested" msgstr "Begin sodra gevra word" #: services.pm:262 #, c-format msgid "On boot" msgstr "met herlaai" #: services.pm:280 #, c-format msgid "Start" msgstr "Begin" #: services.pm:280 #, c-format msgid "Stop" msgstr "Stop" #: standalone.pm:26 #, 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 "" "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" #: standalone.pm:45 #, 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 "" "[--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" #: standalone.pm:57 #, c-format msgid "" "[--boot]\n" "OPTIONS:\n" " --boot - enable to configure boot loader\n" "default mode: offer to configure autologin feature" msgstr "" "[--boot]\n" "OPTIONS:\n" " --boot - enable to configure boot loader\n" "default mode: offer to configure autologin feature" #: standalone.pm:61 #, fuzzy, 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 "" "[OPSIES] [PROGRAMNAAM]\n" "\n" "OPSIES:\n" " --help - vertoon hierdie hulp boodskap.\n" " --report - program behoort een van die Mageia nutsprogramme te " "wees\n" " --incedent - program behoort een van die Mageia nutsprogramme te wees" #: standalone.pm:67 #, 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 "" "[--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" #: standalone.pm:73 #, 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 "" "\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." #: standalone.pm:88 #, fuzzy, 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 "" "[OPTIONS]...\n" "Mageia 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)" #: standalone.pm:100 #, c-format msgid "[keyboard]" msgstr "[sleutelbord]" #: standalone.pm:101 #, c-format msgid "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" msgstr "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" #: standalone.pm:102 #, 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 "" "[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." #: standalone.pm:112 #, fuzzy, 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 "" "[OPTION]...\n" " --no-confirmation do not ask first confirmation question in Mageia " "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" #: standalone.pm:117 #, c-format msgid "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" msgstr "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" #: standalone.pm:118 #, c-format msgid "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" msgstr "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" #: standalone.pm:154 #, c-format msgid "" "\n" "Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " msgstr "" "\n" "Gebruik: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " #: timezone.pm:161 timezone.pm:162 #, fuzzy, c-format msgid "All servers" msgstr "Voeg bediener by" #: timezone.pm:198 #, c-format msgid "Global" msgstr "" #: timezone.pm:201 #, c-format msgid "Africa" msgstr "Afrika" #: timezone.pm:202 #, c-format msgid "Asia" msgstr "Asie" #: timezone.pm:203 #, c-format msgid "Europe" msgstr "Europa" #: timezone.pm:204 #, c-format msgid "North America" msgstr "Noord-Amerika" #: timezone.pm:205 #, fuzzy, c-format msgid "Oceania" msgstr "Masedonië" #: timezone.pm:206 #, c-format msgid "South America" msgstr "Suid-Amerika" #: timezone.pm:215 #, c-format msgid "Hong Kong" msgstr "Hong Kong" #: timezone.pm:252 #, c-format msgid "Russian Federation" msgstr "Russian Federation" #: timezone.pm:260 #, c-format msgid "Yugoslavia" msgstr "Yugoslavia" #: ugtk2.pm:812 #, c-format msgid "Is this correct?" msgstr "Is dit korrek?" #: ugtk2.pm:874 #, c-format msgid "You have chosen a file, not a directory" msgstr "" #: wizards.pm:96 #, c-format msgid "" "%s is not installed\n" "Click \"Next\" to install or \"Cancel\" to quit" msgstr "" "%s is nie geïnstalleer nie\n" "Klik \"Volgende\" om te installeer of \"Kanseleer\" om te stop" #: wizards.pm:100 #, c-format msgid "Installation failed" msgstr "Installasie het gefaal!" #~ msgid "" #~ "Launch packet filtering for Linux kernel 2.2 series, to set\n" #~ "up a firewall to protect your machine from network attacks." #~ msgstr "" #~ "Loods die filter van pakkies vir die 'Linux 2.2 kernel'-reeks, om 'n\n" #~ "vuurmuur op te stel, wat u rekenaar beskerm teen aanvalle oor die netwerk." #~ msgid "File sharing" #~ msgstr "Lêerdeling" #~ msgid "Restrict command line options" #~ msgstr "Beperk instruksielyn-opsies" #~ msgid "restrict" #~ msgstr "beperk" #~ msgid "" #~ "Option ``Restrict command line options'' is of no use without a password" #~ msgstr "" #~ "Opsie ``Beperk instruksielynopsies'' kan nie sonder wagwoord gebruikword " #~ "nie" #, fuzzy #~ msgid "Use an encrypted filesystem" #~ msgstr "U kan nie 'n lêerstelsel met enkripsie vir hegpunt %s gebruik nie." #~ msgid "" #~ "To ensure data integrity after resizing the partition(s), \n" #~ "filesystem checks will be run on your next boot into Microsoft Windows®" #~ msgstr "" #~ "Om Data-integriteit te verseker nadat u die partisie(s)\n" #~ "verklien het,sal daar toetste op u lêerstelsel(s) gedoen word,\n" #~ "volgende keer as Windows™ selflaai" #~ msgid "Use the Microsoft Windows® partition for loopback" #~ msgstr "Gebruik vir die Microsoft Windows®-partisie vir teruglus" #~ msgid "Which partition do you want to use for Linux4Win?" #~ msgstr "Watter partisie wil u vir Linux4Win gebruik?" #~ msgid "Choose the sizes" #~ msgstr "Kies die groottes" #~ msgid "Root partition size in MB: " #~ msgstr "'root'-partisiegrootte in MB:" #~ msgid "Swap partition size in MB: " #~ msgstr "Ruilpartisiegrootte in MB: " #~ msgid "" #~ "There is no FAT partition to use as loopback (or not enough space left)" #~ msgstr "" #~ "Daar is geen FAT partisies om as teruglus (nie genoeg spasie nie) te " #~ "gebruik nie" #~ msgid "" #~ "The FAT resizer is unable to handle your partition, \n" #~ "the following error occurred: %s" #~ msgstr "" #~ "Die FAT-verstellingsprogram kan nie u partisie hanteer nie.\n" #~ "Fout: %s" #~ msgid "Please log out and then use Ctrl-Alt-BackSpace" #~ msgstr "Teken uit en gebruik dan Ctrl-Alt-Backspace" #~ msgid "Welcome To Crackers" #~ msgstr "Krakers Welkom" #~ msgid "Poor" #~ msgstr "Lig" #~ msgid "High" #~ msgstr "Hoog" #~ msgid "Higher" #~ msgstr "Hoër" #~ msgid "Paranoid" #~ msgstr "Paranoïes" #~ msgid "" #~ "This level is to be used with care. It makes your system more easy to " #~ "use,\n" #~ "but very sensitive. It must not be used for a machine connected to " #~ "others\n" #~ "or to the Internet. There is no password access." #~ msgstr "" #~ "Hierdie vlak moet met sorg gebruik word. Dit maak 'n stelsel baie maklik\n" #~ "om te gebruik, maar is baie sensitief. Dit moet nie gebruik vir 'n " #~ "rekenaar\n" #~ "wat aan ander rekenaars of die internet gekoppel is nie. Daar is geen\n" #~ "wagwoord toegang nie." #~ msgid "" #~ "Passwords are now enabled, but use as a networked computer is still not " #~ "recommended." #~ msgstr "" #~ "Wagwoorde is nou ontsper, maar die gebruik as 'n netwerk-rekenaar word " #~ "nie aanbeveel nie." #~ msgid "" #~ "There are already some restrictions, and more automatic checks are run " #~ "every night." #~ msgstr "Daar is reeds beperkings, en outomatise toetse word snags gedoen." #~ msgid "" #~ "This is similar to the previous level, but the system is entirely closed " #~ "and security features are at their maximum." #~ msgstr "" #~ "Hierdie is soortgelyk aan die vorige vlak, maar die stelsel is totaal " #~ "geslote en sekuriteit is op sy maksimum." #~ msgid "" #~ "\n" #~ "Warning\n" #~ "\n" #~ "Please read carefully the terms below. If you disagree with any\n" #~ "portion, you are not allowed to install the next CD media. Press " #~ "'Refuse' \n" #~ "to continue the installation without using these media.\n" #~ "\n" #~ "\n" #~ "Some components contained in the next CD media are not governed\n" #~ "by the GPL License or similar agreements. Each such component is then\n" #~ "governed by the terms and conditions of its own specific license. \n" #~ "Please read carefully and comply with such specific licenses before \n" #~ "you use or redistribute the said components. \n" #~ "Such licenses will in general prevent the transfer, duplication \n" #~ "(except for backup purposes), redistribution, reverse engineering, \n" #~ "de-assembly, de-compilation or modification of the component. \n" #~ "Any breach of agreement will immediately terminate your rights under \n" #~ "the specific license. Unless the specific license terms grant you such\n" #~ "rights, you usually cannot install the programs on more than one\n" #~ "system, or adapt it to be used on a network. In doubt, please contact \n" #~ "directly the distributor or editor of the component. \n" #~ "Transfer to third parties or copying of such components including the \n" #~ "documentation is usually forbidden.\n" #~ "\n" #~ "\n" #~ "All rights to the components of the next CD media belong to their \n" #~ "respective authors and are protected by intellectual property and \n" #~ "copyright laws applicable to software programs.\n" #~ msgstr "" #~ "\n" #~ "Warning\n" #~ "\n" #~ "Please read carefully the terms below. If you disagree with any\n" #~ "portion, you are not allowed to install the next CD media. Press " #~ "'Refuse' \n" #~ "to continue the installation without using these media.\n" #~ "\n" #~ "\n" #~ "Some components contained in the next CD media are not governed\n" #~ "by the GPL License or similar agreements. Each such component is then\n" #~ "governed by the terms and conditions of its own specific license. \n" #~ "Please read carefully and comply with such specific licenses before \n" #~ "you use or redistribute the said components. \n" #~ "Such licenses will in general prevent the transfer, duplication \n" #~ "(except for backup purposes), redistribution, reverse engineering, \n" #~ "de-assembly, de-compilation or modification of the component. \n" #~ "Any breach of agreement will immediately terminate your rights under \n" #~ "the specific license. Unless the specific license terms grant you such\n" #~ "rights, you usually cannot install the programs on more than one\n" #~ "system, or adapt it to be used on a network. In doubt, please contact \n" #~ "directly the distributor or editor of the component. \n" #~ "Transfer to third parties or copying of such components including the \n" #~ "documentation is usually forbidden.\n" #~ "\n" #~ "\n" #~ "All rights to the components of the next CD media belong to their \n" #~ "respective authors and are protected by intellectual property and \n" #~ "copyright laws applicable to software programs.\n" #~ msgid "Use libsafe for servers" #~ msgstr "Gebruik libsafe vir bedieners" #~ msgid "" #~ "A library which defends against buffer overflow and format string attacks." #~ msgstr "" #~ "'n Programmateek wat beskerm teen buffer-vloede en formaat-string " #~ "aanvalle." #~ msgid "LILO/grub Installation" #~ msgstr "LILO/grub installasie" #~ msgid "Precise RAM size if needed (found %d MB)" #~ msgstr "Presiese RAM grootte indien nodig (%d MB bespeur)" #~ msgid "Give the ram size in MB" #~ msgstr "Gee die geheuegrootte in MB" #~ msgid "" #~ "If you plan to use aboot, be careful to leave a free space (2048 sectors " #~ "is enough)\n" #~ "at the beginning of the disk" #~ msgstr "" #~ "Indien u beplan om 'aboot' te gebruik, los spasie aan die begin\n" #~ "van die skyf. (2048 sektors is genoeg)." #~ msgid "Security level" #~ msgstr "Sekuriteitsvlak" #~ msgid "Expand Tree" #~ msgstr "Maak boom oop" #~ msgid "Collapse Tree" #~ msgstr "Maak boom toe" #~ msgid "Toggle between flat and group sorted" #~ msgstr "Skakel tussen plat- en groepsortering" #~ msgid "Choose action" #~ msgstr "Kies aksie" #, fuzzy #~ msgid "Active Directory with SFU" #~ msgstr "Herstel alle rugsteune" #, fuzzy #~ msgid "Active Directory with Winbind" #~ msgstr "Herstel alle rugsteune" #, fuzzy #~ msgid "Active Directory with SFU:" #~ msgstr "Herstel alle rugsteune" #, fuzzy #~ msgid "Active Directory with Winbind:" #~ msgstr "Herstel alle rugsteune" #~ msgid "Authentication LDAP" #~ msgstr "LDAP-magtiging" #~ msgid "TLS" #~ msgstr "TLS" #~ msgid "SSL" #~ msgstr "Ssl" #, fuzzy #~ msgid "Authentication Active Directory" #~ msgstr "Magtigings-metode" #, fuzzy #~ msgid "LDAP users database" #~ msgstr "Databasis" #~ msgid "Authentication NIS" #~ msgstr "NIS-magtiging" #~ msgid "" #~ "For this to work for a W2K PDC, you will probably need to have the admin " #~ "run: C:\\>net localgroup \"Pre-Windows 2000 Compatible Access\" everyone /" #~ "add and reboot the server.\n" #~ "You will also need the username/password of a Domain Admin to join the " #~ "machine to the Windows(TM) domain.\n" #~ "If networking is not yet enabled, Drakx will attempt to join the domain " #~ "after the network setup step.\n" #~ "Should this setup fail for some reason and domain authentication is not " #~ "working, run 'smbpasswd -j DOMAIN -U USER%%PASSWORD' using your Windows" #~ "(tm) Domain, and Admin Username/Password, after system boot.\n" #~ "The command 'wbinfo -t' will test whether your authentication secrets are " #~ "good." #~ msgstr "" #~ "Om hierdie te laat werk met 'n W2K PDC, moet u die volgende doen: As " #~ "admin voer die volgende opdrag uit, 'C:\\>net localgroup \"Pre-Windows " #~ "2000 Compatibla Acces\" everyone' en herlaai die bediener.\n" #~ "U moet ook die gebruikernaam/wagwoord van die 'Domain Admin' hê om " #~ "hierdie masjien aan te sluit by die Windows(TM)-domein.\n" #~ "Indien die netwerk nog nie opgestel is nie, sal Drakx poog om by die " #~ "domein aan te sluit, as die netwerk reg is.\n" #~ "Sou dit nie werk nie, kan u later 'smbpasswd -j DOMEIN -U GEBRUIKER%" #~ "%WAGWOORD' op die instruksielyn as die supergebruiker intik. Die Windows" #~ "(tm) Domein, en Admin gebruiker/wagwoord moet gebruik word.\n" #~ "Die opdrag 'wbinfo -t' sal u 'authentication secrets' ondersoek." #~ msgid "Authentication Windows Domain" #~ msgstr "Magtiging deur Windows-domein" #~ msgid "Undo" #~ msgstr "Herroep" #~ msgid "Save partition table" #~ msgstr "Skryf partisielys" #~ msgid "Restore partition table" #~ msgstr "Herstel partisielys" #~ msgid "" #~ "The backup partition table has not the same size\n" #~ "Still continue?" #~ msgstr "" #~ "Die rugsteunpartisielys se grootte verskil\n" #~ "Wil u voortgaan?" #~ msgid "Info: " #~ msgstr "Info:" #~ msgid "Unknown driver" #~ msgstr "Onbekende drywer" #~ msgid "Error reading file %s" #~ msgstr "Fout met die lees van lêer %s" #~ msgid "Restoring from file %s failed: %s" #~ msgstr "Herstel van léer %s het gefaal: %s" #~ msgid "Bad backup file" #~ msgstr "Korrupte rugsteunlêer" #~ msgid "Error writing to file %s" #~ msgstr "Fout met die skryf van %s" #~ msgid "Error: The \"%s\" driver for your sound card is unlisted" #~ msgstr "Fout: Die \"%s\" drywer vir u klankkaart in nie gelys nie" #~ msgid "Ext2" #~ msgstr "Ext2" #~ msgid "Journalised FS" #~ msgstr "Gejoernaliseerde FS" #~ msgid "Starts the X Font Server (this is mandatory for Xorg to run)." #~ msgstr "Laai die X-fontbediener (dis nodig vir Xorg)." #~ msgid "Add user" #~ msgstr "Voeg gebruiker by" #~ msgid "Accept user" #~ msgstr "Aanvaar gebruiker" #, fuzzy #~ msgid "" #~ "Do not update directory inode access times on this filesystem\n" #~ "(e.g, for faster access on the news spool to speed up news servers)." #~ msgstr "" #~ "Moet nie 'inode'-toegangstye op hierdie lêerstelsel opdateer nie\n" #~ "(bv. maak die toegang na die nuus-spoel vinniger, wat weer die\n" #~ "nuus-bediener vinniger maak)" #~ msgid "Rescue partition table" #~ msgstr "Reddingspartisielys" #~ msgid "Removable media automounting" #~ msgstr "Outoheg van verwyderbare media" #~ msgid "Trying to rescue partition table" #~ msgstr "Probeer die partisielys red" #~ msgid "Accept/Refuse bogus IPv4 error messages." #~ msgstr "Aanvaar/Weier snert IPv4-foutboodskappe." #~ msgid "Accept/Refuse broadcasted icmp echo." #~ msgstr "Aanvaar/Weier uitgesaaide icmp-ego's" #~ msgid "Accept/Refuse icmp echo." #~ msgstr "Aanvaar/Weier icmp-ego's." #~ msgid "Allow/Forbid remote root login." #~ msgstr "Laat toe/Verbied 'root' deur die netwerk in te teken." #~ msgid "Enable/Disable IP spoofing protection." #~ msgstr "Ontsper/Versper \"IP spoofing\" beskerming." #~ msgid "Enable/Disable libsafe if libsafe is found on the system." #~ msgstr "Versper/Ontsper 'libsafe' indien 'libsafe' teenwoordig is." #~ msgid "Enable/Disable the logging of IPv4 strange packets." #~ msgstr "Versper/Ontsper aanteken van vreemde IPv4-pakkies in staaflêer." #~ msgid "Enable/Disable msec hourly security check." #~ msgstr "Versper/Ontsper msec se uurlikse toets." #~ msgid "Number of capture buffers:" #~ msgstr "Aantal ontvang-buffers:" #~ msgid "number of capture buffers for mmap'ed capture" #~ msgstr "aantal ontvang-buffers vir nmap se vangs" #~ msgid "PLL setting:" #~ msgstr "PLL verstelling:" #~ msgid "Radio support:" #~ msgstr "Ondersteunig vir Radio:" #~ msgid " [--skiptest] [--cups] [--lprng] [--lpd] [--pdq]" #~ msgstr " [--skiptest] [--cups] [--lprng] [--lpd] [--pdq]"