summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/slang/slparse.c
blob: bc709d1fbe3587a1a9b22742c4724f4b08230476 (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
/* Copyright (c) 1998, 1999, 2001 John E. Davis
 * This file is part of the S-Lang library.
 *
 * You may distribute under the terms of either the GNU General Public
 * License or the Perl Artistic License.
 */

#include "slinclud.h"

#include "slang.h"
#include "_slang.h"

static SLang_Load_Type *LLT;
int _SLang_Compile_Line_Num_Info;

static void free_token (_SLang_Token_Type *t)
{
   register unsigned int nrefs = t->num_refs;

   if (nrefs == 0)
     return;

   if (nrefs == 1)
     {
	if (t->free_sval_flag)
	  {
	     if (t->type == BSTRING_TOKEN)
	       SLbstring_free (t->v.b_val);
	     else
	       _SLfree_hashed_string (t->v.s_val, strlen (t->v.s_val), t->hash);
	     t->v.s_val = NULL;
	  }
     }

   t->num_refs = nrefs - 1;
}

static void init_token (_SLang_Token_Type *t)
{
   memset ((char *) t, 0, sizeof (_SLang_Token_Type));
#if _SLANG_HAS_DEBUG_CODE
   t->line_number = -1;
#endif
}

/* Allow room for one push back of a token.  This is necessary for
 * multiple assignment.
 */
static unsigned int Use_Next_Token;
static _SLang_Token_Type Next_Token;
#if _SLANG_HAS_DEBUG_CODE
static int Last_Line_Number = -1;
#endif

static int unget_token (_SLang_Token_Type *ctok)
{
   if (SLang_Error)
     return -1;
   if (Use_Next_Token != 0)
     {
	_SLparse_error ("unget_token failed", ctok, 0);
	return -1;
     }

   Use_Next_Token++;
   Next_Token = *ctok;
   init_token (ctok);
   return 0;
}

static int get_token (_SLang_Token_Type *ctok)
{
   if (ctok->num_refs)
     free_token (ctok);

   if (Use_Next_Token)
     {
	Use_Next_Token--;
	*ctok = Next_Token;
	return ctok->type;
     }

   return _SLget_token (ctok);
}

static int compile_token (_SLang_Token_Type *t)
{
#if _SLANG_HAS_DEBUG_CODE
   if (_SLang_Compile_Line_Num_Info
       && (t->line_number != Last_Line_Number)
       && (t->line_number != -1))
     {
	_SLang_Token_Type tok;
	tok.type = LINE_NUM_TOKEN;
	tok.v.long_val = Last_Line_Number = t->line_number;
	(*_SLcompile_ptr) (&tok);
     }
#endif
   (*_SLcompile_ptr) (t);
   return 0;
}

typedef struct
{
#define USE_PARANOID_MAGIC	0
#if USE_PARANOID_MAGIC
   unsigned long magic;
#endif
   _SLang_Token_Type *stack;
   unsigned int len;
   unsigned int size;
}
Token_List_Type;

#define MAX_TOKEN_LISTS 16
static Token_List_Type Token_List_Stack [MAX_TOKEN_LISTS];
static unsigned int Token_List_Stack_Depth = 0;
static Token_List_Type *Token_List = NULL;

static void init_token_list (Token_List_Type *t)
{
   t->size = 0;
   t->len = 0;
   t->stack = NULL;
#if USE_PARANOID_MAGIC
   t->magic = 0xABCDEF12;
#endif
}

static void free_token_list (Token_List_Type *t)
{
   _SLang_Token_Type *s;

   if (t == NULL)
     return;
#if USE_PARANOID_MAGIC
   if (t->magic != 0xABCDEF12)
     {
	SLang_doerror ("Magic error.");
	return;
     }
#endif
   s = t->stack;
   if (s != NULL)
     {
	_SLang_Token_Type *smax = s + t->len;
	while (s != smax)
	  {
	     if (s->num_refs) free_token (s);
	     s++;
	  }

	SLfree ((char *) t->stack);
     }

   memset ((char *) t, 0, sizeof (Token_List_Type));
}

static Token_List_Type *push_token_list (void)
{
   if (Token_List_Stack_Depth == MAX_TOKEN_LISTS)
     {
	_SLparse_error ("Token list stack size exceeded", NULL, 0);
	return NULL;
     }

   Token_List = Token_List_Stack + Token_List_Stack_Depth;
   Token_List_Stack_Depth++;
   init_token_list (Token_List);
   return Token_List;
}

static int pop_token_list (int do_free)
{
   if (Token_List_Stack_Depth == 0)
     {
	if (SLang_Error == 0)
	  _SLparse_error ("Token list stack underflow", NULL, 0);
	return -1;
     }
   Token_List_Stack_Depth--;

   if (do_free) free_token_list (Token_List);

   if (Token_List_Stack_Depth != 0)
     Token_List = Token_List_Stack + (Token_List_Stack_Depth - 1);
   else
     Token_List = NULL;

   return 0;
}

static int check_token_list_space (Token_List_Type *t, unsigned int delta_size)
{
   _SLang_Token_Type *st;
   unsigned int len;
#if USE_PARANOID_MAGIC
   if (t->magic != 0xABCDEF12)
     {
	SLang_doerror ("Magic error.");
	return -1;
     }
#endif
   len = t->len + delta_size;
   if (len <= t->size) return 0;

   if (delta_size < 4)
     {
	delta_size = 4;
	len = t->len + delta_size;
     }

   st = (_SLang_Token_Type *) SLrealloc((char *) t->stack,
					len * sizeof(_SLang_Token_Type));
   if (st == NULL)
     {
	_SLparse_error ("Malloc error", NULL, 0);
	return -1;
     }

   memset ((char *) (st + t->len), 0, delta_size);

   t->stack = st;
   t->size = len;
   return 0;
}

static int append_token (_SLang_Token_Type *t)
{
   if (-1 == check_token_list_space (Token_List, 1))
     return -1;

   Token_List->stack [Token_List->len] = *t;
   Token_List->len += 1;
   t->num_refs = 0;		       /* stealing it */
   return 0;
}

static int append_token_of_type (unsigned char t)
{
   _SLang_Token_Type *tok;

   if (-1 == check_token_list_space (Token_List, 1))
     return -1;

   /* The memset when the list was created ensures that the other fields
    * are properly initialized.
    */
   tok = Token_List->stack + Token_List->len;
   init_token (tok);
   tok->type = t;
   Token_List->len += 1;
   return 0;
}

static _SLang_Token_Type *get_last_token (void)
{
   unsigned int len;

   if ((Token_List == NULL)
       || (0 == (len = Token_List->len)))
     return NULL;

   len--;
   return Token_List->stack + len;
}

/* This function does NOT free the list. */
static int compile_token_list_with_fun (int dir, Token_List_Type *list,
					int (*f)(_SLang_Token_Type *))
{
   _SLang_Token_Type *t0, *t1;

   if (list == NULL)
     return -1;

   if (f == NULL)
     f = compile_token;

   t0 = list->stack;
   t1 = t0 + list->len;

   if (dir < 0)
     {
	/* backwards */

	while ((SLang_Error == 0) && (t1 > t0))
	  {
	     t1--;
	     (*f) (t1);
	  }
	return 0;
     }

   /* forward */
   while ((SLang_Error == 0) && (t0 < t1))
     {
	(*f) (t0);
	t0++;
     }
   return 0;
}

static int compile_token_list (void)
{
   if (Token_List == NULL)
     return -1;

   compile_token_list_with_fun (1, Token_List, NULL);
   pop_token_list (1);
   return 0;
}

/* Take all elements in the list from pos2 to the end and exchange them
 * with the elements at pos1, e.g.,
 * ...ABCDEabc ==> ...abcABCDE
 * where pos1 denotes A and pos2 denotes a.
 */
static int token_list_element_exchange (unsigned int pos1, unsigned int pos2)
{
   _SLang_Token_Type *s, *s1, *s2;
   unsigned int len, nloops;

   if (Token_List == NULL)
     return -1;

   s = Token_List->stack;
   len = Token_List->len;

   if ((s == NULL) || (len == 0)
       || (pos2 >= len))
     return -1;

   /* This may not be the most efficient algorithm but the number to swap
    * is most-likely going to be small, e.g, 3
    * The algorithm is to rotate the list.  The particular rotation
    * direction was chosen to make insert_token fast.
    * It works like:
    * @ ABCabcde --> BCabcdeA --> CabcdeAB -->  abcdefAB
    * which is optimal for Abcdef sequence produced by function calls.
    *
    * Profiling indicates that nloops is almost always 1, whereas the inner
    * loop can loop many times (e.g., 9 times).
    */

   s2 = s + (len - 1);
   s1 = s + pos1;
   nloops = pos2 - pos1;

   while (nloops)
     {
	_SLang_Token_Type save;

	s = s1;
	save = *s;

	while (s < s2)
	  {
	     *s = *(s + 1);
	     s++;
	  }
	*s = save;

	nloops--;
     }
   return 0;
}

#if 0
static int insert_token (_SLang_Token_Type *t, unsigned int pos)
{
   if (-1 == append_token (t))
     return -1;

   return token_list_element_exchange (pos, Token_List->len - 1);
}
#endif
static void compile_token_of_type (unsigned char t)
{
   _SLang_Token_Type tok;

#if _SLANG_HAS_DEBUG_CODE
   tok.line_number = -1;
#endif
   tok.type = t;
   compile_token(&tok);
}

static void statement (_SLang_Token_Type *);
static void compound_statement (_SLang_Token_Type *);
static void expression_with_parenthesis (_SLang_Token_Type *);
static void handle_semicolon (_SLang_Token_Type *);
static void statement_list (_SLang_Token_Type *);
static void variable_list (_SLang_Token_Type *, unsigned char);
static void struct_declaration (_SLang_Token_Type *);
static void define_function_args (_SLang_Token_Type *);
static void typedef_definition (_SLang_Token_Type *);
static void function_args_expression (_SLang_Token_Type *, int);
static void expression (_SLang_Token_Type *);
static void expression_with_commas (_SLang_Token_Type *, int);
static void simple_expression (_SLang_Token_Type *);
static void unary_expression (_SLang_Token_Type *);
static void postfix_expression (_SLang_Token_Type *);
static int check_for_lvalue (unsigned char, _SLang_Token_Type *);
/* static void primary_expression (_SLang_Token_Type *); */
static void block (_SLang_Token_Type *);
static void inline_array_expression (_SLang_Token_Type *);
static void array_index_expression (_SLang_Token_Type *);
static void do_multiple_assignment (_SLang_Token_Type *);
static void try_multiple_assignment (_SLang_Token_Type *);
#if 0
static void not_implemented (char *what)
{
   char err [256];
   sprintf (err, "Expression not implemented: %s", what);
   _SLparse_error (err, NULL, 0);
}
#endif
static void rpn_parse_line (_SLang_Token_Type *tok)
{
   do
     {
	  /* multiple RPN tokens possible when the file looks like:
	   * . <end of line>
	   * . <end of line>
	   */
	if (tok->type != RPN_TOKEN)
	  compile_token (tok);
	free_token (tok);
     }
   while (EOF_TOKEN != _SLget_rpn_token (tok));
}

static int get_identifier_token (_SLang_Token_Type *tok)
{
   if (IDENT_TOKEN == get_token (tok))
     return IDENT_TOKEN;

   _SLparse_error ("Expecting identifier", tok, 0);
   return tok->type;
}

static void define_function (_SLang_Token_Type *ctok, unsigned char type)
{
   _SLang_Token_Type fname;
   
   switch (type)
     {
      case STATIC_TOKEN:
	type = DEFINE_STATIC_TOKEN;
	break;
	
      case PUBLIC_TOKEN:
	type = DEFINE_PUBLIC_TOKEN;
	break;
	
      case PRIVATE_TOKEN:
	type = DEFINE_PRIVATE_TOKEN;
     }

   init_token (&fname);
   if (IDENT_TOKEN != get_identifier_token (&fname))
     {
	free_token (&fname);
	return;
     }

   compile_token_of_type(OPAREN_TOKEN);
   get_token (ctok);
   define_function_args (ctok);
   compile_token_of_type(FARG_TOKEN);

   if (ctok->type == OBRACE_TOKEN)
     compound_statement(ctok);

   else if (ctok->type != SEMICOLON_TOKEN)
     {
	_SLparse_error("Expecting {", ctok, 0);
	free_token (&fname);
	return;
     }

   fname.type = type;
   compile_token (&fname);
   free_token (&fname);
}

/* statement:
 *	 compound-statement
 *	 if ( expression ) statement
 *	 if ( expression ) statement else statement
 *	 !if ( expression ) statement
 *	 loop ( expression ) statement
 *	 _for ( expression ) statement
 *       foreach ( expression ) statement
 *       foreach (expression ) using (expression-list) statement
 *	 while ( expression ) statement
 *	 do statement while (expression) ;
 *	 for ( expressionopt ; expressionopt ; expressionopt ) statement
 *	 ERROR_BLOCK statement
 *	 EXIT_BLOCK statement
 *	 USER_BLOCK0 statement
 *	 USER_BLOCK1 statement
 *	 USER_BLOCK2 statement
 *	 USER_BLOCK3 statement
 *	 USER_BLOCK4 statement
 *	 forever statement
 *	 break ;
 *	 continue ;
 *	 return expressionopt ;
 *	 variable variable-list ;
 *	 struct struct-decl ;
 *	 define identifier function-args ;
 *	 define identifier function-args compound-statement
 *	 switch ( expression ) statement
 *	 rpn-line
 *	 at-line
 *	 push ( expression )
 *	 ( expression ) = expression ;
 *	 expression ;
 *       expression :
 */

/* Note: This function does not return with a new token.  It is up to the
 * calling routine to handle that.
 */
static void statement (_SLang_Token_Type *ctok)
{
   unsigned char type;

   if (SLang_Error)
     return;

   LLT->parse_level += 1;

   switch (ctok->type)
     {
      case OBRACE_TOKEN:
	compound_statement (ctok);
	break;

      case IF_TOKEN:
      case IFNOT_TOKEN:
	type = ctok->type;
	get_token (ctok);
	expression_with_parenthesis (ctok);
	block (ctok);

	if (ELSE_TOKEN != get_token (ctok))
	  {
	     compile_token_of_type (type);
	     unget_token (ctok);
	     break;
	  }
	get_token (ctok);
	block (ctok);
	if (type == IF_TOKEN) type = ELSE_TOKEN; else type = NOTELSE_TOKEN;
	compile_token_of_type (type);
	break;

      /* case IFNOT_TOKEN: */
      case LOOP_TOKEN:
      case _FOR_TOKEN:
	type = ctok->type;
	get_token (ctok);
	expression_with_parenthesis (ctok);
	block (ctok);
	compile_token_of_type (type);
	break;

      case FOREACH_TOKEN:
	get_token (ctok);
	expression_with_parenthesis (ctok);

	if (NULL == push_token_list ())
	  break;

	append_token_of_type (ARG_TOKEN);
	if (ctok->type == USING_TOKEN)
	  {
	     if (OPAREN_TOKEN != get_token (ctok))
	       {
		  _SLparse_error ("Expected 'using ('", ctok, 0);
		  break;
	       }
	     get_token (ctok);
	     function_args_expression (ctok, 0);
	  }
	append_token_of_type (EARG_TOKEN);

	compile_token_list ();

	block (ctok);
	compile_token_of_type (FOREACH_TOKEN);
	break;

      case WHILE_TOKEN:
	get_token (ctok);
	compile_token_of_type (OBRACE_TOKEN);
	expression_with_parenthesis (ctok);
	compile_token_of_type (CBRACE_TOKEN);
	block (ctok);
	compile_token_of_type (WHILE_TOKEN);
	break;

      case DO_TOKEN:
	get_token (ctok);
	block (ctok);

	if (WHILE_TOKEN != get_token (ctok))
	  {
	     _SLparse_error("Expecting while", ctok, 0);
	     break;
	  }

	get_token (ctok);

	compile_token_of_type (OBRACE_TOKEN);
	expression_with_parenthesis (ctok);
	compile_token_of_type (CBRACE_TOKEN);
	compile_token_of_type (DOWHILE_TOKEN);
	handle_semicolon (ctok);
	break;

      case FOR_TOKEN:

	/* Look for (exp_opt ; exp_opt ; exp_opt ) */

	if (OPAREN_TOKEN != get_token (ctok))
	  {
	     _SLparse_error("Expecting (.", ctok, 0);
	     break;
	  }

	if (NULL == push_token_list ())
	  break;

	append_token_of_type (OBRACE_TOKEN);
	if (SEMICOLON_TOKEN != get_token (ctok))
	  {
	     expression (ctok);
	     if (ctok->type != SEMICOLON_TOKEN)
	       {
		  _SLparse_error("Expecting ;", ctok, 0);
		  break;
	       }
	  }
	append_token_of_type (CBRACE_TOKEN);

	append_token_of_type (OBRACE_TOKEN);
	if (SEMICOLON_TOKEN != get_token (ctok))
	  {
	     expression (ctok);
	     if (ctok->type != SEMICOLON_TOKEN)
	       {
		  _SLparse_error("Expecting ;", ctok, 0);
		  break;
	       }
	  }
	append_token_of_type (CBRACE_TOKEN);

	append_token_of_type (OBRACE_TOKEN);
	if (CPAREN_TOKEN != get_token (ctok))
	  {
	     expression (ctok);
	     if (ctok->type != CPAREN_TOKEN)
	       {
		  _SLparse_error("Expecting ).", ctok, 0);
		  break;
	       }
	  }
	append_token_of_type (CBRACE_TOKEN);

	compile_token_list ();

	get_token (ctok);
	block (ctok);
	compile_token_of_type (FOR_TOKEN);
	break;

      case ERRBLK_TOKEN:
      case EXITBLK_TOKEN:
      case USRBLK0_TOKEN:
      case USRBLK1_TOKEN:
      case USRBLK2_TOKEN:
      case USRBLK3_TOKEN:
      case USRBLK4_TOKEN:
      case FOREVER_TOKEN:
	type = ctok->type;
	get_token (ctok);
	block (ctok);
	compile_token_of_type (type);
	break;

      case BREAK_TOKEN:
      case CONT_TOKEN:
	compile_token_of_type (ctok->type);
	get_token (ctok);
	handle_semicolon (ctok);
	break;

      case RETURN_TOKEN:
	if (SEMICOLON_TOKEN != get_token (ctok))
	  {
	     if (NULL == push_token_list ())
	       break;

	     expression (ctok);

	     if (ctok->type != SEMICOLON_TOKEN)
	       {
		  _SLparse_error ("Expecting ;", ctok, 0);
		  break;
	       }
	     compile_token_list ();
	  }
	compile_token_of_type (RETURN_TOKEN);
	handle_semicolon (ctok);
	break;

      case STATIC_TOKEN:
      case PRIVATE_TOKEN:
      case PUBLIC_TOKEN:
	type = ctok->type;
	get_token (ctok);
	if (ctok->type == VARIABLE_TOKEN)
	  {
	     get_token (ctok);
	     variable_list (ctok, type);
	     handle_semicolon (ctok);
	     break;
	  }
	if (ctok->type == DEFINE_TOKEN)
	  {
	     define_function (ctok, type);
	     break;
	  }
	_SLparse_error ("Expecting 'variable' or 'define'", ctok, 0);
	break;

      case VARIABLE_TOKEN:
	get_token (ctok);
	variable_list (ctok, OBRACKET_TOKEN);
	handle_semicolon (ctok);
	break;

      case TYPEDEF_TOKEN:
	get_token (ctok);
	if (NULL == push_token_list ())
	  break;
	typedef_definition (ctok);
	compile_token_list ();

	handle_semicolon (ctok);
	break;

      case DEFINE_TOKEN:
	define_function (ctok, DEFINE_TOKEN);
	break;

      case SWITCH_TOKEN:
	get_token (ctok);
	expression_with_parenthesis (ctok);

	while ((SLang_Error == 0)
	       && (OBRACE_TOKEN == ctok->type))
	  {
	     compile_token_of_type (OBRACE_TOKEN);
	     compound_statement (ctok);
	     compile_token_of_type (CBRACE_TOKEN);
	     get_token (ctok);
	  }
	compile_token_of_type (SWITCH_TOKEN);
	unget_token (ctok);
	break;

      case EOF_TOKEN:
	break;
#if 0
      case PUSH_TOKEN:
	get_token (ctok);
	expression_list_with_parenthesis (ctok);
	handle_semicolon (ctok);
	break;
#endif

      case SEMICOLON_TOKEN:
	handle_semicolon (ctok);
	break;

      case RPN_TOKEN:
	if (POUND_TOKEN == get_token (ctok))
	  _SLcompile_byte_compiled ();
	else if (ctok->type != EOF_TOKEN)
	  rpn_parse_line (ctok);
	break;

      case OPAREN_TOKEN:	       /* multiple assignment */
	try_multiple_assignment (ctok);
	if (ctok->type == COLON_TOKEN)
	  compile_token_of_type (COLON_TOKEN);
	else handle_semicolon (ctok);
	break;

      default:

	if (NULL == push_token_list ())
	  break;

	expression (ctok);
	compile_token_list ();

	if (ctok->type == COLON_TOKEN)
	  compile_token_of_type (COLON_TOKEN);
	else handle_semicolon (ctok);
	break;
     }

   LLT->parse_level -= 1;
}

static void block (_SLang_Token_Type *ctok)
{
   compile_token_of_type (OBRACE_TOKEN);
   statement (ctok);
   compile_token_of_type (CBRACE_TOKEN);
}

/*
 * statement-list:
 *	 statement
 *	 statement-list statement
 */
static void statement_list (_SLang_Token_Type *ctok)
{
   while ((SLang_Error == 0)
	  && (ctok->type != CBRACE_TOKEN)
	  && (ctok->type != EOF_TOKEN))
     {
	statement(ctok);
	get_token (ctok);
     }
}

/* compound-statement:
 *	 { statement-list }
 */
static void compound_statement (_SLang_Token_Type *ctok)
{
   /* ctok->type is OBRACE_TOKEN here */
   get_token (ctok);
   statement_list(ctok);
   if (CBRACE_TOKEN != ctok->type)
     {
	_SLparse_error ("Expecting '}'", ctok, 0);
	return;
     }
}

/* This function is only called from statement. */
static void expression_with_parenthesis (_SLang_Token_Type *ctok)
{
   if (ctok->type != OPAREN_TOKEN)
     {
	_SLparse_error("Expecting (", ctok, 0);
	return;
     }

   if (NULL == push_token_list ())
     return;

   get_token (ctok);
   expression (ctok);

   if (ctok->type != CPAREN_TOKEN)
     _SLparse_error("Expecting )", ctok, 0);

   compile_token_list ();

   get_token (ctok);
}

static void handle_semicolon (_SLang_Token_Type *ctok)
{
   if ((ctok->type == SEMICOLON_TOKEN)
       || (ctok->type == EOF_TOKEN))
     return;

   _SLparse_error ("Expecting ;", ctok, 0);
}

void _SLparse_start (SLang_Load_Type *llt)
{
   _SLang_Token_Type ctok;
   SLang_Load_Type *save_llt;
   unsigned int save_use_next_token;
   _SLang_Token_Type save_next_token;
   Token_List_Type *save_list;
#if _SLANG_HAS_DEBUG_CODE
   int save_last_line_number = Last_Line_Number;

   Last_Line_Number = -1;
#endif
   save_use_next_token = Use_Next_Token;
   save_next_token = Next_Token;
   save_list = Token_List;
   save_llt = LLT;
   LLT = llt;

   init_token (&Next_Token);
   Use_Next_Token = 0;
   init_token (&ctok);
   get_token (&ctok);

   llt->parse_level = 0;
   statement_list (&ctok);

   if ((SLang_Error == 0)
       && (ctok.type != EOF_TOKEN))
     _SLparse_error ("Parse ended prematurely", &ctok, 0);
   

   if (SLang_Error)
     {
	if (SLang_Error < 0)	       /* severe error */
	  save_list = NULL;

	while (Token_List != save_list)
	  {
	     if (-1 == pop_token_list (1))
	       break;		       /* ??? when would this happen? */
	  }
     }

   free_token (&ctok);
   LLT = save_llt;
   if (Use_Next_Token)
     free_token (&Next_Token);
   Use_Next_Token = save_use_next_token;
   Next_Token = save_next_token;
#if _SLANG_HAS_DEBUG_CODE
   Last_Line_Number = save_last_line_number;
#endif
}

/* variable-list:
 * 	variable-decl
 * 	variable-decl variable-list
 *
 * variable-decl:
 * 	identifier
 * 	identifier = simple-expression
 */
static void variable_list (_SLang_Token_Type *name_token, unsigned char variable_type)
{
   int declaring;
   _SLang_Token_Type tok;

   if (name_token->type != IDENT_TOKEN)
     {
	_SLparse_error ("Expecting a variable name", name_token, 0);
	return;
     }

   declaring = 0;
   do
     {
	if (declaring == 0)
	  {
	     declaring = 1;
	     compile_token_of_type (variable_type);
	  }

	compile_token (name_token);

	init_token (&tok);
	if (ASSIGN_TOKEN == get_token (&tok))
	  {
	     compile_token_of_type (CBRACKET_TOKEN);
	     declaring = 0;

	     get_token (&tok);

	     push_token_list ();
	     simple_expression (&tok);
	     compile_token_list ();

	     name_token->type = _SCALAR_ASSIGN_TOKEN;
	     compile_token (name_token);
	  }

	free_token (name_token);
	*name_token = tok;
     }
   while ((name_token->type == COMMA_TOKEN)
	  && (IDENT_TOKEN == get_token (name_token)));

   if (declaring) compile_token_of_type (CBRACKET_TOKEN);
}

/* struct-declaration:
 * 	struct { struct-field-list };
 *
 * struct-field-list:
 * 	struct-field-name , struct-field-list
 * 	struct-field-name
 *
 * Generates code: "field-name-1" ... "field-name-N" N STRUCT_TOKEN
 */
static void struct_declaration (_SLang_Token_Type *ctok)
{
   int n;
   _SLang_Token_Type num_tok;

   if (ctok->type != OBRACE_TOKEN)
     {
	_SLparse_error ("Expecting {", ctok, 0);
	return;
     }

   n = 0;
   while (IDENT_TOKEN == get_token (ctok))
     {
	n++;
	ctok->type = STRING_TOKEN;
	append_token (ctok);
	if (COMMA_TOKEN != get_token (ctok))
	  break;
     }

   if (ctok->type != CBRACE_TOKEN)
     {
	_SLparse_error ("Expecting }", ctok, 0);
	return;
     }
   if (n == 0)
     {
	_SLparse_error ("struct requires at least 1 field", ctok, 0);
	return;
     }

   init_token (&num_tok);
   num_tok.type = INT_TOKEN;
   num_tok.v.long_val = n;
   append_token (&num_tok);
   append_token_of_type (STRUCT_TOKEN);

   get_token (ctok);
}

/* struct-declaration:
 * 	typedef struct { struct-field-list } Type_Name;
 *
 * struct-field-list:
 * 	struct-field-name , struct-field-list
 * 	struct-field-name
 *
 * Generates code: "field-name-1" ... "field-name-N" N STRUCT_TOKEN typedef
 */
static void typedef_definition (_SLang_Token_Type *t)
{

   if (t->type != STRUCT_TOKEN)
     {
	_SLparse_error ("Expecting `struct'", t, 0);
	return;
     }
   get_token (t);

   struct_declaration (t);
   if (t->type != IDENT_TOKEN)
     {
	_SLparse_error ("Expecting identifier", t, 0);
	return;
     }

   t->type = STRING_TOKEN;
   append_token (t);
   append_token_of_type (TYPEDEF_TOKEN);

   get_token (t);
}

/* function-args:
 * 	( args-dec-opt )
 *
 * args-decl-opt:
 * 	identifier
 * 	args-decl , identifier
 */
static void define_function_args (_SLang_Token_Type *ctok)
{
   if (CPAREN_TOKEN == get_token (ctok))
     {
	get_token (ctok);
	return;
     }

   compile_token_of_type(OBRACKET_TOKEN);

   while ((SLang_Error == 0)
	  && (ctok->type == IDENT_TOKEN))
     {
	compile_token (ctok);
	if (COMMA_TOKEN != get_token (ctok))
	  break;

	get_token (ctok);
     }

   if (CPAREN_TOKEN != ctok->type)
     {
	_SLparse_error("Expecting )", ctok, 0);
	return;
     }
   compile_token_of_type(CBRACKET_TOKEN);

   get_token (ctok);
}

void try_multiple_assignment (_SLang_Token_Type *ctok)
{
   /* This is called with ctok->type == OPAREN_TOKEN.  We have no idea
    * what follows this.  There are various possibilities such as:
    * @  () = x;
    * @  ( expression ) = x;
    * @  ( expression ) ;
    * @  ( expression ) OP expression;
    * @  ( expression ) [expression] = expression;
    * and only the first two constitute a multiple assignment.  The last
    * two forms create the difficulty.
    *
    * Here is the plan.  First parse (expression) and then check next token.
    * If it is an equal operator, then it will be parsed as a multiple
    * assignment.  In fact, that is the easy part.
    *
    * The hard part stems from the fact that by parsing (expression), we
    * have effectly truncated the parse if (expression) is part of a binary
    * or unary expression.  Somehow, the parsing must be resumed.  The trick
    * here is to use a dummy literal that generates no code: NO_OP_LITERAL
    * Using it, we just call 'expression' and proceed.
    */

   if (NULL == push_token_list ())
     return;

   get_token (ctok);

   if (ctok->type != CPAREN_TOKEN)
     {
	expression_with_commas (ctok, 1);
	if (ctok->type != CPAREN_TOKEN)
	  {
	     _SLparse_error ("Expecting )", ctok, 0);
	     return;
	  }
     }

   switch (get_token (ctok))
     {
      case ASSIGN_TOKEN:
      case PLUSEQS_TOKEN:
      case MINUSEQS_TOKEN:
      case TIMESEQS_TOKEN:
      case DIVEQS_TOKEN:
      case BOREQS_TOKEN:
      case BANDEQS_TOKEN:
	do_multiple_assignment (ctok);
	pop_token_list (1);
	break;

      default:
	unget_token (ctok);
	ctok->type = NO_OP_LITERAL;
	expression (ctok);
	compile_token_list ();
	break;
     }
}

/* Note:  expression never gets compiled directly.  Rather, it gets
 *        appended to the token list and then compiled by a calling
 *        routine.
 */

/* expression:
 *	 simple_expression
 *	 simple-expression , expression
 *       <none>
 */
static void expression_with_commas (_SLang_Token_Type *ctok, int save_comma)
{
   while (SLang_Error == 0)
     {
	if (ctok->type != COMMA_TOKEN)
	  {
	     if (ctok->type == CPAREN_TOKEN)
	       return;

	     simple_expression (ctok);

	     if (ctok->type != COMMA_TOKEN)
	       break;
	  }
	if (save_comma) append_token (ctok);
	get_token (ctok);
     }
}

static void expression (_SLang_Token_Type *ctok)
{
   expression_with_commas (ctok, 0);
}

/* priority levels of binary operations */
static unsigned char Binop_Level[] =
{
/* ADD_TOKEN */		2,
/* SUB_TOKEN */		2,
/* MUL_TOKEN */		1,
/* DIV_TOKEN */		1,
/* LT_TOKEN */		4,
/* LE_TOKEN */		4,
/* GT_TOKEN */		4,
/* GE_TOKEN */		4,
/* EQ_TOKEN */		5,
/* NE_TOKEN */		5,
/* AND_TOKEN */		9,
/* OR_TOKEN */		10,
/* MOD_TOKEN */		1,
/* BAND_TOKEN */	6,
/* SHL_TOKEN */		3,
/* SHR_TOKEN */		3,
/* BXOR_TOKEN */	7,
/* BOR_TOKEN */		8,
/* POUND_TOKEN */	1  /* Matrix Multiplication */
};

/* % Note: simple-expression groups operators OP1 at same level.  The
 * % actual implementation will not do this.
 * simple-expression:
 *	 unary-expression
 *	 binary-expression BINARY-OP unary-expression
 *       andelse xxelse-expression-list
 *       orelse xxelse-expression-list
 *
 * xxelse-expression-list:
 * 	{ expression }
 * 	xxelse-expression-list { expression }
 * binary-expression:
 *      unary-expression
 *      unary-expression BINARY-OP binary-expression
 */
static void simple_expression (_SLang_Token_Type *ctok)
{
   unsigned char type;
   unsigned char op_stack [64];
   unsigned char level_stack [64];
   unsigned char level;
   unsigned int op_num;

   switch (ctok->type)
     {
      case ANDELSE_TOKEN:
      case ORELSE_TOKEN:
	type = ctok->type;
	if (OBRACE_TOKEN != get_token (ctok))
	  {
	     _SLparse_error ("Expecting '{'", ctok, 0);
	     return;
	  }

	while (ctok->type == OBRACE_TOKEN)
	  {
	     append_token (ctok);
	     get_token (ctok);
	     expression (ctok);
	     if (CBRACE_TOKEN != ctok->type)
	       {
		  _SLparse_error("Expecting }", ctok, 0);
		  return;
	       }
	     append_token (ctok);
	     get_token (ctok);
	  }
	append_token_of_type (type);
	return;

	/* avoid unary-expression if possible */
      case STRING_TOKEN:
	append_token (ctok);
	get_token (ctok);
	break;

      default:
	unary_expression (ctok);
	break;
     }

   if (SEMICOLON_TOKEN == (type = ctok->type))
     return;

   op_num = 0;

   while ((SLang_Error == 0)
	  && (IS_BINARY_OP(type)))
     {
	level = Binop_Level[type - FIRST_BINARY_OP];

	while ((op_num > 0) && (level_stack [op_num - 1] <= level))
	  append_token_of_type (op_stack [--op_num]);

	if (op_num >= sizeof (op_stack) - 1)
	  {
	     _SLparse_error ("Binary op stack overflow", ctok, 0);
	     return;
	  }

	op_stack [op_num] = type;
	level_stack [op_num] = level;
	op_num++;

	get_token (ctok);
	unary_expression (ctok);
	type = ctok->type;
     }

   while (op_num > 0)
     append_token_of_type(op_stack[--op_num]);
}

/* unary-expression:
 *	 postfix-expression
 *	 ++ postfix-expression
 *	 -- postfix-expression
 *	 case unary-expression
 *	 OP3 unary-expression
 *	 (OP3: + - ~ & not @)
 *
 * Note:  This grammar permits: case case case WHATEVER
 */
static void unary_expression (_SLang_Token_Type *ctok)
{
   unsigned char save_unary_ops [16];
   unsigned int num_unary_ops;
   unsigned char type;
   _SLang_Token_Type *last_token;

   num_unary_ops = 0;
   while (SLang_Error == 0)
     {
	type = ctok->type;

	switch (type)
	  {
	   case PLUSPLUS_TOKEN:
	   case MINUSMINUS_TOKEN:
	     get_token (ctok);
	     postfix_expression (ctok);
	     check_for_lvalue (type, NULL);
	     goto out_of_switch;

	   case ADD_TOKEN:
	     get_token (ctok);	       /* skip it-- it's unary here */
	     break;

	   case SUB_TOKEN:
	     (void) get_token (ctok);
	     if (IS_INTEGER_TOKEN (ctok->type))
	       {
		  ctok->v.long_val = -ctok->v.long_val;
		  break;
	       }

	     if (num_unary_ops == 16)
	       goto stack_overflow_error;
	     save_unary_ops [num_unary_ops++] = CHS_TOKEN;
	     break;

	   case DEREF_TOKEN:
	   case BNOT_TOKEN:
	   case NOT_TOKEN:
	   case CASE_TOKEN:
	     if (num_unary_ops == 16)
	       goto stack_overflow_error;

	     save_unary_ops [num_unary_ops++] = type;
	     get_token (ctok);
	     break;

	     /* Try to avoid ->postfix_expression->primary_expression
	      * subroutine calls.
	      */
	   case STRING_TOKEN:
	     append_token (ctok);
	     get_token (ctok);
	     goto out_of_switch;

	   default:
	     postfix_expression (ctok);
	     goto out_of_switch;
	  }
     }

   out_of_switch:
   if (num_unary_ops == 0)
     return;

   if ((DEREF_TOKEN == save_unary_ops[num_unary_ops - 1])
       && (NULL != (last_token = get_last_token ()))
       && (IS_ASSIGN_TOKEN(last_token->type)))
     {
	/* FIXME: Priority=medium
	 * This needs generalized so that things like @a.y = 1 will work properly.
	 */
	if ((num_unary_ops != 1)
	    || (last_token->type != _SCALAR_ASSIGN_TOKEN))
	  {
	     SLang_verror (SL_NOT_IMPLEMENTED, 
			   "Only derefence assignments to simple variables are possible");
	     return;
	  }

	last_token->type += (_DEREF_ASSIGN_TOKEN - _SCALAR_ASSIGN_TOKEN);
	return;
     }

   while (num_unary_ops)
     {
	num_unary_ops--;
	append_token_of_type (save_unary_ops [num_unary_ops]);
     }
   return;

   stack_overflow_error:
   _SLparse_error ("Too many unary operators.", ctok, 0);
}

static int combine_namespace_tokens (_SLang_Token_Type *a, _SLang_Token_Type *b)
{
   char *sa, *sb, *sc;
   unsigned int lena, lenb;
   unsigned long hash;

   /* This is somewhat of a hack.  Combine the TWO identifier names
    * (NAMESPACE) and (name) into the form NAMESPACE->name.  Then when the
    * byte compiler compiles the object it will not be found.  It will then
    * check for this hack and make the appropriate namespace lookup.
    */

   sa = a->v.s_val;
   sb = b->v.s_val;

   lena = strlen (sa);
   lenb = strlen (sb);

   sc = SLmalloc (lena + lenb + 3);
   if (sc == NULL)
     return -1;

   strcpy (sc, sa);
   strcpy (sc + lena, "->");
   strcpy (sc + lena + 2, sb);

   sb = _SLstring_make_hashed_string (sc, lena + lenb + 2, &hash);
   SLfree (sc);
   if (sb == NULL)
     return -1;

   /* I can free this string because no other token should be referencing it.
    * (num_refs == 1).
    */
   _SLfree_hashed_string (sa, lena, a->hash);
   a->v.s_val = sb;
   a->hash = hash;

   return 0;
}

static void append_identifier_token (_SLang_Token_Type *ctok)
{
   _SLang_Token_Type *last_token;

   append_token (ctok);

   if (NAMESPACE_TOKEN != get_token (ctok))
     return;

   if (IDENT_TOKEN != get_token (ctok))
     {
	_SLparse_error ("Expecting name-space identifier", ctok, 0);
	return;
     }

   last_token = get_last_token ();
   if (-1 == combine_namespace_tokens (last_token, ctok))
     return;

   (void) get_token (ctok);
}

static int get_identifier_expr_token (_SLang_Token_Type *ctok)
{
   _SLang_Token_Type next_token;

   if (IDENT_TOKEN != get_identifier_token (ctok))
     return -1;

   init_token (&next_token);
   if (NAMESPACE_TOKEN != get_token (&next_token))
     {
	unget_token (&next_token);
	return IDENT_TOKEN;
     }

   if (IDENT_TOKEN != get_identifier_token (&next_token))
     {
	free_token (&next_token);
	return -1;
     }

   if (-1 == combine_namespace_tokens (ctok, &next_token))
     {
	free_token (&next_token);
	return -1;
     }
   free_token (&next_token);
   return IDENT_TOKEN;
}

/* postfix-expression:
 *	 primary-expression
 *	 postfix-expression [ expression ]
 *	 postfix-expression ( function-args-expression )
 *	 postfix-expression . identifier
 *       postfix-expression ^ unary-expression
 *	 postfix-expression ++
 *	 postfix-expression --
 *	 postfix-expression = simple-expression
 *	 postfix-expression += simple-expression
 *	 postfix-expression -= simple-expression
 *
 * primary-expression:
 *	literal
 *	identifier-expr
 *	( expression_opt )
 * 	[ inline-array-expression ]
 * 	&identifier-expr
 *      struct-definition
 *      __tmp(identifier-expr)
 *
 * identifier-expr:
 *      identifier
 *      identifier->identifier
 */
static void postfix_expression (_SLang_Token_Type *ctok)
{
   unsigned int start_pos, end_pos;
   unsigned char type;

   if (Token_List == NULL)
     return;

   start_pos = Token_List->len;

   switch (ctok->type)
     {
      case IDENT_TOKEN:
	append_identifier_token (ctok);
	break;

      case CHAR_TOKEN:
      case SHORT_TOKEN:
      case INT_TOKEN:
      case LONG_TOKEN:
      case UCHAR_TOKEN:
      case USHORT_TOKEN:
      case UINT_TOKEN:
      case ULONG_TOKEN:
      case STRING_TOKEN:
      case BSTRING_TOKEN:
#ifdef SLANG_HAS_FLOAT
      case DOUBLE_TOKEN:
      case FLOAT_TOKEN:
#endif
#ifdef SLANG_HAS_COMPLEX
      case COMPLEX_TOKEN:
#endif
	append_token (ctok);
	get_token (ctok);
	break;

      case OPAREN_TOKEN:
	if (CPAREN_TOKEN != get_token (ctok))
	  {
	     expression (ctok);
	     if (ctok->type != CPAREN_TOKEN)
	       _SLparse_error("Expecting )", ctok, 0);
	  }
	get_token (ctok);
	break;

      case BAND_TOKEN:
	if (IDENT_TOKEN != get_identifier_expr_token (ctok))
	  break;

	ctok->type = _REF_TOKEN;
	append_token (ctok);
	get_token (ctok);
	break;

      case OBRACKET_TOKEN:
	get_token (ctok);
	inline_array_expression (ctok);
	break;

      case NO_OP_LITERAL:
	/* This token was introduced by try_multiple_assignment.  There,
	 * a new token_list was pushed and (expression) was evaluated.
	 * NO_OP_LITERAL represents the result of expression.  However,
	 * we need to tweak the start_pos variable to point to the beginning
	 * of the token list to complete the equivalence.
	 */
	start_pos = 0;
	get_token (ctok);
	break;

      case STRUCT_TOKEN:
	get_token (ctok);
	struct_declaration (ctok);
	break;

      case TMP_TOKEN:
	get_token (ctok);
	if (ctok->type == OPAREN_TOKEN)
	  {
	     if (IDENT_TOKEN == get_identifier_expr_token (ctok))
	       {
		  ctok->type = TMP_TOKEN;
		  append_token (ctok);
		  get_token (ctok);
		  if (ctok->type == CPAREN_TOKEN)
		    {
		       get_token (ctok);
		       break;
		    }
	       }
	  }
	_SLparse_error ("Expecting form __tmp(NAME)", ctok, 0);
	break;

      default:
	if (IS_INTERNAL_FUNC(ctok->type))
	  {
	     append_token (ctok);
	     get_token (ctok);
	  }
	else
	  _SLparse_error("Expecting a PRIMARY", ctok, 0);
     }

   while (SLang_Error == 0)
     {
	end_pos = Token_List->len;
	type = ctok->type;
	switch (type)
	  {
	   case OBRACKET_TOKEN:	       /* X[args] ==> [args] X ARRAY */
	     get_token (ctok);
	     append_token_of_type (ARG_TOKEN);
	     if (ctok->type != CBRACKET_TOKEN) 
	       array_index_expression (ctok);

	     if (ctok->type != CBRACKET_TOKEN)
	       {
		  _SLparse_error ("Expecting ']'", ctok, 0);
		  return;
	       }
	     get_token (ctok);
	     /* append_token_of_type (EARG_TOKEN); -- ARRAY_TOKEN implicitely does this */
	     token_list_element_exchange (start_pos, end_pos);
	     append_token_of_type (ARRAY_TOKEN);
	     break;

	   case OPAREN_TOKEN:
	     /* f(args) ==> args f */
	     if (CPAREN_TOKEN != get_token (ctok))
	       {
		  function_args_expression (ctok, 1);
		  token_list_element_exchange (start_pos, end_pos);
	       }
	     else get_token (ctok);
	     break;

	   case DOT_TOKEN:
	     /* S.a ==> "a" S DOT
	      * This means that if S is X[b], then X[b].a ==> a b X ARRAY DOT
	      * and f(a).X[b].c ==> "c" b "X" a f . ARRAY .
	      * Also, f(a).X[b] = g(x); ==> x g b "X" a f .
	      */
	     if (IDENT_TOKEN != get_identifier_token (ctok))
	       return;

	     ctok->type = DOT_TOKEN;
	     append_token (ctok);
	     get_token (ctok);
	     break;

	   case PLUSPLUS_TOKEN:
	   case MINUSMINUS_TOKEN:
	     check_for_lvalue (type, NULL);
	     get_token (ctok);
	     break;

	   case ASSIGN_TOKEN:
	   case PLUSEQS_TOKEN:
	   case MINUSEQS_TOKEN:
	   case TIMESEQS_TOKEN:
	   case DIVEQS_TOKEN:
	   case BOREQS_TOKEN:
	   case BANDEQS_TOKEN:
	     check_for_lvalue (type, NULL);
	     get_token (ctok);
	     simple_expression (ctok);
	     token_list_element_exchange (start_pos, end_pos);
	     break;

	   case POW_TOKEN:
	     get_token (ctok);
	     unary_expression (ctok);
	     append_token_of_type (POW_TOKEN);
	     break;

	   default:
	     return;
	  }
     }
}

static void function_args_expression (_SLang_Token_Type *ctok, int handle_num_args)
{
   unsigned char last_type, this_type;

   if (handle_num_args) append_token_of_type (ARG_TOKEN);

   last_type = COMMA_TOKEN;

   while (SLang_Error == 0)
     {
	this_type = ctok->type;

	switch (this_type)
	  {
	   case COMMA_TOKEN:
	     if (last_type == COMMA_TOKEN)
	       append_token_of_type (_NULL_TOKEN);
	     get_token (ctok);
	     break;

	   case CPAREN_TOKEN:
	     if (last_type == COMMA_TOKEN)
	       append_token_of_type (_NULL_TOKEN);
	     if (handle_num_args) append_token_of_type (EARG_TOKEN);
	     get_token (ctok);
	     return;

	   default:
	     simple_expression (ctok);
	     if ((ctok->type != COMMA_TOKEN)
		 && (ctok->type != CPAREN_TOKEN))
	       {
		  _SLparse_error ("Expecting ')'", ctok, 0);
		  break;
	       }
	  }
	last_type = this_type;
     }
}

static int check_for_lvalue (unsigned char eqs_type, _SLang_Token_Type *ctok)
{
   unsigned char type;

   if ((ctok == NULL)
       && (NULL == (ctok = get_last_token ())))
     return -1;

   type = ctok->type;

   eqs_type -= ASSIGN_TOKEN;

   if (type == IDENT_TOKEN)
     eqs_type += _SCALAR_ASSIGN_TOKEN;
   else if (type == ARRAY_TOKEN)
     eqs_type += _ARRAY_ASSIGN_TOKEN;
   else if (type == DOT_TOKEN)
     eqs_type += _STRUCT_ASSIGN_TOKEN;
   else
     {
	_SLparse_error ("Expecting LVALUE", ctok, 0);
	return -1;
     }

   ctok->type = eqs_type;
   return 0;
}

static void array_index_expression (_SLang_Token_Type *ctok)
{
   unsigned int num_commas;

   num_commas = 0;
   while (1)
     {
	switch (ctok->type)
	  {
	   case COLON_TOKEN:
	     if (num_commas)
	       _SLparse_error ("Misplaced ':'", ctok, 0);
	     return;
	     
	   case TIMES_TOKEN:
	     append_token_of_type (_INLINE_WILDCARD_ARRAY_TOKEN);
	     get_token (ctok);
	     break;
	     
	   case COMMA_TOKEN:
	     _SLparse_error ("Misplaced ','", ctok, 0);
	     return;
	     
	   default:
	     simple_expression (ctok);
	  }
	
	if (ctok->type != COMMA_TOKEN)
	  return;
	num_commas++;
	get_token (ctok);
     }
}

/* inline-array-expression:
 *    array_index_expression
 *    simple_expression : simple_expression
 *    simple_expression : simple_expression : simple_expression
 */
static void inline_array_expression (_SLang_Token_Type *ctok)
{
   int num_colons = 0;

   append_token_of_type (ARG_TOKEN);

   if (ctok->type == COLON_TOKEN)	       /* [:...] */
     append_token_of_type (_NULL_TOKEN);
   else if (ctok->type != CBRACKET_TOKEN) 
     array_index_expression (ctok);

   if (ctok->type == COLON_TOKEN)
     {
	num_colons++;
	if ((COLON_TOKEN == get_token (ctok))
	    || (ctok->type == CBRACKET_TOKEN))
	  append_token_of_type (_NULL_TOKEN);
	else
	  simple_expression (ctok);

	if (ctok->type == COLON_TOKEN)
	  {
	     num_colons++;
	     get_token (ctok);
	     simple_expression (ctok);
	  }
     }

   if (ctok->type != CBRACKET_TOKEN)
     {
	_SLparse_error ("Expecting ']'", ctok, 0);
	return;
     }

   /* append_token_of_type (EARG_TOKEN); */
   if (num_colons)
     append_token_of_type (_INLINE_IMPLICIT_ARRAY_TOKEN);
   else
     append_token_of_type (_INLINE_ARRAY_TOKEN);
   get_token (ctok);
}

static void do_multiple_assignment (_SLang_Token_Type *ctok)
{
   _SLang_Token_Type *s;
   unsigned int i, k, len;
   unsigned char assign_type;

   assign_type = ctok->type;

   /* The LHS token list has already been pushed.  Here we do the RHS
    * so push to another token list, process it, then come back to
    * LHS for assignment.
    */
   if (NULL == push_token_list ())
     return;

   get_token (ctok);
   expression (ctok);
   compile_token_list ();

   if (SLang_Error)
     return;

   /* Finally compile the LHS of the assignment expression
    * that has been saved.
    */
   s = Token_List->stack;
   len = Token_List->len;

   if (len == 0)
     {
	compile_token_of_type (POP_TOKEN);
	return;
     }

   while (len > 0)
     {
	/* List is of form:
	 *    a , b, c d e, f , g , , , h ,
	 * The missing expressions will be replaced by a POP
	 * ,,a
	 */

	/* Start from back looking for a COMMA */
	k = len - 1;
	if (s[k].type == COMMA_TOKEN)
	  {
	     compile_token_of_type (POP_TOKEN);
	     len = k;
	     continue;
	  }

	if (-1 == check_for_lvalue (assign_type, s + k))
	  return;

	i = 0;
	while (1)
	  {
	     if (s[k].type == COMMA_TOKEN)
	       {
		  i = k + 1;
		  break;
	       }

	     if (k == 0)
	       break;

	     k--;
	  }

	while (i < len)
	  {
	     compile_token (s + i);
	     i++;
	  }

	len = k;
     }

   if (s[0].type == COMMA_TOKEN)
     compile_token_of_type (POP_TOKEN);
}

='n6490' href='#n6490'>6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2000 Free Software Foundation, Inc.
# Copyright (c) 2000 Mandriva.
#
msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"POT-Creation-Date: 2008-09-19 15:04+0200\n"
"PO-Revision-Date: 2004-02-24 13:01+0200\n"
"Last-Translator: Māris Laureckis <linux@latgola.lv>\n"
"Language-Team: Latgalian <linux@latgola.lv>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: any.pm:252 any.pm:855 diskdrake/interactive.pm:580
#: diskdrake/interactive.pm:767 diskdrake/interactive.pm:811
#: diskdrake/interactive.pm:897 diskdrake/interactive.pm:1151
#: diskdrake/interactive.pm:1203 do_pkgs.pm:221 do_pkgs.pm:267
#: harddrake/sound.pm:285 interactive.pm:584 pkgs.pm:258
#, c-format
msgid "Please wait"
msgstr "Lyudzu pagaidit"

#: any.pm:252
#, c-format
msgid "Bootloader installation in progress"
msgstr "Suokneituoja instaleišona procesā"

#: any.pm:263
#, c-format
msgid ""
"LILO wants to assign a new Volume ID to drive %s.  However, changing\n"
"the Volume ID of a Windows NT, 2000, or XP boot disk is a fatal Windows "
"error.\n"
"This caution does not apply to Windows 95 or 98, or to NT data disks.\n"
"\n"
"Assign a new Volume ID?"
msgstr ""

#: any.pm:274
#, c-format
msgid "Installation of bootloader failed. The following error occurred:"
msgstr "Suoknietuoja instaleišona naizadeve. Atkluota itaida kliuda:"

#: any.pm:280
#, c-format
msgid ""
"You may need to change your Open Firmware boot-device to\n"
" enable the bootloader.  If you do not see the bootloader prompt at\n"
" reboot, hold down Command-Option-O-F at reboot and enter:\n"
" setenv boot-device %s,\\\\:tbxi\n"
" Then type: shut-down\n"
"At your next boot you should see the bootloader prompt."
msgstr ""

#: any.pm:320
#, c-format
msgid ""
"You decided to install the bootloader on a partition.\n"
"This implies you already have a bootloader on the hard drive you boot (eg: "
"System Commander).\n"
"\n"
"On which drive are you booting?"
msgstr ""
"Jius nūlēmet suokneituoju instalēt iz diska sadalis.\n"
"Tys paredz, ka jiusim jau ir suokneituojs iz tuo suoknejamuo cītuo diska "
"(pīm.: System Commander).\n"
"\n"
"Kurs ir jiusu suoknejamais disks?"

#: any.pm:346
#, fuzzy, c-format
msgid "First sector (MBR) of drive %s"
msgstr "Diska pyrmais sektors (MBR)"

#: any.pm:348
#, c-format
msgid "First sector of drive (MBR)"
msgstr "Diska pyrmais sektors (MBR)"

#: any.pm:350
#, c-format
msgid "First sector of the root partition"
msgstr "Suoknejomuos sadalis pyrmais sektors"

#: any.pm:352
#, c-format
msgid "On Floppy"
msgstr "Uz disketi"

#: any.pm:354 pkgs.pm:254
#, c-format
msgid "Skip"
msgstr "Izlaist"

#: any.pm:358
#, fuzzy, c-format
msgid "Bootloader Installation"
msgstr "Suokneituoja instaleišona procesā"

#: any.pm:362
#, c-format
msgid "Where do you want to install the bootloader?"
msgstr "Kur jius gribit instalēt suokneituoju?"

#: any.pm:388
#, c-format
msgid "Boot Style Configuration"
msgstr "Suokneišonys stila konfigureišona"

#: any.pm:398 any.pm:427 any.pm:428
#, c-format
msgid "Bootloader main options"
msgstr "Suokneituoja golvonuos opcejis"

#: any.pm:402
#, c-format
msgid "Bootloader"
msgstr "Suokneituojs"

#: any.pm:403 any.pm:431
#, c-format
msgid "Bootloader to use"
msgstr "Kuru OS īluodeituoju lītuot"

#: any.pm:405 any.pm:433
#, c-format
msgid "Boot device"
msgstr "Suoknejamuo īreice"

#: any.pm:407
#, c-format
msgid "Main options"
msgstr ""

#: any.pm:408
#, c-format
msgid "Delay before booting default image"
msgstr "Pauze pyrms nūkluseituos sistemys īluodis"

#: any.pm:409
#, c-format
msgid "Enable ACPI"
msgstr "Īslēgt ACPI"

#: any.pm:410
#, fuzzy, c-format
msgid "Enable APIC"
msgstr "Īslēgt ACPI"

#: any.pm:411
#, fuzzy, c-format
msgid "Enable Local APIC"
msgstr "Īslēgt ACPI"

#: any.pm:413 any.pm:802 any.pm:817 authentication.pm:245
#: diskdrake/smbnfs_gtk.pm:181
#, c-format
msgid "Password"
msgstr "Parole"

#: any.pm:415 authentication.pm:256
#, c-format
msgid "The passwords do not match"
msgstr "Parolis nasakreit"

#: any.pm:415 authentication.pm:256 diskdrake/interactive.pm:1375
#, c-format
msgid "Please try again"
msgstr "Lyudzu mieginit vēlreiz"

#: any.pm:416
#, fuzzy, c-format
msgid "You can not use a password with %s"
msgstr "Jius navarit lītuot šifreitū failsistemu monteišonys punktā %s"

#: any.pm:419 any.pm:804 any.pm:819 authentication.pm:246
#, c-format
msgid "Password (again)"
msgstr "Parole (atkāuotuoti)"

#: any.pm:420
#, c-format
msgid "Restrict command line options"
msgstr "Īrobežuot komandryndys opcejis"

#: any.pm:420
#, c-format
msgid "restrict"
msgstr "īrībežuot"

#: any.pm:421
#, c-format
msgid ""
"Option ``Restrict command line options'' is of no use without a password"
msgstr "Opcejai ``Īrūbežuot komandryndys opcejis'' nav jāgys bez parolis"

#: any.pm:423
#, c-format
msgid "Clean /tmp at each boot"
msgstr "Izteireit /tmp kotrys suokneišonys laikā"

#: any.pm:432
#, c-format
msgid "Init Message"
msgstr ""

#: any.pm:434
#, c-format
msgid "Open Firmware Delay"
msgstr ""

#: any.pm:435
#, c-format
msgid "Kernel Boot Timeout"
msgstr "Kerneļa īluodis taimauts"

#: any.pm:436
#, c-format
msgid "Enable CD Boot?"
msgstr "Atļaut īluodi nu kompaktdiska?"

#: any.pm:437
#, c-format
msgid "Enable OF Boot?"
msgstr "Atļaut īluodi OF?"

#: any.pm:438
#, c-format
msgid "Default OS?"
msgstr "Nūklusātuo OS?"

#: any.pm:506
#, c-format
msgid "Image"
msgstr "Attāls"

#: any.pm:507 any.pm:520
#, c-format
msgid "Root"
msgstr "Sakne"

#: any.pm:508 any.pm:533
#, c-format
msgid "Append"
msgstr "Papyldynuot"

#: any.pm:510
#, c-format
msgid "Xen append"
msgstr ""

#: any.pm:513
#, c-format
msgid "Video mode"
msgstr "Video režims"

#: any.pm:515
#, c-format
msgid "Initrd"
msgstr "Initrd"

#: any.pm:516
#, fuzzy, c-format
msgid "Network profile"
msgstr "Jauns profils..."

#: any.pm:525 any.pm:530 any.pm:532 diskdrake/interactive.pm:400
#, c-format
msgid "Label"
msgstr "Nūsaukums"

#: any.pm:527 any.pm:535 harddrake/v4l.pm:438
#, c-format
msgid "Default"
msgstr "Nūklusāts"

#: any.pm:534
#, c-format
msgid "NoVideo"
msgstr "Bez video"

#: any.pm:545
#, c-format
msgid "Empty label not allowed"
msgstr "Tukšs nūsaukums nav atļauts"

#: any.pm:546
#, c-format
msgid "You must specify a kernel image"
msgstr "Jiusim juonūruoda kūdula attāls"

#: any.pm:546
#, c-format
msgid "You must specify a root partition"
msgstr "Jiusim juonūruoda saknis (root) sadaļa"

#: any.pm:547
#, c-format
msgid "This label is already used"
msgstr "Itys nūsaukums jau ir izmontuots"

#: any.pm:565
#, c-format
msgid "Which type of entry do you want to add?"
msgstr "Kaida veida īrokstu gribit pīvīnuot"

#: any.pm:566
#, c-format
msgid "Linux"
msgstr "Linux"

#: any.pm:566
#, c-format
msgid "Other OS (SunOS...)"
msgstr "Cyta OS (SunOS...)"

#: any.pm:567
#, c-format
msgid "Other OS (MacOS...)"
msgstr "Cyta OS (MacOS...)"

#: any.pm:567
#, c-format
msgid "Other OS (Windows...)"
msgstr "Cyta OS (Windows...)"

#: any.pm:594
#, fuzzy, c-format
msgid "Bootloader Configuration"
msgstr "Suokneišonys stila konfigureišona"

#: any.pm:595
#, c-format
msgid ""
"Here are the entries on your boot menu so far.\n"
"You can create additional entries or change the existing ones."
msgstr ""
"Ite ir dažaidi suokneišonys īroksti.\n"
"Jius varit pīvīnuot jaunus voi izmaineit esūšūs."

#: any.pm:763
#, c-format
msgid "access to X programs"
msgstr "pīkļuve X programmom"

#: any.pm:764
#, c-format
msgid "access to rpm tools"
msgstr "pīkļuve rpm reikim"

#: any.pm:765
#, c-format
msgid "allow \"su\""
msgstr "atļaut \"su\""

#: any.pm:766
#, c-format
msgid "access to administrative files"
msgstr "pīkļuve administreišonys failim"

#: any.pm:767
#, c-format
msgid "access to network tools"
msgstr "pīkļuve teikla reikim"

#: any.pm:768
#, c-format
msgid "access to compilation tools"
msgstr "pīkļuve kompileišonys reikim"

#: any.pm:774
#, c-format
msgid "(already added %s)"
msgstr "(jau pīvīnuots %s)"

#: any.pm:780
#, c-format
msgid "Please give a user name"
msgstr "Lyudzu īvodit lītuotuoja vuordu"

#: any.pm:781
#, c-format
msgid ""
"The user name must contain only lower cased letters, numbers, `-' and `_'"
msgstr "Lītuotuoja vuordā var byut tikai mozie angļu burti, cipari, `-' i `_'"

#: any.pm:782
#, c-format
msgid "The user name is too long"
msgstr "Lītuotuoja vuords ir puoruok garš"

#: any.pm:783
#, c-format
msgid "This user name has already been added"
msgstr "Šaids lītuotuoja vuords jau ir pīvīnuots"

#: any.pm:789 any.pm:821
#, c-format
msgid "User ID"
msgstr "Lītuotuoja ID"

#: any.pm:789 any.pm:822
#, c-format
msgid "Group ID"
msgstr "Grupys ID"

#: any.pm:790
#, fuzzy, c-format
msgid "%s must be a number"
msgstr "Opcejai %s ir juobyun numeram!"

#: any.pm:791
#, c-format
msgid "%s should be above 500. Accept anyway?"
msgstr ""

#: any.pm:795
#, fuzzy, c-format
msgid "User management"
msgstr "Lītuotuoja vuords"

#: any.pm:801 authentication.pm:232
#, fuzzy, c-format
msgid "Set administrator (root) password"
msgstr "root parolis izviele"

#: any.pm:806
#, fuzzy, c-format
msgid "Enter a user"
msgstr ""
"Īvodit lītuotuoju\n"
"%s"

#: any.pm:808
#, c-format
msgid "Icon"
msgstr "Ikona"

#: any.pm:811
#, c-format
msgid "Real name"
msgstr "Vuords i uzvuords"

#: any.pm:815
#, c-format
msgid "Login name"
msgstr "Slāgvuords"

#: any.pm:820
#, c-format
msgid "Shell"
msgstr "Čaula"

#: any.pm:855
#, fuzzy, c-format
msgid "Please wait, adding media..."
msgstr "lyudzu pagaidit cikom izpyldās ttmkfdir..."

#: any.pm:883 security/l10n.pm:14
#, c-format
msgid "Autologin"
msgstr "Autopīsasliegšonuos"

#: any.pm:884
#, fuzzy, c-format
msgid "I can set up your computer to automatically log on one user."
msgstr ""
"Sistēmu var konfigurēt tā, lai pēc startēšanas automātiski tiktu\n"
"atvērta viena noteikta lietotāja sesija. \n"
"Vai vēlaties lietot šo iespēju?"

#: any.pm:885
#, fuzzy, c-format
msgid "Use this feature"
msgstr "Vai vēlaties izmantot aboot?"

#: any.pm:886
#, c-format
msgid "Choose the default user:"
msgstr "Nūruodit nūkluseitū lītuotuoju:"

#: any.pm:887
#, c-format
msgid "Choose the window manager to run:"
msgstr "Nūruodit izmontojamū lūgu menedžeri:"

#: any.pm:898 any.pm:918 any.pm:979
#, c-format
msgid "Release Notes"
msgstr ""

#: any.pm:925 any.pm:1271 interactive/gtk.pm:797
#, c-format
msgid "Close"
msgstr "Aizvērt"

#: any.pm:965
#, c-format
msgid "License agreement"
msgstr "Licencis leigums"

#: any.pm:967 diskdrake/dav.pm:26
#, c-format
msgid "Quit"
msgstr "Beigt"

#: any.pm:974
#, fuzzy, c-format
msgid "Do you accept this license ?"
msgstr "Voi ir vēl kaida?"

#: any.pm:975
#, c-format
msgid "Accept"
msgstr "Pījimt"

#: any.pm:975
#, c-format
msgid "Refuse"
msgstr "Nūraideit"

#: any.pm:1001 any.pm:1067
#, c-format
msgid "Please choose a language to use"
msgstr "Lyudzu izavielejit izmontojamū volūdu"

#: any.pm:1030
#, c-format
msgid ""
"Mandriva Linux can support multiple languages. Select\n"
"the languages you would like to install. They will be available\n"
"when your installation is complete and you restart your system."
msgstr ""
"Mandriva Linux var nūdrūšynuot vairuokys volūdys. Izavielejit\n"
"volūdys, kaidys gribit uzstuodeit. Tuos byus pīejamys,\n"
"kod jiusu instaleišona byus gotova i jius puorstarteisit sovu sistemu."

#: any.pm:1033
#, c-format
msgid "Multi languages"
msgstr ""

#: any.pm:1044 any.pm:1076
#, c-format
msgid "Old compatibility (non UTF-8) encoding"
msgstr ""

#: any.pm:1046
#, c-format
msgid "All languages"
msgstr "Vysys volūdys"

#: any.pm:1068
#, fuzzy, c-format
msgid "Language choice"
msgstr "Manuali"

#: any.pm:1122
#, c-format
msgid "Country / Region"
msgstr "Vaļsts / Regions"

#: any.pm:1123
#, c-format
msgid "Please choose your country"
msgstr "Lyudzu izavielejit jiusu vaļsti"

#: any.pm:1125
#, c-format
msgid "Here is the full list of available countries"
msgstr "Ite ir pylns pīejamū vaļstu saroksts"

#: any.pm:1126
#, fuzzy, c-format
msgid "Other Countries"
msgstr "Cyti porti"

#: any.pm:1126 interactive.pm:485 interactive/gtk.pm:445
#, c-format
msgid "Advanced"
msgstr "Izvārsta"

#: any.pm:1132
#, fuzzy, c-format
msgid "Input method:"
msgstr "Teikla metode:"

#: any.pm:1135
#, c-format
msgid "None"
msgstr "Nav"

#: any.pm:1216
#, c-format
msgid "No sharing"
msgstr "Bez kūplītuošonys"

#: any.pm:1216
#, c-format
msgid "Allow all users"
msgstr "Atļaut vysus lītuotuojus"

#: any.pm:1216
#, c-format
msgid "Custom"
msgstr "Pīlāguota"

#: any.pm:1220
#, c-format
msgid ""
"Would you like to allow users to share some of their directories?\n"
"Allowing this will permit users to simply click on \"Share\" in konqueror "
"and nautilus.\n"
"\n"
"\"Custom\" permit a per-user granularity.\n"
msgstr ""
"Voi gribit ļaut lītuotuojim kūplītuot savus direktorejus?\n"
"Atļaunūt itū, lītuotuojim byus atļauts vīnkuorši nūklikškinuot iz \"Kūplītuot"
"\" konqueror\n"
"voi nautilus programmuos.\n"
"\n"
"\"Izvārts\" atļaun individualu tīseibu pīškieršonu.\n"

#: any.pm:1232
#, c-format
msgid ""
"NFS: the traditional Unix file sharing system, with less support on Mac and "
"Windows."
msgstr ""

#: any.pm:1235
#, c-format
msgid ""
"SMB: a file sharing system used by Windows, Mac OS X and many modern Linux "
"systems."
msgstr ""

#: any.pm:1243
#, c-format
msgid ""
"You can export using NFS or SMB. Please select which you would like to use."
msgstr ""
"Jius varit eksportēt, lītojūt NFS voi SMB. Lyudzu izavielejit, kuru gribit "
"lītuot."

#: any.pm:1271
#, c-format
msgid "Launch userdrake"
msgstr "Palaist userdrake"

#: any.pm:1273
#, c-format
msgid ""
"The per-user sharing uses the group \"fileshare\". \n"
"You can use userdrake to add a user to this group."
msgstr ""
"Lītuotuoju kūplītuojumi izmontoj grupu \"fileshare\". \n"
"Jius varit izmontuot userdrake, lai itai grupai pīvīnuotu lītuotuojus."

#: any.pm:1366
#, c-format
msgid "Please log out and then use Ctrl-Alt-BackSpace"
msgstr "Lyudzu aizverit seseju i nūspīdit Ctrl-Alt-BackSpace"

#: any.pm:1370
#, c-format
msgid "You need to log out and back in again for changes to take effect"
msgstr ""

#: any.pm:1405
#, c-format
msgid "Timezone"
msgstr "Laika jūsla"

#: any.pm:1405
#, c-format
msgid "Which is your timezone?"
msgstr "Kaida ir jiusu laika jūsla?"

#: any.pm:1428 any.pm:1430
#, c-format
msgid "Date, Clock & Time Zone Settings"
msgstr ""

#: any.pm:1431
#, c-format
msgid "What is the best time?"
msgstr ""

#: any.pm:1435
#, fuzzy, c-format
msgid "%s (hardware clock set to UTC)"
msgstr "Datora pulksteņs īstateits ruodeit GMT laiku"

#: any.pm:1436
#, fuzzy, c-format
msgid "%s (hardware clock set to local time)"
msgstr "Datora pulksteņs īstateits ruodeit GMT laiku"

#: any.pm:1438
#, c-format
msgid "NTP Server"
msgstr "NTP servers"

#: any.pm:1439
#, c-format
msgid "Automatic time synchronization (using NTP)"
msgstr "Automatiska laika sinhronizaceja (izmontojūt NTP)"

#: authentication.pm:25
#, fuzzy, c-format
msgid "Local file"
msgstr "Lokalī faili"

#: authentication.pm:26
#, c-format
msgid "LDAP"
msgstr "LDAP"

#: authentication.pm:27
#, c-format
msgid "NIS"
msgstr "NIS"

#: authentication.pm:28
#, fuzzy, c-format
msgid "Smart Card"
msgstr "Ethernet karte"

#: authentication.pm:29 authentication.pm:211
#, c-format
msgid "Windows Domain"
msgstr "Windows domens"

#: authentication.pm:30
#, c-format
msgid "Kerberos 5"
msgstr ""

#: authentication.pm:64
#, fuzzy, c-format
msgid "Local file:"
msgstr "Lokalī faili:"

#: authentication.pm:64
#, c-format
msgid ""
"Use local for all authentication and information user tell in local file"
msgstr ""

#: authentication.pm:65
#, c-format
msgid "LDAP:"
msgstr "LDAP:"

#: authentication.pm:65
#, c-format
msgid ""
"Tells your computer to use LDAP for some or all authentication. LDAP "
"consolidates certain types of information within your organization."
msgstr ""

#: authentication.pm:66
#, c-format
msgid "NIS:"
msgstr "NIS:"

#: authentication.pm:66
#, c-format
msgid ""
"Allows you to run a group of computers in the same Network Information "
"Service domain with a common password and group file."
msgstr ""

#: authentication.pm:67
#, c-format
msgid "Windows Domain:"
msgstr "Windows domens:"

#: authentication.pm:67
#, c-format
msgid ""
"Winbind allows the system to retrieve information and authenticate users in "
"a Windows domain."
msgstr ""

#: authentication.pm:68
#, c-format
msgid "Kerberos 5 :"
msgstr ""

#: authentication.pm:68
#, c-format
msgid "With Kerberos and Ldap for authentication in Active Directory Server "
msgstr ""

#: authentication.pm:102 authentication.pm:136 authentication.pm:155
#: authentication.pm:156 authentication.pm:182 authentication.pm:206
#: authentication.pm:884
#, c-format
msgid " "
msgstr ""

#: authentication.pm:103 authentication.pm:137 authentication.pm:183
#: authentication.pm:207
#, fuzzy, c-format
msgid "Welcome to the Authentication Wizard"
msgstr "Napīcīšoma domena autentikaceja"

#: authentication.pm:105
#, c-format
msgid ""
"You have selected LDAP authentication. Please review the configuration "
"options below "
msgstr ""

#: authentication.pm:107 authentication.pm:162
#, c-format
msgid "LDAP Server"
msgstr "LDAP servers"

#: authentication.pm:108 authentication.pm:163
#, fuzzy, c-format
msgid "Base dn"
msgstr "LDAP Base dn"

#: authentication.pm:109
#, c-format
msgid "Fetch base Dn "
msgstr ""

#: authentication.pm:111 authentication.pm:166
#, c-format
msgid "Use encrypt connection with TLS "
msgstr ""

#: authentication.pm:112 authentication.pm:167
#, c-format
msgid "Download CA Certificate "
msgstr ""

#: authentication.pm:114 authentication.pm:147
#, c-format
msgid "Use Disconnect mode "
msgstr ""

#: authentication.pm:115 authentication.pm:168
#, c-format
msgid "Use anonymous BIND "
msgstr ""

#: authentication.pm:116 authentication.pm:119 authentication.pm:121
#: authentication.pm:125
#, c-format
msgid "  "
msgstr ""

#: authentication.pm:117 authentication.pm:169
#, c-format
msgid "Bind DN "
msgstr ""

#: authentication.pm:118 authentication.pm:170
#, fuzzy, c-format
msgid "Bind Password "
msgstr "Parole"

#: authentication.pm:120
#, c-format
msgid "Advanced path for group "
msgstr ""

#: authentication.pm:122
#, fuzzy, c-format
msgid "Password base"
msgstr "Parole"

#: authentication.pm:123
#, fuzzy, c-format
msgid "Group base"
msgstr "Grupys ID"

#: authentication.pm:124
#, c-format
msgid "Shadow base"
msgstr ""

#: authentication.pm:139
#, c-format
msgid ""
"You have selected Kerberos 5 authentication. Please review the configuration "
"options below "
msgstr ""

#: authentication.pm:141
#, fuzzy, c-format
msgid "Realm "
msgstr "Vuords i uzvuords"

#: authentication.pm:143
#, fuzzy, c-format
msgid "KDCs Servers"
msgstr "LDAP servers"

#: authentication.pm:145
#, c-format
msgid "Use DNS to resolve hosts for realms "
msgstr ""

#: authentication.pm:146
#, c-format
msgid "Use DNS to resolve KDCs for realms "
msgstr ""

#: authentication.pm:151
#, fuzzy, c-format
msgid "Use local file for users information"
msgstr "Lītuot libsafe prīkš serverim"

#: authentication.pm:152
#, fuzzy, c-format
msgid "Use Ldap for users information"
msgstr "Cītuo diska informaceja"

#: authentication.pm:158
#, c-format
msgid ""
"You have selected Kerberos 5 for authentication, now you must choose the "
"type of users information "
msgstr ""

#: authentication.pm:164
#, c-format
msgid "Fecth base Dn "
msgstr ""

#: authentication.pm:185
#, c-format
msgid ""
"You have selected NIS authentication. Please review the configuration "
"options below "
msgstr ""

#: authentication.pm:187
#, c-format
msgid "NIS Domain"
msgstr "NIS domens"

#: authentication.pm:188
#, c-format
msgid "NIS Server"
msgstr "NIS servers"

#: authentication.pm:209
#, c-format
msgid ""
"You have selected Windows Domain authentication. Please review the "
"configuration options below "
msgstr ""

#: authentication.pm:213
#, fuzzy, c-format
msgid "Domain Model "
msgstr "Domens"

#: authentication.pm:215
#, c-format
msgid "Active Directory Realm "
msgstr ""

#: authentication.pm:231 authentication.pm:247
#, c-format
msgid "Authentication"
msgstr "Autentifikaceja"

#: authentication.pm:233
#, fuzzy, c-format
msgid "Authentication method"
msgstr "Autentifikacejis_metode"

#. -PO: keep this short or else the buttons will not fit in the window
#: authentication.pm:238
#, c-format
msgid "No password"
msgstr "Bez parolis"

#: authentication.pm:259
#, c-format
msgid "This password is too short (it must be at least %d characters long)"
msgstr "Itei parole ir puoruok vīnkuorša (juobyun vysmoz %d simbolus garai)"

#: authentication.pm:364
#, c-format
msgid "Can not use broadcast with no NIS domain"
msgstr "Navar izmontuot apraidi bez NIS domena"

#: authentication.pm:879
#, c-format
msgid "Select file"
msgstr "Izavielejit failu"

#: authentication.pm:885
#, fuzzy, c-format
msgid "Domain Windows for authentication : "
msgstr "Napīcīšoma domena autentikaceja"

#: authentication.pm:887
#, c-format
msgid "Domain Admin User Name"
msgstr "Domena administratora lītuotuoja vuords"

#: authentication.pm:888
#, c-format
msgid "Domain Admin Password"
msgstr "Domena administratora parole"

# NOTE: this message will be displayed at boot time; that is
# only the ascii charset will be available on most machines
# so use only 7bit for this message (and do transliteration or
# leave it in English, as it is the best for your language)
#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#: bootloader.pm:925
#, c-format
msgid ""
"Welcome to the operating system chooser!\n"
"\n"
"Choose an operating system from the list above or\n"
"wait for default boot.\n"
"\n"
msgstr ""
"Laipni lyudzam opereituojsistemu puorsliedziejaa!\n"
"\n"
"Sarokstaa izveilejit vajadzeiguu opereituojsistemu voi\n"
"gaidit, cikom tiks iiluodeita nuuklusaatuo sistema.\n"
"\n"

#: bootloader.pm:1093
#, c-format
msgid "LILO with text menu"
msgstr "LILO ar teksta izvieļni"

#: bootloader.pm:1094
#, c-format
msgid "GRUB with graphical menu"
msgstr ""

#: bootloader.pm:1095
#, c-format
msgid "GRUB with text menu"
msgstr ""

#: bootloader.pm:1096
#, c-format
msgid "Yaboot"
msgstr "Yaboot"

#: bootloader.pm:1097
#, c-format
msgid "SILO"
msgstr "SILO"

#: bootloader.pm:1178
#, c-format
msgid "not enough room in /boot"
msgstr "napīteik vītys /boot sadaļā"

#: bootloader.pm:1826
#, c-format
msgid "You can not install the bootloader on a %s partition\n"
msgstr "Jius navarit instalēt suokneituoju %s sadaļā\n"

#: bootloader.pm:1947
#, c-format
msgid ""
"Your bootloader configuration must be updated because partition has been "
"renumbered"
msgstr ""

#: bootloader.pm:1960
#, c-format
msgid ""
"The bootloader can not be installed correctly. You have to boot rescue and "
"choose \"%s\""
msgstr ""

#: bootloader.pm:1961
#, fuzzy, c-format
msgid "Re-install Boot Loader"
msgstr "Suokneituoja instaleišona"

#: common.pm:142
#, fuzzy, c-format
msgid "B"
msgstr "KB"

#: common.pm:142
#, c-format
msgid "KB"
msgstr "KB"

#: common.pm:142
#, c-format
msgid "MB"
msgstr "MB"

#: common.pm:142
#, c-format
msgid "GB"
msgstr "GB"

#: common.pm:142 common.pm:151
#, c-format
msgid "TB"
msgstr "TB"

#: common.pm:159
#, c-format
msgid "%d minutes"
msgstr "%d minotys"

#: common.pm:161
#, c-format
msgid "1 minute"
msgstr "1 minota"

#: common.pm:163
#, c-format
msgid "%d seconds"
msgstr "%d sekundis"

#: common.pm:383
#, c-format
msgid "command %s missing"
msgstr ""

#: diskdrake/dav.pm:17
#, c-format
msgid ""
"WebDAV is a protocol that allows you to mount a web server's directory\n"
"locally, and treat it like a local filesystem (provided the web server is\n"
"configured as a WebDAV server). If you would like to add WebDAV mount\n"
"points, select \"New\"."
msgstr ""
"WebDAV ir protokols, ka ļaun jiusim lokali montēt web servera direktoreju\n"
"i reikuotīs ar tū kai ar lokalu failsistemu (ja vīn web servers ir "
"konfigureits\n"
"kai WebDAV servers). Ja jius gribit pīvīnuot WebDAV monteišonys\n"
"punktus, izavielejit \"Jauns\"."

#: diskdrake/dav.pm:25
#, c-format
msgid "New"
msgstr "Jauns"

#: diskdrake/dav.pm:61 diskdrake/interactive.pm:407 diskdrake/smbnfs_gtk.pm:75
#, c-format
msgid "Unmount"
msgstr "Nūmontēt"

#: diskdrake/dav.pm:62 diskdrake/interactive.pm:403 diskdrake/smbnfs_gtk.pm:76
#, c-format
msgid "Mount"
msgstr "Montēt"

#: diskdrake/dav.pm:63
#, c-format
msgid "Server"
msgstr "Servers"

#: diskdrake/dav.pm:64 diskdrake/interactive.pm:397
#: diskdrake/interactive.pm:639 diskdrake/interactive.pm:657
#: diskdrake/interactive.pm:661 diskdrake/removable.pm:23
#: diskdrake/smbnfs_gtk.pm:79
#, c-format
msgid "Mount point"
msgstr "Monteišonys punkts"

#: diskdrake/dav.pm:65 diskdrake/interactive.pm:399
#: diskdrake/interactive.pm:1045 diskdrake/removable.pm:24
#: diskdrake/smbnfs_gtk.pm:80
#, c-format
msgid "Options"
msgstr "Opcejis"

#: diskdrake/dav.pm:66 diskdrake/hd_gtk.pm:183 diskdrake/removable.pm:26
#: diskdrake/smbnfs_gtk.pm:82 interactive/http.pm:151
#, c-format
msgid "Done"
msgstr "Gotovs"

#: diskdrake/dav.pm:75 diskdrake/hd_gtk.pm:123 diskdrake/hd_gtk.pm:290
#: diskdrake/interactive.pm:244 diskdrake/interactive.pm:257
#: diskdrake/interactive.pm:506 diskdrake/interactive.pm:511
#: diskdrake/interactive.pm:629 diskdrake/interactive.pm:915
#: diskdrake/interactive.pm:1091 diskdrake/interactive.pm:1104
#: diskdrake/interactive.pm:1107 diskdrake/interactive.pm:1375
#: diskdrake/smbnfs_gtk.pm:42 do_pkgs.pm:23 do_pkgs.pm:28 do_pkgs.pm:44
#: do_pkgs.pm:60 do_pkgs.pm:65 fsedit.pm:237 interactive/http.pm:117
#: interactive/http.pm:118 modules/interactive.pm:19 scanner.pm:94
#: scanner.pm:105 scanner.pm:112 scanner.pm:119 wizards.pm:95 wizards.pm:99
#: wizards.pm:121
#, c-format
msgid "Error"
msgstr "Kliuda"

#: diskdrake/dav.pm:83
#, c-format
msgid "Please enter the WebDAV server URL"
msgstr "Lyudzu īvodit WebDAV servera URL"

#: diskdrake/dav.pm:87
#, c-format
msgid "The URL must begin with http:// or https://"
msgstr "URL ir juosasuoc ar http:// voi https://"

#: diskdrake/dav.pm:109
#, c-format
msgid "Server: "
msgstr "Servers:"

#: diskdrake/dav.pm:110 diskdrake/interactive.pm:479
#: diskdrake/interactive.pm:1250 diskdrake/interactive.pm:1335
#, c-format
msgid "Mount point: "
msgstr "Monteišonys punkts: "

#: diskdrake/dav.pm:111 diskdrake/interactive.pm:1342
#, c-format
msgid "Options: %s"
msgstr "Opcejis: %s"

#: diskdrake/hd_gtk.pm:54 diskdrake/interactive.pm:295
#: diskdrake/smbnfs_gtk.pm:22 fs/mount_point.pm:106
#: fs/partitioning_wizard.pm:51 fs/partitioning_wizard.pm:206
#: fs/partitioning_wizard.pm:211 fs/partitioning_wizard.pm:250
#: fs/partitioning_wizard.pm:269 fs/partitioning_wizard.pm:274
#, c-format
msgid "Partitioning"
msgstr "Diska sadaleišona"

#: diskdrake/hd_gtk.pm:68
#, c-format
msgid "Click on a partition, choose a filesystem type then choose an action"
msgstr ""

#: diskdrake/hd_gtk.pm:105 diskdrake/interactive.pm:1066
#: diskdrake/interactive.pm:1076 diskdrake/interactive.pm:1129
#, c-format
msgid "Read carefully"
msgstr "Losit uzmaneigi"

#: diskdrake/hd_gtk.pm:105
#, c-format
msgid "Please make a backup of your data first"
msgstr "Vyspyrms izveidojit datu rezervis kopeju"

#: diskdrake/hd_gtk.pm:106 diskdrake/interactive.pm:237
#, c-format
msgid "Exit"
msgstr "Izīt"

#: diskdrake/hd_gtk.pm:106
#, c-format
msgid "Continue"
msgstr "Turpynuot"

#: diskdrake/hd_gtk.pm:178 interactive.pm:650 interactive/gtk.pm:789
#: interactive/gtk.pm:807 interactive/gtk.pm:828 ugtk2.pm:938
#, c-format
msgid "Help"
msgstr "Paleidzeiba"

#: diskdrake/hd_gtk.pm:224
#, fuzzy, c-format
msgid ""
"You have one big Microsoft Windows partition.\n"
"I suggest you first resize that partition\n"
"(click on it, then click on \"Resize\")"
msgstr ""
"Jums ir viena liela FAT sadaļa\n"
"(parasti to izmanto Microsoft Dos/Windows).\n"
"Iesaku vispirms izmainīt šīs sadaļas izmēru\n"
"(uzklikšķiniet uz tās, tad uz \"Mainīt izmēru\")"

#: diskdrake/hd_gtk.pm:226
#, c-format
msgid "Please click on a partition"
msgstr "Lyudzu uzklikškinit iz sadalis"

#: diskdrake/hd_gtk.pm:240 diskdrake/smbnfs_gtk.pm:63
#, c-format
msgid "Details"
msgstr "Detalis"

#: diskdrake/hd_gtk.pm:290
#, c-format
msgid "No hard drives found"
msgstr "Cītī diski natyka atrosti"

#: diskdrake/hd_gtk.pm:317
#, c-format
msgid "Unknown"
msgstr "Nazynuoms"

#: diskdrake/hd_gtk.pm:379
#, fuzzy, c-format
msgid "Ext3"
msgstr "Izīt"

#: diskdrake/hd_gtk.pm:379
#, fuzzy, c-format
msgid "XFS"
msgstr "HFS"

#: diskdrake/hd_gtk.pm:379
#, c-format
msgid "Swap"
msgstr "Swap"

#: diskdrake/hd_gtk.pm:379
#, c-format
msgid "SunOS"
msgstr "SunOS"

#: diskdrake/hd_gtk.pm:379
#, c-format
msgid "HFS"
msgstr "HFS"

#: diskdrake/hd_gtk.pm:379
#, c-format
msgid "Windows"
msgstr "Windows"

#: diskdrake/hd_gtk.pm:380 services.pm:158
#, c-format
msgid "Other"
msgstr "Cyts"

#: diskdrake/hd_gtk.pm:380 diskdrake/interactive.pm:1265
#, c-format
msgid "Empty"
msgstr "Tukšs"

#: diskdrake/hd_gtk.pm:387
#, c-format
msgid "Filesystem types:"
msgstr "Failsistemu tipi:"

#: diskdrake/hd_gtk.pm:408 diskdrake/interactive.pm:300
#: diskdrake/interactive.pm:385 diskdrake/interactive.pm:536
#: diskdrake/interactive.pm:720 diskdrake/interactive.pm:778
#: diskdrake/interactive.pm:895 diskdrake/interactive.pm:937
#: diskdrake/interactive.pm:938 diskdrake/interactive.pm:1188
#: diskdrake/interactive.pm:1226 diskdrake/interactive.pm:1374 do_pkgs.pm:19
#: do_pkgs.pm:39 do_pkgs.pm:57 harddrake/sound.pm:422
#, c-format
msgid "Warning"
msgstr "Uzmaneibu"

#: diskdrake/hd_gtk.pm:408
#, fuzzy, c-format
msgid "This partition is already empty"
msgstr "Ituos sadalis izmāru navar izmaineit"

#: diskdrake/hd_gtk.pm:417
#, c-format
msgid "Use ``Unmount'' first"
msgstr "Vyspyrms izmontojit ``Nūmontēt''"

#: diskdrake/hd_gtk.pm:417
#, fuzzy, c-format
msgid "Use ``%s'' instead (in expert mode)"
msgstr "Tuo vītā izmontojit ``%s''"

#: diskdrake/hd_gtk.pm:417 diskdrake/interactive.pm:398
#: diskdrake/interactive.pm:574 diskdrake/removable.pm:25
#: diskdrake/removable.pm:48
#, c-format
msgid "Type"
msgstr "Tips"

#: diskdrake/interactive.pm:208
#, c-format
msgid "Choose another partition"
msgstr "Izavielejit cytu sadaļu"

#: diskdrake/interactive.pm:208
#, c-format
msgid "Choose a partition"
msgstr "Izavielejit sadaļu"

#: diskdrake/interactive.pm:270 diskdrake/interactive.pm:376
#: interactive/curses.pm:512
#, c-format
msgid "More"
msgstr "Vairuok"

#: diskdrake/interactive.pm:278 diskdrake/interactive.pm:288
#: diskdrake/interactive.pm:1173
#, fuzzy, c-format
msgid "Confirmation"
msgstr "Konfiguraceja"

#: diskdrake/interactive.pm:278
#, c-format
msgid "Continue anyway?"
msgstr "Tūmār turpynuot?"

#: diskdrake/interactive.pm:283
#, c-format
msgid "Quit without saving"
msgstr "Izīt bez saglobuošonys"

#: diskdrake/interactive.pm:283
#, c-format
msgid "Quit without writing the partition table?"
msgstr "Izīt naīrokstūt sadaļu tabulu?"

#: diskdrake/interactive.pm:288
#, c-format
msgid "Do you want to save /etc/fstab modifications"
msgstr "Voi gribit saglobuot /etc/fstab izmainis"

#: diskdrake/interactive.pm:295 fs/partitioning_wizard.pm:250
#, c-format
msgid "You need to reboot for the partition table modifications to take place"
msgstr ""
"Lai sadaļu tabulys izmainis stuotūs spākā, jiusim juopuorstartej dators"

#: diskdrake/interactive.pm:300
#, c-format
msgid ""
"You should format partition %s.\n"
"Otherwise no entry for mount point %s will be written in fstab.\n"
"Quit anyway?"
msgstr ""
"Jiusim vajadzātu formatēt sadali %s.\n"
"Sovaižuok fstab nabyus īroksts par monteišonys punktu %s.\n"
"Tūmār izīt?"

#: diskdrake/interactive.pm:313
#, c-format
msgid "Clear all"
msgstr "Vysu dzēst"

#: diskdrake/interactive.pm:314
#, c-format
msgid "Auto allocate"
msgstr "Izvītuot automatiski"

#: diskdrake/interactive.pm:320
#, c-format
msgid "Toggle to normal mode"
msgstr "Puorsaslēgt normalajā režimā"

#: diskdrake/interactive.pm:320
#, c-format
msgid "Toggle to expert mode"
msgstr "Puorsaslēgt eksperta režimā"

#: diskdrake/interactive.pm:332
#, c-format
msgid "Hard drive information"
msgstr "Cītuo diska informaceja"

#: diskdrake/interactive.pm:365
#, c-format
msgid "All primary partitions are used"
msgstr "Vysys primaruos sadalis jau izmontuotys"

#: diskdrake/interactive.pm:366
#, fuzzy, c-format
msgid "I can not add any more partitions"
msgstr "Vairuok sadalis navar pīvīnuot"

#: diskdrake/interactive.pm:367
#, c-format
msgid ""
"To have more partitions, please delete one to be able to create an extended "
"partition"
msgstr ""
"Ja gribit vairuok sadalis, izdzēsit kaidu sadaļu, lai varātu izveiduot "
"paplašynuotū sadaļu"

#: diskdrake/interactive.pm:378
#, c-format
msgid "Reload partition table"
msgstr "Puorluodēt sadaļu tabulu"

#: diskdrake/interactive.pm:385
#, c-format
msgid "Detailed information"
msgstr "Detalizeita informaceja"

#: diskdrake/interactive.pm:401 diskdrake/interactive.pm:733
#, c-format
msgid "Resize"
msgstr "Maineit izmāru"

#: diskdrake/interactive.pm:402
#, c-format
msgid "Format"
msgstr "Formatēt"

#: diskdrake/interactive.pm:404 diskdrake/interactive.pm:843
#, c-format
msgid "Add to RAID"
msgstr "Pīvīnuot pi RAID"

#: diskdrake/interactive.pm:405 diskdrake/interactive.pm:861
#, c-format
msgid "Add to LVM"
msgstr "Pīvīnuot pi LVM"

#: diskdrake/interactive.pm:406
#, fuzzy, c-format
msgid "Use"
msgstr "Lītuotuoja ID"

#: diskdrake/interactive.pm:408
#, c-format
msgid "Delete"
msgstr "Izdzēst"

#: diskdrake/interactive.pm:409
#, c-format
msgid "Remove from RAID"
msgstr "Izjimt nu RAID"

#: diskdrake/interactive.pm:410
#, c-format
msgid "Remove from LVM"
msgstr "Izjimt nu LVM"

#: diskdrake/interactive.pm:411
#, fuzzy, c-format
msgid "Remove from dm"
msgstr "Izjimt nu LVM"

#: diskdrake/interactive.pm:412
#, c-format
msgid "Modify RAID"
msgstr "Maineit RAID"

#: diskdrake/interactive.pm:413
#, c-format
msgid "Use for loopback"
msgstr "Izmontuot prīkš loopback"

#: diskdrake/interactive.pm:424
#, c-format
msgid "Create"
msgstr "Izveiduot"

#: diskdrake/interactive.pm:468 diskdrake/interactive.pm:470
#, c-format
msgid "Create a new partition"
msgstr "Izveiduot jaunu sadaļu"

#: diskdrake/interactive.pm:472
#, c-format
msgid "Start sector: "
msgstr "Suokuma sektors: "

#: diskdrake/interactive.pm:475 diskdrake/interactive.pm:930
#, c-format
msgid "Size in MB: "
msgstr "Izmārs MB: "

#: diskdrake/interactive.pm:477 diskdrake/interactive.pm:931
#, c-format
msgid "Filesystem type: "
msgstr "Failsistemys tips: "

#: diskdrake/interactive.pm:483
#, c-format
msgid "Preference: "
msgstr "Prīkšrūka: "

#: diskdrake/interactive.pm:486
#, c-format
msgid "Logical volume name "
msgstr "Logiskuos sadalis vuords"

#: diskdrake/interactive.pm:506
#, c-format
msgid ""
"You can not create a new partition\n"
"(since you reached the maximal number of primary partitions).\n"
"First remove a primary partition and create an extended partition."
msgstr ""
"Jius navarit izveiduot jaunu diska sadaļu\n"
"(par tū ka ir sasnīgts maksimalais primarū sadaļu skaits).\n"
"Vyspyms nūjemit kaidu primarū sadaļu i izveidojit paplašynuotū sadaļu."

#: diskdrake/interactive.pm:536
#, c-format
msgid "Remove the loopback file?"
msgstr "Nūjimt loopback failu?"

#: diskdrake/interactive.pm:558
#, c-format
msgid ""
"After changing type of partition %s, all data on this partition will be lost"
msgstr ""
"Piec sadalis %s tipa nūmainis vysi šamā sadaļā esūšī dati tiks pazaudeiti"

#: diskdrake/interactive.pm:571
#, c-format
msgid "Change partition type"
msgstr "Nūmaineit sadalis tipu"

#: diskdrake/interactive.pm:573 diskdrake/removable.pm:47
#, c-format
msgid "Which filesystem do you want?"
msgstr "Kuru failu sistemu gribit?"

#: diskdrake/interactive.pm:580
#, fuzzy, c-format
msgid "Switching from %s to %s"
msgstr "Puorsasliegšona nu ext2 iz ext3"

#: diskdrake/interactive.pm:606 diskdrake/interactive.pm:609
#, c-format
msgid "Which volume label?"
msgstr ""

#: diskdrake/interactive.pm:610
#, fuzzy, c-format
msgid "Label:"
msgstr "Nūsaukums"

#: diskdrake/interactive.pm:624
#, fuzzy, c-format
msgid "Where do you want to mount the loopback file %s?"
msgstr "Kur jūs vēlaties montēt loopback failu %s?"

#: diskdrake/interactive.pm:625
#, c-format
msgid "Where do you want to mount device %s?"
msgstr "Kur jius gribit montēt %s īreici?"

#: diskdrake/interactive.pm:630
#, c-format
msgid ""
"Can not unset mount point as this partition is used for loop back.\n"
"Remove the loopback first"
msgstr ""
"Navaru nūjimt monteišonys punktu, par tū ka itei sadaļa teik izmontuota "
"prīkš loopback.\n"
"Vyspyrms nūjemit loopback"

#: diskdrake/interactive.pm:660
#, c-format
msgid "Where do you want to mount %s?"
msgstr "Kur jius gribit montēt %s?"

#: diskdrake/interactive.pm:684 diskdrake/interactive.pm:767
#: fs/partitioning_wizard.pm:146 fs/partitioning_wizard.pm:178
#, c-format
msgid "Resizing"
msgstr "Mainu izmāru"

#: diskdrake/interactive.pm:684
#, c-format
msgid "Computing FAT filesystem bounds"
msgstr "Izskaitļoju FAT failsistemys rūbežys"

#: diskdrake/interactive.pm:720
#, c-format
msgid "This partition is not resizeable"
msgstr "Ituos sadalis izmāru navar izmaineit"

#: diskdrake/interactive.pm:725
#, c-format
msgid "All data on this partition should be backed-up"
msgstr "Vysim ituos sadalis datim juoizveidoj rezervis kopejis"

#: diskdrake/interactive.pm:727
#, c-format
msgid "After resizing partition %s, all data on this partition will be lost"
msgstr ""
"Piec sadalis %s izmāra mainis vysi šamā sadaļā esūšū dati tiks pazaudeiti"

#: diskdrake/interactive.pm:734
#, c-format
msgid "Choose the new size"
msgstr "Nūruodit jaunū izmāru"

#: diskdrake/interactive.pm:735
#, c-format
msgid "New size in MB: "
msgstr "Jauns izmārs MB: "

#: diskdrake/interactive.pm:736
#, c-format
msgid "Minimum size: %s MB"
msgstr ""

#: diskdrake/interactive.pm:737
#, c-format
msgid "Maximum size: %s MB"
msgstr ""

#: diskdrake/interactive.pm:778 fs/partitioning_wizard.pm:186
#, c-format
msgid ""
"To ensure data integrity after resizing the partition(s), \n"
"filesystem checks will be run on your next boot into Microsoft Windows®"
msgstr ""

#: diskdrake/interactive.pm:826 diskdrake/interactive.pm:1370
#, c-format
msgid "Filesystem encryption key"
msgstr "Failsistemys šifreišonys atslāga"

#: diskdrake/interactive.pm:827
#, fuzzy, c-format
msgid "Enter your filesystem encryption key"
msgstr "Izavielejit jiusu failsistemys šifreišonys atslāgu"

#: diskdrake/interactive.pm:828 diskdrake/interactive.pm:1378
#, c-format
msgid "Encryption key"
msgstr "Šifreišonys atslāga"

#: diskdrake/interactive.pm:835
#, c-format
msgid "Invalid key"
msgstr ""

#: diskdrake/interactive.pm:843
#, c-format
msgid "Choose an existing RAID to add to"
msgstr "Nūruodit eksistejūšu RAID, kam pīvīnuot"

#: diskdrake/interactive.pm:845 diskdrake/interactive.pm:863
#, c-format
msgid "new"
msgstr "jauns"

#: diskdrake/interactive.pm:861
#, c-format
msgid "Choose an existing LVM to add to"
msgstr "Nūruodit jau esūšu LVM, kam pīvīnuot"

#: diskdrake/interactive.pm:868
#, c-format
msgid "LVM name?"
msgstr "LVM vuords?"

#: diskdrake/interactive.pm:895
#, c-format
msgid ""
"Physical volume %s is still in use.\n"
"Do you want to move used physical extents on this volume to other volumes?"
msgstr ""

#: diskdrake/interactive.pm:897
#, c-format
msgid "Moving physical extents"
msgstr ""

#: diskdrake/interactive.pm:915
#, c-format
msgid "This partition can not be used for loopback"
msgstr "Itū sadaļu navar izmontuot prīkš loopback"

#: diskdrake/interactive.pm:928
#, c-format
msgid "Loopback"
msgstr "Loopback"

#: diskdrake/interactive.pm:929
#, c-format
msgid "Loopback file name: "
msgstr "Loopback faila vuords: "

#: diskdrake/interactive.pm:934
#, c-format
msgid "Give a file name"
msgstr "Nūruodit faila nūsaukumu"

#: diskdrake/interactive.pm:937
#, fuzzy, c-format
msgid "File is already used by another loopback, choose another one"
msgstr "Fails jau tiek izmantots citam loopback, norādiet citu failu"

#: diskdrake/interactive.pm:938
#, c-format
msgid "File already exists. Use it?"
msgstr "Fails jau eksistej. Voi tū izmontuot?"

#: diskdrake/interactive.pm:970 diskdrake/interactive.pm:973
#, c-format
msgid "Mount options"
msgstr "Monteišonys īspiejis:"

#: diskdrake/interactive.pm:980
#, c-format
msgid "Various"
msgstr "Dažaidi"

#: diskdrake/interactive.pm:1047
#, c-format
msgid "device"
msgstr "īreice"

#: diskdrake/interactive.pm:1048
#, c-format
msgid "level"
msgstr "leimiņs"

#: diskdrake/interactive.pm:1049
#, fuzzy, c-format
msgid "chunk size in KiB"
msgstr "gobola izmārs"

#: diskdrake/interactive.pm:1067
#, c-format
msgid "Be careful: this operation is dangerous."
msgstr "Esit uzmaneigi: itei operaceja ir beistama."

#: diskdrake/interactive.pm:1082
#, fuzzy, c-format
msgid "Partitioning Type"
msgstr "Diska sadaleišona"

#: diskdrake/interactive.pm:1082
#, c-format
msgid "What type of partitioning?"
msgstr "Kaids ir sadaliejuma tips?"

#: diskdrake/interactive.pm:1120
#, c-format
msgid "You'll need to reboot before the modification can take place"
msgstr "Lai izmainis stuotūs spākā, jiusim ir juopuorstartej dators"

#: diskdrake/interactive.pm:1129
#, c-format
msgid "Partition table of drive %s is going to be written to disk"
msgstr "Īkuortys %s sadaļu tabula tiks īraksteita iz diska"

#: diskdrake/interactive.pm:1151 fs/format.pm:63 fs/format.pm:70
#, c-format
msgid "Formatting partition %s"
msgstr "Formateju sadaļu %s"

#: diskdrake/interactive.pm:1164
#, c-format
msgid "After formatting partition %s, all data on this partition will be lost"
msgstr ""
"Piec sadalis %s formateišonys vysi šamā sadaļā esūšī dati tiks pazaudeiti"

#: diskdrake/interactive.pm:1173 fs/partitioning.pm:48
#, c-format
msgid "Check bad blocks?"
msgstr "Puorbaudeit slyktūs blokus?"

#: diskdrake/interactive.pm:1187
#, c-format
msgid "Move files to the new partition"
msgstr "Puorvītuot failus iz jaunū sadaļu"

#: diskdrake/interactive.pm:1187
#, c-format
msgid "Hide files"
msgstr "Slēpt failus"

#: diskdrake/interactive.pm:1188
#, c-format
msgid ""
"Directory %s already contains data\n"
"(%s)\n"
"\n"
"You can either choose to move the files into the partition that will be "
"mounted there or leave them where they are (which results in hiding them by "
"the contents of the mounted partition)"
msgstr ""

#: diskdrake/interactive.pm:1203
#, c-format
msgid "Moving files to the new partition"
msgstr "Puorvītoju failus iz jaunū sadaļu"

#: diskdrake/interactive.pm:1207
#, c-format
msgid "Copying %s"
msgstr "Kopeju %s"

#: diskdrake/interactive.pm:1211
#, c-format
msgid "Removing %s"
msgstr "Atvīnoju %s"

#: diskdrake/interactive.pm:1225
#, c-format
msgid "partition %s is now known as %s"
msgstr "sadaļa %s tagad ir zynuoma kai %s"

#: diskdrake/interactive.pm:1226
#, c-format
msgid "Partitions have been renumbered: "
msgstr ""

#: diskdrake/interactive.pm:1251 diskdrake/interactive.pm:1319
#, c-format
msgid "Device: "
msgstr "Īreice: "

#: diskdrake/interactive.pm:1252
#, c-format
msgid "Volume label: "
msgstr ""

#: diskdrake/interactive.pm:1253
#, c-format
msgid "UUID: "
msgstr ""

#: diskdrake/interactive.pm:1254
#, c-format
msgid "DOS drive letter: %s (just a guess)\n"
msgstr "DOS īkuortys burts: %s (tikai miniejums)\n"

#: diskdrake/interactive.pm:1258 diskdrake/interactive.pm:1267
#: diskdrake/interactive.pm:1338
#, c-format
msgid "Type: "
msgstr "Tips: "

#: diskdrake/interactive.pm:1262 diskdrake/interactive.pm:1323
#, c-format
msgid "Name: "
msgstr "Vuords: "

#: diskdrake/interactive.pm:1269
#, c-format
msgid "Start: sector %s\n"
msgstr "Suokums: sektors %s\n"

#: diskdrake/interactive.pm:1270
#, c-format
msgid "Size: %s"
msgstr "Izmārs: %s"

#: diskdrake/interactive.pm:1272
#, c-format
msgid ", %s sectors"
msgstr ", %s sektori"

#: diskdrake/interactive.pm:1274
#, c-format
msgid "Cylinder %d to %d\n"
msgstr "Nu cilindra %d leidz cilindram %d\n"

#: diskdrake/interactive.pm:1275
#, c-format
msgid "Number of logical extents: %d\n"
msgstr ""

#: diskdrake/interactive.pm:1276
#, c-format
msgid "Formatted\n"
msgstr "Formateita\n"

#: diskdrake/interactive.pm:1277
#, c-format
msgid "Not formatted\n"
msgstr "Naformateita\n"

#: diskdrake/interactive.pm:1278
#, c-format
msgid "Mounted\n"
msgstr "Monteita\n"

#: diskdrake/interactive.pm:1279
#, c-format
msgid "RAID %s\n"
msgstr "RAID %s\n"

#: diskdrake/interactive.pm:1281
#, fuzzy, c-format
msgid "Encrypted"
msgstr "Šifreišonys atslāga"

#: diskdrake/interactive.pm:1281
#, c-format
msgid " (mapped on %s)"
msgstr ""

#: diskdrake/interactive.pm:1282
#, c-format
msgid " (to map on %s)"
msgstr ""

#: diskdrake/interactive.pm:1283
#, c-format
msgid " (inactive)"
msgstr ""

#: diskdrake/interactive.pm:1289
#, c-format
msgid ""
"Loopback file(s):\n"
"   %s\n"
msgstr ""
"Loopback fails(i):\n"
"   %s\n"

#: diskdrake/interactive.pm:1290
#, c-format
msgid ""
"Partition booted by default\n"
"    (for MS-DOS boot, not for lilo)\n"
msgstr ""
"Nāklusāti suoknejamuo sadaļa\n"
"    (lai suokneitu MS-DOS, na lilo)\n"

#: diskdrake/interactive.pm:1292
#, c-format
msgid "Level %s\n"
msgstr "Leimiņs %s\n"

#: diskdrake/interactive.pm:1293
#, fuzzy, c-format
msgid "Chunk size %d KiB\n"
msgstr "Gobola izmārs %s\n"

#: diskdrake/interactive.pm:1294
#, c-format
msgid "RAID-disks %s\n"
msgstr "RAID diski %s\n"

#: diskdrake/interactive.pm:1296
#, c-format
msgid "Loopback file name: %s"
msgstr "Loopback faila nūsaukums: %s"

#: diskdrake/interactive.pm:1299
#, fuzzy, c-format
msgid ""
"\n"
"Chances are, this partition is\n"
"a Driver partition. You should\n"
"probably leave it alone.\n"
msgstr ""
"\n"
"Pastāv iespēja, ka šī sadaļa\n"
"ir Draivera sadaļa, ko jums\n"
"varbūt nevajadzētu aiztikt.\n"

#: diskdrake/interactive.pm:1302
#, c-format
msgid ""
"\n"
"This special Bootstrap\n"
"partition is for\n"
"dual-booting your system.\n"
msgstr ""
"\n"
"Itei specialuo Bootstrap\n"
"sadaļa ir paradzāta jiusu\n"
"sistemys dualai suokneišonai.\n"

#: diskdrake/interactive.pm:1311
#, c-format
msgid "Free space on %s (%s)"
msgstr ""

#: diskdrake/interactive.pm:1320
#, c-format
msgid "Read-only"
msgstr "Tikai laseit"

#: diskdrake/interactive.pm:1321
#, c-format
msgid "Size: %s\n"
msgstr "Izmārs: %s\n"

#: diskdrake/interactive.pm:1322
#, c-format
msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
msgstr "Geometreja: %s cilindri, %s golvys, %s sektori\n"

#: diskdrake/interactive.pm:1324
#, fuzzy, c-format
msgid "Medium type: "
msgstr "Failsistemys tips: "

#: diskdrake/interactive.pm:1325
#, c-format
msgid "LVM-disks %s\n"
msgstr "LVM-diski %s\n"

#: diskdrake/interactive.pm:1326
#, c-format
msgid "Partition table type: %s\n"
msgstr "sadaļu tabulys tips: %s\n"

#: diskdrake/interactive.pm:1327
#, fuzzy, c-format
msgid "on channel %d id %d\n"
msgstr "uz šinas %d id %d\n"

#: diskdrake/interactive.pm:1371
#, c-format
msgid "Choose your filesystem encryption key"
msgstr "Izavielejit jiusu failsistemys šifreišonys atslāgu"

#: diskdrake/interactive.pm:1374
#, c-format
msgid "This encryption key is too simple (must be at least %d characters long)"
msgstr ""
"Šifreišonys atslāga ir puoruok vīnkuorša (juobyun vysmoz %d simbolus garai)"

#: diskdrake/interactive.pm:1375
#, c-format
msgid "The encryption keys do not match"
msgstr "Šifreišonys atslāgys nasakreit"

#: diskdrake/interactive.pm:1379
#, c-format
msgid "Encryption key (again)"
msgstr "Šifreišonys atslāga (vēlreiz)"

#: diskdrake/interactive.pm:1381
#, fuzzy, c-format
msgid "Encryption algorithm"
msgstr "Autentifikacejis_algoritms"

#: diskdrake/removable.pm:46
#, c-format
msgid "Change type"
msgstr "Maineit tipu"

#: diskdrake/smbnfs_gtk.pm:81 interactive.pm:129 interactive.pm:547
#: interactive/curses.pm:260 interactive/http.pm:104 interactive/http.pm:160
#: interactive/stdio.pm:39 interactive/stdio.pm:148 ugtk2.pm:417 ugtk2.pm:519
#: ugtk2.pm:528 ugtk2.pm:814
#, c-format
msgid "Cancel"
msgstr "Atceļt"

#: diskdrake/smbnfs_gtk.pm:164
#, c-format
msgid "Can not login using username %s (bad password?)"
msgstr "Navar pīsaslēgt ar lītuotuoja vuordu %s (napareiza parole?)"

#: diskdrake/smbnfs_gtk.pm:168 diskdrake/smbnfs_gtk.pm:177
#, c-format
msgid "Domain Authentication Required"
msgstr "Napīcīšoma domena autentikaceja"

#: diskdrake/smbnfs_gtk.pm:169
#, c-format
msgid "Which username"
msgstr "Kurs lītuotuoja vuords"

#: diskdrake/smbnfs_gtk.pm:169
#, c-format
msgid "Another one"
msgstr "Vēl vīns"

#: diskdrake/smbnfs_gtk.pm:178
#, c-format
msgid ""
"Please enter your username, password and domain name to access this host."
msgstr ""
"Lyudzu, īvodit jiusu lītuotuoja vuordu, paroli i domena nūsaukumu, lai "
"pūkliutu itam hostam."

#: diskdrake/smbnfs_gtk.pm:180
#, c-format
msgid "Username"
msgstr "Lītuotuoja vuords"

#: diskdrake/smbnfs_gtk.pm:182
#, c-format
msgid "Domain"
msgstr "Domens"

#: diskdrake/smbnfs_gtk.pm:206
#, c-format
msgid "Search servers"
msgstr "Meklēt serverus"

#: diskdrake/smbnfs_gtk.pm:211
#, fuzzy, c-format
msgid "Search new servers"
msgstr "Meklēšanas serveri"

#: do_pkgs.pm:19 do_pkgs.pm:57
#, c-format
msgid "The package %s needs to be installed. Do you want to install it?"
msgstr "Napīcīšoms instalēt pakūtni %s. Voi gribit tū instalēt?"

#: do_pkgs.pm:23 do_pkgs.pm:44 do_pkgs.pm:60
#, fuzzy, c-format
msgid "Could not install the %s package!"
msgstr "Navaru instalēt Xorg pakūtni: %s"

#: do_pkgs.pm:28 do_pkgs.pm:65
#, c-format
msgid "Mandatory package %s is missing"
msgstr "Iztryukst obligatuo pakūtne %s."

#: do_pkgs.pm:39
#, c-format
msgid "The following packages need to be installed:\n"
msgstr "Tiks instaleitys sekūjūšys pakūtnis:\n"

#: do_pkgs.pm:221
#, c-format
msgid "Installing packages..."
msgstr "Instaleju pakūtnis..."

#: do_pkgs.pm:267 pkgs.pm:258
#, c-format
msgid "Removing packages..."
msgstr "Nūjamu pakūtnis..."

#: fs/any.pm:17
#, c-format
msgid ""
"An error occurred - no valid devices were found on which to create new "
"filesystems. Please check your hardware for the cause of this problem"
msgstr ""
"Atkluota kliuda - nav atrosta nivīna īreice, kas darātu jaunu failsistemu "
"veiduošonai. Lyudzu puorbaudit aparaturu, lai nūskaidruotu problemys īmaslu"

#: fs/any.pm:75 fs/partitioning_wizard.pm:59
#, c-format
msgid "You must have a FAT partition mounted in /boot/efi"
msgstr "Jiusim ir napīcīšoma /boot/efi monteita FAT sadaļa"

#: fs/format.pm:67
#, c-format
msgid "Creating and formatting file %s"
msgstr "Veidoju i formateju failu %s"

#: fs/format.pm:122
#, c-format
msgid "I do not know how to format %s in type %s"
msgstr "Nazynu, kai formatēt %s ar tipu %s"

#: fs/format.pm:127 fs/format.pm:129
#, c-format
msgid "%s formatting of %s failed"
msgstr "%s formateišona %s naizadeve"

#: fs/loopback.pm:24
#, c-format
msgid "Circular mounts %s\n"
msgstr "Cikliski monteišonys punkti %s\n"

#: fs/mount.pm:79
#, fuzzy, c-format
msgid "Mounting partition %s"
msgstr "Formatēju sadaļu %s"

#: fs/mount.pm:80
#, c-format
msgid "mounting partition %s in directory %s failed"
msgstr "sadalis %s monteišona direktorejā %s naizadeve"

#: fs/mount.pm:85 fs/mount.pm:102
#, c-format
msgid "Checking %s"
msgstr "Puorbaudu %s"

#: fs/mount.pm:119 partition_table.pm:404
#, c-format
msgid "error unmounting %s: %s"
msgstr "kliuda nūmontejūt %s: %s"

#: fs/mount.pm:134
#, fuzzy, c-format
msgid "Enabling swap partition %s"
msgstr "Formatēju sadaļu %s"

#: fs/mount_options.pm:115
#, fuzzy, c-format
msgid "Use an encrypted file system"
msgstr "Jius navarit lītuot šifreitū failsistemu monteišonys punktā %s"

#: fs/mount_options.pm:117
#, c-format
msgid "Flush write cache on file close"
msgstr ""

#: fs/mount_options.pm:119
#, c-format
msgid "Enable group disk quota accounting and optionally enforce limits"
msgstr ""

#: fs/mount_options.pm:121
#, c-format
msgid ""
"Do not update inode access times on this file system\n"
"(e.g, for faster access on the news spool to speed up news servers)."
msgstr ""

#: fs/mount_options.pm:124
#, c-format
msgid ""
"Update inode access times on this filesystem in a more efficient way\n"
"(e.g, for faster access on the news spool to speed up news servers)."
msgstr ""

#: fs/mount_options.pm:127
#, c-format
msgid ""
"Can only be mounted explicitly (i.e.,\n"
"the -a option will not cause the file system to be mounted)."
msgstr ""

#: fs/mount_options.pm:130
#, c-format
msgid "Do not interpret character or block special devices on the file system."
msgstr ""

#: fs/mount_options.pm:132
#, c-format
msgid ""
"Do not allow execution of any binaries on the mounted\n"
"file system. This option might be useful for a server that has file systems\n"
"containing binaries for architectures other than its own."
msgstr ""

#: fs/mount_options.pm:136
#, c-format
msgid ""
"Do not allow set-user-identifier or set-group-identifier\n"
"bits to take effect. (This seems safe, but is in fact rather unsafe if you\n"
"have suidperl(1) installed.)"
msgstr ""

#: fs/mount_options.pm:140
#, c-format
msgid "Mount the file system read-only."
msgstr ""

#: fs/mount_options.pm:142
#, c-format
msgid "All I/O to the file system should be done synchronously."
msgstr ""

#: fs/mount_options.pm:144
#, c-format
msgid "Allow every user to mount and umount the file system."
msgstr ""

#: fs/mount_options.pm:146
#, c-format
msgid "Allow an ordinary user to mount the file system."
msgstr ""

#: fs/mount_options.pm:148
#, c-format
msgid "Enable user disk quota accounting, and optionally enforce limits"
msgstr ""

#: fs/mount_options.pm:150
#, c-format
msgid "Support \"user.\" extended attributes"
msgstr ""

#: fs/mount_options.pm:152
#, c-format
msgid "Give write access to ordinary users"
msgstr ""

#: fs/mount_options.pm:154
#, c-format
msgid "Give read-only access to ordinary users"
msgstr ""

#: fs/mount_point.pm:80
#, c-format
msgid "Duplicate mount point %s"
msgstr "Dublēt monteišonys punktu %s"

#: fs/mount_point.pm:95
#, c-format
msgid "No partition available"
msgstr "Nav pīejamu sadaļu"

#: fs/mount_point.pm:98
#, c-format
msgid "Scanning partitions to find mount points"
msgstr "Puormekleju sadalis, lai atrostu monteišonys punktus"

#: fs/mount_point.pm:105
#, c-format
msgid "Choose the mount points"
msgstr "Izavielejit monteišonys punktus"

#: fs/partitioning.pm:46
#, c-format
msgid "Choose the partitions you want to format"
msgstr "Izavielejit sadalis, kū gribit formatēt"

#: fs/partitioning.pm:75
#, c-format
msgid ""
"Failed to check filesystem %s. Do you want to repair the errors? (beware, "
"you can lose data)"
msgstr ""
"Naizadeve puorbaudeit failsistemu %s. Voi gribit lobuot kliudys? (uzamonit, "
"jius varit pazaudēt datus)"

#: fs/partitioning.pm:78
#, c-format
msgid "Not enough swap space to fulfill installation, please add some"
msgstr "Instaleišonys pabeigšonai napīteik swap vītys, palelynojit tū"

#: fs/partitioning_wizard.pm:51
#, c-format
msgid ""
"You must have a root partition.\n"
"For this, create a partition (or click on an existing one).\n"
"Then choose action ``Mount point'' and set it to `/'"
msgstr ""
"Jiusim ir napīcīšoma saknis sadaļa.\n"
"Itam nūlyukam izveidojit sadaļu (voi uzklikškinit iz jau asūšys).\n"
"Tod izavielejit darbeibu ``Monteišonys punkts'' i uzstuodit tū iz `/'"

#: fs/partitioning_wizard.pm:56
#, c-format
msgid ""
"You do not have a swap partition.\n"
"\n"
"Continue anyway?"
msgstr ""
"Jiusim nav swap sadalis\n"
"\n"
"Voi tūmār turpynuot?"

#: fs/partitioning_wizard.pm:84
#, c-format
msgid "Use free space"
msgstr "Izmontuot breivū vītu"

#: fs/partitioning_wizard.pm:86
#, c-format
msgid "Not enough free space to allocate new partitions"
msgstr "Napīteik breivys vītys, lai izvītuotu jaunys sadalis"

#: fs/partitioning_wizard.pm:94
#, c-format
msgid "Use existing partitions"
msgstr "Izmontuot jau esūšu sadalis"

#: fs/partitioning_wizard.pm:96
#, c-format
msgid "There is no existing partition to use"
msgstr "Nav nivīnys sadalis, kū varātu lītuot"

#: fs/partitioning_wizard.pm:103
#, c-format
msgid "Use the Microsoft Windows® partition for loopback"
msgstr "Lītuot Microsoft Windows® sadali prīkš loopback"

#: fs/partitioning_wizard.pm:106
#, c-format
msgid "Which partition do you want to use for Linux4Win?"
msgstr "Kuru sadali gribit izmontuot prīkš Linux4Win?"

#: fs/partitioning_wizard.pm:108
#, c-format
msgid "Choose the sizes"
msgstr "Izavielejit izmārus"

#: fs/partitioning_wizard.pm:109
#, c-format
msgid "Root partition size in MB: "
msgstr "Saknis sadalis izmārs (MB): "

#: fs/partitioning_wizard.pm:110
#, c-format
msgid "Swap partition size in MB: "
msgstr "Swap sadalis izmārs (MB): "

#: fs/partitioning_wizard.pm:119
#, c-format
msgid "There is no FAT partition to use as loopback (or not enough space left)"
msgstr ""
"Nav FAT sadalis, lai izmontuotu kai loopback (voi napīteik breivys vītys)"

#: fs/partitioning_wizard.pm:127
#, fuzzy, c-format
msgid "Use the free space on a Microsoft Windows® partition"
msgstr "Izmontuot Microsoft Windows® sadalis breivū vītu"

#: fs/partitioning_wizard.pm:129
#, c-format
msgid "Which partition do you want to resize?"
msgstr "Kurys sadalis izmāru gribit izmaineit?"

#: fs/partitioning_wizard.pm:143
#, c-format
msgid ""
"The FAT resizer is unable to handle your partition, \n"
"the following error occurred: %s"
msgstr ""
"FAT izmāra maineituojs naspiej izmaineit jiusu sadali,\n"
"atkluota sekuojūša kliuda: %s"

#: fs/partitioning_wizard.pm:146
#, c-format
msgid "Computing the size of the Microsoft Windows® partition"
msgstr "Teik kalkulāts Microsoft Windows® sadalis lelums"

#: fs/partitioning_wizard.pm:153
#, c-format
msgid ""
"Your Microsoft Windows® partition is too fragmented. Please reboot your "
"computer under Microsoft Windows®, run the ``defrag'' utility, then restart "
"the Mandriva Linux installation."
msgstr ""
"Microsoft Windows® sadaļa ir puoruok fragmenteita. Vyspyrms nu Microsoft "
"Windows® vidis palaidit ``defrag'' i tod atsuocit Mandriva Linux "
"instaleišonu."

#: fs/partitioning_wizard.pm:156
#, c-format
msgid ""
"WARNING!\n"
"\n"
"\n"
"Your Microsoft Windows® partition will be now resized.\n"
"\n"
"\n"
"Be careful: this operation is dangerous. If you have not already done so, "
"you first need to exit the installation, run \"chkdsk c:\" from a Command "
"Prompt under Microsoft Windows® (beware, running graphical program \"scandisk"
"\" is not enough, be sure to use \"chkdsk\" in a Command Prompt!), "
"optionally run defrag, then restart the installation. You should also backup "
"your data.\n"
"\n"
"\n"
"When sure, press %s."
msgstr ""
"BREIDYNUOJUMS!\n"
"\n"
"\n"
"Jiusu Microsoft Windows® sadalis izmārs tiks izmainets.\n"
"\n"
"\n"
"Esit uzmaneigs: šei darbeiba ir beistama. Ja jius tū vēļ naasot dariejs, "
"jiusim vyspyrms ir juopuortrauc instaleišona, palaist \"chkdsk c:\" nu "
"komandryndys Microsoft Windows® vidē (jemit vārā, palaižūt grafiskū "
"programmu \"scandisk\" nav pīteikūši, obligati palaidit \"chkdsk c:\" nu "
"komandryndys!), īteicams palaist defragmentaceju (defrag), tod atkuortuoti "
"juosuoc instaleišona. Vajadzātu izveiduot ari datu rezervis kopeju.\n"
"\n"
"\n"
"Kod asot puorsalīcynuojs, nūspīdit %s."

#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: fs/partitioning_wizard.pm:165 interactive.pm:546 interactive/curses.pm:263
#: ugtk2.pm:521
#, c-format
msgid "Next"
msgstr "Tuoļuok"

#: fs/partitioning_wizard.pm:168
#, fuzzy, c-format
msgid "Partitionning"
msgstr "Diska sadaleišona"

#: fs/partitioning_wizard.pm:168
#, c-format
msgid "Which size do you want to keep for Microsoft Windows® on partition %s?"
msgstr "Kaidu apjūmu gribit atstuot prīkš Microsoft Windows® iz sadaļa %s?"

#: fs/partitioning_wizard.pm:169
#, c-format
msgid "Size"
msgstr "Izmārs"

#: fs/partitioning_wizard.pm:178
#, c-format
msgid "Resizing Microsoft Windows® partition"
msgstr "Mainu Microsoft Windows® sadalis izmāru"

#: fs/partitioning_wizard.pm:183
#, c-format
msgid "FAT resizing failed: %s"
msgstr "FAT izmāra maiņa naizadeve: %s"

#: fs/partitioning_wizard.pm:198
#, c-format
msgid "There is no FAT partition to resize (or not enough space left)"
msgstr ""
"Nav FAT sadalis, lai izmaineitu tuo izmāru (voi napīteik breivys vītys)"

#: fs/partitioning_wizard.pm:203
#, c-format
msgid "Remove Microsoft Windows®"
msgstr "Nūdzēst Microsoft Windows®"

#: fs/partitioning_wizard.pm:203
#, c-format
msgid "Erase and use entire disk"
msgstr "Izdzēst un lītuot vysu disku"

#: fs/partitioning_wizard.pm:205
#, c-format
msgid "You have more than one hard drive, which one do you install linux on?"
msgstr ""
"Jiusim ir vairuok nakai vīns cītais disks, iz kura jius gribit instalēt "
"linux?"

#: fs/partitioning_wizard.pm:210 fsedit.pm:590
#, c-format
msgid "ALL existing partitions and their data will be lost on drive %s"
msgstr "VYSYS diska %s sadalis i tamuos asūšī dati tiks pazaudeiti"

#: fs/partitioning_wizard.pm:220
#, c-format
msgid "Custom disk partitioning"
msgstr "Pīlāguots disku sadaliejums"

#: fs/partitioning_wizard.pm:226
#, c-format
msgid "Use fdisk"
msgstr "Lītuot fdisk"

#: fs/partitioning_wizard.pm:229
#, c-format
msgid ""
"You can now partition %s.\n"
"When you are done, do not forget to save using `w'"
msgstr ""
"Tagad jius varit sadaleit diska īkuortu %s.\n"
"Kod byusit pabeiguši, naaizmierstit saglobuot, izmontojūt `w'"

#: fs/partitioning_wizard.pm:269
#, c-format
msgid "I can not find any room for installing"
msgstr "Navaru atrast vītu instaleišonai"

#: fs/partitioning_wizard.pm:278
#, c-format
msgid "The DrakX Partitioning wizard found the following solutions:"
msgstr "DrakX sadaļu veiduošonys paleigs atroda sekojūšus rysynuojumus:"

#: fs/partitioning_wizard.pm:287
#, c-format
msgid "Partitioning failed: %s"
msgstr "Diska sadaleišona naizadeve: %s"

#: fs/type.pm:378
#, c-format
msgid "You can not use JFS for partitions smaller than 16MB"
msgstr "JFS navar izmontuot sadaļom, kas mozuokys par 16MB"

#: fs/type.pm:379
#, c-format
msgid "You can not use ReiserFS for partitions smaller than 32MB"
msgstr "ReiserFS navar izmontuot sadaļom, kas mozuokys par 32MB"

#: fsedit.pm:23
#, c-format
msgid "simple"
msgstr "vīnkuoršs"

#: fsedit.pm:27
#, c-format
msgid "with /usr"
msgstr "ar /usr"

#: fsedit.pm:32
#, c-format
msgid "server"
msgstr "servers"

#: fsedit.pm:131
#, c-format
msgid "BIOS software RAID detected on disks %s. Activate it?"
msgstr ""

#: fsedit.pm:238
#, c-format
msgid ""
"I can not read the partition table of device %s, it's too corrupted for me :"
"(\n"
"I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n"
"The other solution is to not allow DrakX to modify the partition table.\n"
"(the error is %s)\n"
"\n"
"Do you agree to lose all the partitions?\n"
msgstr ""
"Naizadeve nūlaseit īkuortys %s sadaļu tabulu, par tū ka tei beja puoruok "
"stypri būjuota :(\n"
"Sistema var mieginuot atslēgt slyktuos sadalis (VYSI DATI pazuss!).\n"
"Ūtrs rysynuojums ir aizligt DrakX izmaineit sadaļu tabulu.\n"
"(kliuda ir %s)\n"
"\n"
"Voi jius pīkreitot zaudēt vysys sadalis?\n"

#: fsedit.pm:415
#, c-format
msgid "Mount points must begin with a leading /"
msgstr "Monteišonys punktim juosasuoc ar /"

#: fsedit.pm:416
#, fuzzy, c-format
msgid "Mount points should contain only alphanumerical characters"
msgstr "Printera vārdam jāsatur tikai burtus, ciparus un pasvītrojumu"

#: fsedit.pm:417
#, c-format
msgid "There is already a partition with mount point %s\n"
msgstr "Jau eksistej sadaļa ar monteišonys punktu %s\n"

#: fsedit.pm:421
#, fuzzy, c-format
msgid ""
"You've selected a software RAID partition as root (/).\n"
"No bootloader is able to handle this without a /boot partition.\n"
"Please be sure to add a /boot partition"
msgstr ""
"Jūs izvēlējies programmatūras uzturētu RAID sadaļu kā saknes sadaļu (/).\n"
"Neviens sāknētājs nespēj to izmantot bez /boot sadaļas.\n"
"Tāpēc neaizmirstiet izveidot /boot sadaļu."

#: fsedit.pm:427
#, c-format
msgid ""
"You can not use the LVM Logical Volume for mount point %s since it spans "
"physical volumes"
msgstr ""

#: fsedit.pm:429
#, fuzzy, c-format
msgid ""
"You've selected the LVM Logical Volume as root (/).\n"
"The bootloader is not able to handle this when the volume spans physical "
"volumes.\n"
"You should create a /boot partition first"
msgstr ""
"Jūs izvēlējies programmatūras uzturētu RAID sadaļu kā saknes sadaļu (/).\n"
"Neviens sāknētājs nespēj to izmantot bez /boot sadaļas.\n"
"Tāpēc neaizmirstiet izveidot /boot sadaļu."

#: fsedit.pm:433 fsedit.pm:435
#, c-format
msgid "This directory should remain within the root filesystem"
msgstr "Itam katalogam ir juopalīk saknis failsistemā"

#: fsedit.pm:437 fsedit.pm:439
#, c-format
msgid ""
"You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount "
"point\n"
msgstr ""
"Itam monteišonys punktam ir napīcīšoma reala failsistema (ext2/ext3, "
"reiserfs, xfs voi jfs)\n"

#: fsedit.pm:441
#, c-format
msgid "You can not use an encrypted file system for mount point %s"
msgstr "Jius navarit lītuot šifreitū failsistemu monteišonys punktā %s"

#: fsedit.pm:506
#, c-format
msgid "Not enough free space for auto-allocating"
msgstr "Napīteik breivys vītys, lai izvītuotu automatiski"

#: fsedit.pm:508
#, c-format
msgid "Nothing to do"
msgstr "Nav kū izpiļdeit"

#: harddrake/data.pm:64
#, c-format
msgid "SATA controllers"
msgstr ""

#: harddrake/data.pm:73
#, c-format
msgid "RAID controllers"
msgstr ""

#: harddrake/data.pm:83
#, c-format
msgid "(E)IDE/ATA controllers"
msgstr ""

#: harddrake/data.pm:93
#, fuzzy, c-format
msgid "Card readers"
msgstr "Kartis modeļs:"

#: harddrake/data.pm:102
#, c-format
msgid "Firewire controllers"
msgstr ""

#: harddrake/data.pm:111
#, c-format
msgid "PCMCIA controllers"
msgstr ""

#: harddrake/data.pm:120
#, c-format
msgid "SCSI controllers"
msgstr ""

#: harddrake/data.pm:129
#, c-format
msgid "USB controllers"
msgstr ""

#: harddrake/data.pm:138
#, fuzzy, c-format
msgid "USB ports"
msgstr "USB printers"

#: harddrake/data.pm:147
#, c-format
msgid "SMBus controllers"
msgstr ""

#: harddrake/data.pm:156
#, c-format
msgid "Bridges and system controllers"
msgstr ""

#: harddrake/data.pm:168
#, c-format
msgid "Floppy"
msgstr "Diskete"

#: harddrake/data.pm:178
#, c-format
msgid "Zip"
msgstr "Zip"

#: harddrake/data.pm:194
#, c-format
msgid "Hard Disk"
msgstr "Disks"

#: harddrake/data.pm:204
#, c-format
msgid "USB Mass Storage Devices"
msgstr ""

#: harddrake/data.pm:213
#, c-format
msgid "CDROM"
msgstr "CDROM"

#: harddrake/data.pm:223
#, c-format
msgid "CD/DVD burners"
msgstr "CD/DVD īraksteituoji"

#: harddrake/data.pm:233
#, c-format
msgid "DVD-ROM"
msgstr "DVD-ROM"

#: harddrake/data.pm:243
#, c-format
msgid "Tape"
msgstr "Lenta"

#: harddrake/data.pm:254
#, c-format
msgid "AGP controllers"
msgstr ""

#: harddrake/data.pm:263
#, c-format
msgid "Videocard"
msgstr "Videokarte"

#: harddrake/data.pm:272
#, c-format
msgid "DVB card"
msgstr ""

#: harddrake/data.pm:280
#, c-format
msgid "Tvcard"
msgstr "TV karte"

#: harddrake/data.pm:290
#, c-format
msgid "Other MultiMedia devices"
msgstr "Cytys multimedia īkuortys"

#: harddrake/data.pm:299
#, c-format
msgid "Soundcard"
msgstr "Skanis karte"

#: harddrake/data.pm:312
#, c-format
msgid "Webcam"
msgstr ""

#: harddrake/data.pm:326
#, c-format
msgid "Processors"
msgstr ""

#: harddrake/data.pm:336
#, c-format
msgid "ISDN adapters"
msgstr "ISDN karte"

#: harddrake/data.pm:347
#, c-format
msgid "USB sound devices"
msgstr ""

#: harddrake/data.pm:356
#, c-format
msgid "Radio cards"
msgstr ""

#: harddrake/data.pm:365
#, c-format
msgid "ATM network cards"
msgstr ""

#: harddrake/data.pm:374
#, c-format
msgid "WAN network cards"
msgstr ""

#: harddrake/data.pm:383
#, c-format
msgid "Bluetooth devices"
msgstr ""

#: harddrake/data.pm:392
#, c-format
msgid "Ethernetcard"
msgstr "Ethernet teikla karte"

#: harddrake/data.pm:409
#, c-format
msgid "Modem"
msgstr "Modems"

#: harddrake/data.pm:419
#, c-format
msgid "ADSL adapters"
msgstr "ADSL adapteri"

#: harddrake/data.pm:431
#, fuzzy, c-format
msgid "Memory"
msgstr "Vairuok"

#: harddrake/data.pm:440
#, c-format
msgid "Printer"
msgstr "Printers"

#. -PO: these are joysticks controllers:
#: harddrake/data.pm:454
#, c-format
msgid "Game port controllers"
msgstr ""

#: harddrake/data.pm:463
#, c-format
msgid "Joystick"
msgstr "Kursorsvira"

#: harddrake/data.pm:473
#, c-format
msgid "Keyboard"
msgstr "Klaviatura"

#: harddrake/data.pm:486
#, c-format
msgid "Tablet and touchscreen"
msgstr ""

#: harddrake/data.pm:495
#, c-format
msgid "Mouse"
msgstr "Pele"

#: harddrake/data.pm:509
#, c-format
msgid "Biometry"
msgstr ""

#: harddrake/data.pm:517
#, fuzzy, c-format
msgid "UPS"
msgstr "CUPS"

#: harddrake/data.pm:526
#, c-format
msgid "Scanner"
msgstr "Skeners"

#: harddrake/data.pm:537
#, c-format
msgid "Unknown/Others"
msgstr "Nazynuoms/Cyti"

#: harddrake/data.pm:565
#, c-format
msgid "cpu # "
msgstr "procesors # "

#: harddrake/sound.pm:285
#, c-format
msgid "Please Wait... Applying the configuration"
msgstr "Lyudzu pagaidit ... konfiguracejis pīmāruošona"

#: harddrake/sound.pm:346
#, c-format
msgid "Enable PulseAudio"
msgstr ""

#: harddrake/sound.pm:350
#, c-format
msgid "Automatic routing from ALSA to PulseAudio"
msgstr ""

#: harddrake/sound.pm:355
#, c-format
msgid "Enable 5.1 sound with Pulse Audio"
msgstr ""

#: harddrake/sound.pm:360
#, c-format
msgid "Enable user switching for audio applications"
msgstr ""

#: harddrake/sound.pm:365
#, c-format
msgid "Reset sound mixer to default values"
msgstr ""

#: harddrake/sound.pm:370
#, c-format
msgid "Trouble shooting"
msgstr ""

#: harddrake/sound.pm:377
#, c-format
msgid "No alternative driver"
msgstr "Nav alternativa draivera"

#: harddrake/sound.pm:378
#, c-format
msgid ""
"There's no known OSS/ALSA alternative driver for your sound card (%s) which "
"currently uses \"%s\""
msgstr ""
"Nav zynuoms alternativs OSS/ALSA draivers prīkš jiusu skanis kartis (%s), "
"kura pošreiz izmontoj \"%s\""

#: harddrake/sound.pm:385
#, c-format
msgid "Sound configuration"
msgstr "Skanis konfiguraceja"

#: harddrake/sound.pm:387
#, c-format
msgid ""
"Here you can select an alternative driver (either OSS or ALSA) for your "
"sound card (%s)."
msgstr ""
"Ite jius varit izavielēt alternativu draiveri (voi nu OSS voi ALSA) prīkš "
"jiusu skanis kartis (%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:392
#, c-format
msgid ""
"\n"
"\n"
"Your card currently use the %s\"%s\" driver (default driver for your card is "
"\"%s\")"
msgstr ""
"\n"
"\n"
"Jiusu karte pošreiz izmontoj %s\"%s\" draiveri (nūklusātais draivers prīkš "
"jiusu kartis ir \"%s\")"

#: harddrake/sound.pm:394
#, c-format
msgid ""
"OSS (Open Sound System) was the first sound API. It's an OS independent "
"sound API (it's available on most UNIX(tm) systems) but it's a very basic "
"and limited API.\n"
"What's more, OSS drivers all reinvent the wheel.\n"
"\n"
"ALSA (Advanced Linux Sound Architecture) is a modularized architecture "
"which\n"
"supports quite a large range of ISA, USB and PCI cards.\n"
"\n"
"It also provides a much higher API than OSS.\n"
"\n"
"To use alsa, one can either use:\n"
"- the old compatibility OSS api\n"
"- the new ALSA api that provides many enhanced features but requires using "
"the ALSA library.\n"
msgstr ""

#: harddrake/sound.pm:408 harddrake/sound.pm:491
#, c-format
msgid "Driver:"
msgstr "Draivers:"

#: harddrake/sound.pm:422
#, 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 ""
"Vacais \"%s\" draivers ir malnajā sarokstā.\n"
"\n"
"Ir sajimtys zinis par tuo slyktū darbeibu pi kūdula izluodis.\n"
"\n"
"Jaunais \"%s\" draivers tiks lītuots tikai pi nuokūšuos īluodis."

#: harddrake/sound.pm:430
#, c-format
msgid "No open source driver"
msgstr "Nav atgvārtuo koda draiveru"

#: harddrake/sound.pm:431
#, fuzzy, c-format
msgid ""
"There's no free driver for your sound card (%s), but there's a proprietary "
"driver at \"%s\"."
msgstr ""
"Nav zināms alternatīvs OSS/ALSA draiveris priekš Jūsu skaņu kartes (%s) kura "
"patreiz izmanto \"%s\""

#: harddrake/sound.pm:434
#, c-format
msgid "No known driver"
msgstr "Nav zynuomu draiveru"

#: harddrake/sound.pm:435
#, c-format
msgid "There's no known driver for your sound card (%s)"
msgstr "Nav zynuomu draiveru jiusu skanis kartei (%s)"

#: harddrake/sound.pm:450
#, c-format
msgid "Sound trouble shooting"
msgstr ""

#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: harddrake/sound.pm:453
#, c-format
msgid ""
"The classic bug sound tester is to run the following commands:\n"
"\n"
"\n"
"- \"lspcidrake -v | fgrep -i AUDIO\" will tell you which driver your card "
"uses\n"
"by default\n"
"\n"
"- \"grep sound-slot /etc/modprobe.conf\" will tell you what driver it\n"
"currently uses\n"
"\n"
"- \"/sbin/lsmod\" will enable you to check if its module (driver) is\n"
"loaded or not\n"
"\n"
"- \"/sbin/chkconfig --list sound\" and \"/sbin/chkconfig --list alsa\" will\n"
"tell you if sound and alsa services are configured to be run on\n"
"initlevel 3\n"
"\n"
"- \"aumix -q\" will tell you if the sound volume is muted or not\n"
"\n"
"- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.\n"
msgstr ""

#: harddrake/sound.pm:480
#, c-format
msgid "Let me pick any driver"
msgstr ""

#: harddrake/sound.pm:483
#, c-format
msgid "Choosing an arbitrary driver"
msgstr ""

#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: harddrake/sound.pm:486
#, c-format
msgid ""
"If you really think that you know which driver is the right one for your "
"card\n"
"you can pick one in the above list.\n"
"\n"
"The current driver for your \"%s\" sound card is \"%s\" "
msgstr ""

#: harddrake/v4l.pm:12
#, c-format
msgid "Auto-detect"
msgstr "Automatiska nūteikšona"

#: harddrake/v4l.pm:97 harddrake/v4l.pm:285 harddrake/v4l.pm:337
#, c-format
msgid "Unknown|Generic"
msgstr "Nazynuoma|Vyspuoreja"

#: harddrake/v4l.pm:130
#, fuzzy, c-format
msgid "Unknown|CPH05X (bt878) [many vendors]"
msgstr "Nezināms|CPH05X (bt878) [daudz pārdevēju]"

#: harddrake/v4l.pm:131
#, fuzzy, c-format
msgid "Unknown|CPH06X (bt878) [many vendors]"
msgstr "Nezināms|CPH06X (bt878) [daudz pārdevēju]"

#: 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 ""
"Prīkš vairuma myusdīnu TV kartem GNU/Linux bttv moduļs automatiski nūsoka "
"parametrus.\n"
"Ja jiusu karte teik nūteikta napareizi, jius varit nūruodeit pareizūs "
"uztvierieja i kartis tipus ite. Vīnkuorši izavielejit kartis parametrus, ja "
"napīcīšoms."

#: harddrake/v4l.pm:478
#, c-format
msgid "Card model:"
msgstr "Kartis modeļs:"

#: harddrake/v4l.pm:479
#, c-format
msgid "Tuner type:"
msgstr "Uztvierieja tips:"

#: interactive.pm:128 interactive.pm:546 interactive/curses.pm:263
#: interactive/http.pm:103 interactive/http.pm:156 interactive/stdio.pm:39
#: interactive/stdio.pm:148 interactive/stdio.pm:149 ugtk2.pm:423 ugtk2.pm:521
#: ugtk2.pm:814 ugtk2.pm:837
#, c-format
msgid "Ok"
msgstr "Labi"

#: interactive.pm:228 modules/interactive.pm:71 ugtk2.pm:813 wizards.pm:156
#, c-format
msgid "Yes"
msgstr "Da"

#: interactive.pm:228 modules/interactive.pm:71 ugtk2.pm:813 wizards.pm:156
#, c-format
msgid "No"
msgstr "Nā"

#: interactive.pm:262
#, c-format
msgid "Choose a file"
msgstr "Izavielejit failu"

#: interactive.pm:387 interactive/gtk.pm:455
#, c-format
msgid "Add"
msgstr "Pīvīnuot"

#: interactive.pm:387 interactive/gtk.pm:455
#, c-format
msgid "Modify"
msgstr "Maineit"

#: interactive.pm:387 interactive/gtk.pm:455
#, c-format
msgid "Remove"
msgstr "Nūjimt"

#: interactive.pm:546 interactive/curses.pm:263 ugtk2.pm:521
#, c-format
msgid "Finish"
msgstr "Beigt"

#: interactive.pm:547 interactive/curses.pm:260 ugtk2.pm:519
#, c-format
msgid "Previous"
msgstr "Atpakaļ"

#: interactive/gtk.pm:586
#, 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 "Slykta izviele, pamieginit vēlreiz\n"

#: interactive/stdio.pm:30 interactive/stdio.pm:155
#, c-format
msgid "Your choice? (default %s) "
msgstr "Jiusu izviele? (nūklusāti %s) "

#: interactive/stdio.pm:54
#, c-format
msgid ""
"Entries you'll have to fill:\n"
"%s"
msgstr ""
"Īroksti, kas jiusim byus juoaizpylda:\n"
"%s"

#: interactive/stdio.pm:70
#, c-format
msgid "Your choice? (0/1, default `%s') "
msgstr "Jiusu izviele? (0/1, nūklusāti %s) "

#: interactive/stdio.pm:97
#, c-format
msgid "Button `%s': %s"
msgstr "Pūga `%s': %s"

#: interactive/stdio.pm:98
#, c-format
msgid "Do you want to click on this button?"
msgstr "Voi gribit uzklikškinuot iz ituos pūgys?"

#: interactive/stdio.pm:110
#, c-format
msgid "Your choice? (default `%s'%s) "
msgstr "Jiusu izviele? (nūklusāti `%s'%s) "

#: interactive/stdio.pm:110
#, c-format
msgid " enter `void' for void entry"
msgstr " īvodit `void' prīkš tukša īroksta"

#: interactive/stdio.pm:128
#, c-format
msgid "=> There are many things to choose from (%s).\n"
msgstr "=> Ir daudzys lītys, nu kurom izavielēt (%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 ""
"Lyudzu izavielejit pyrmū skaitli nu intervala 1-10, kuru gribit redigēt,\n"
"voi ari vīnkuorši nūspīdit Enter lai turpynuotu.\n"
"Jiusu izviele?"

#: interactive/stdio.pm:144
#, c-format
msgid ""
"=> Notice, a label changed:\n"
"%s"
msgstr ""
"=> Īvārojit, īzeime mainiejās:\n"
"%s"

#: interactive/stdio.pm:151
#, c-format
msgid "Re-submit"
msgstr "Atkuortuoti nūsyuteit"

#. -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:193
#, c-format
msgid "default:LTR"
msgstr "default:LTR"

#: lang.pm:210
#, c-format
msgid "Andorra"
msgstr "Andora"

#: lang.pm:211 timezone.pm:226
#, c-format
msgid "United Arab Emirates"
msgstr "Apvīnuotī Arabu Emirati"

#: lang.pm:212
#, c-format
msgid "Afghanistan"
msgstr "Afganistana"

#: lang.pm:213
#, c-format
msgid "Antigua and Barbuda"
msgstr "Antigva i Barbuda"

#: lang.pm:214
#, c-format
msgid "Anguilla"
msgstr "Angilja"

#: lang.pm:215
#, c-format
msgid "Albania"
msgstr "Albaneja"

#: lang.pm:216
#, c-format
msgid "Armenia"
msgstr "Armeneja"

#: lang.pm:217
#, c-format
msgid "Netherlands Antilles"
msgstr "Holandis Antilis"

#: lang.pm:218
#, c-format
msgid "Angola"
msgstr "Angola"

#: lang.pm:219
#, c-format
msgid "Antarctica"
msgstr "Antarktida"

#: lang.pm:220 timezone.pm:271
#, c-format
msgid "Argentina"
msgstr "Argentiona"

#: lang.pm:221
#, c-format
msgid "American Samoa"
msgstr "Amerikaņu Samoa"

#: lang.pm:222 mirror.pm:12 timezone.pm:229
#, c-format
msgid "Austria"
msgstr "Austreja"

#: lang.pm:223 mirror.pm:11 timezone.pm:267
#, c-format
msgid "Australia"
msgstr "Australeja"

#: lang.pm:224
#, c-format
msgid "Aruba"
msgstr "Aruba"

#: lang.pm:225
#, c-format
msgid "Azerbaijan"
msgstr "Azerbaidžana"

#: lang.pm:226
#, c-format
msgid "Bosnia and Herzegovina"
msgstr "Bosneja Hercogovina"

#: lang.pm:227
#, c-format
msgid "Barbados"
msgstr "Barbadosa"

#: lang.pm:228 timezone.pm:211
#, c-format
msgid "Bangladesh"
msgstr "Bangladeša"

#: lang.pm:229 mirror.pm:13 timezone.pm:231
#, c-format
msgid "Belgium"
msgstr "Beļgeja"

#: lang.pm:230
#, c-format
msgid "Burkina Faso"
msgstr "Burkina Faso"

#: lang.pm:231 timezone.pm:232
#, c-format
msgid "Bulgaria"
msgstr "Bulgareja"

#: lang.pm:232
#, c-format
msgid "Bahrain"
msgstr "Bahreina"

#: lang.pm:233
#, c-format
msgid "Burundi"
msgstr "Burundi"

#: lang.pm:234
#, c-format
msgid "Benin"
msgstr "Benina"

#: lang.pm:235
#, c-format
msgid "Bermuda"
msgstr "Bermundu solys"

#: lang.pm:236
#, c-format
msgid "Brunei Darussalam"
msgstr "Bruneja"

#: lang.pm:237
#, c-format
msgid "Bolivia"
msgstr "Bolīveja"

#: lang.pm:238 mirror.pm:14 timezone.pm:272
#, c-format
msgid "Brazil"
msgstr "Brazīleja"

#: lang.pm:239
#, c-format
msgid "Bahamas"
msgstr "Bahamu solys"

#: lang.pm:240
#, c-format
msgid "Bhutan"
msgstr "Butāna"

#: lang.pm:241
#, c-format
msgid "Bouvet Island"
msgstr "Bouvet Island"

#: lang.pm:242
#, c-format
msgid "Botswana"
msgstr "Botsvāna"

#: lang.pm:243 timezone.pm:230
#, c-format
msgid "Belarus"
msgstr "Boltkrīveja"

#: lang.pm:244
#, c-format
msgid "Belize"
msgstr "Beliza"

#: lang.pm:245 mirror.pm:15 timezone.pm:261
#, c-format
msgid "Canada"
msgstr "Kanada"

#: lang.pm:246
#, c-format
msgid "Cocos (Keeling) Islands"
msgstr "Kokosu solys"

#: lang.pm:247
#, c-format
msgid "Congo (Kinshasa)"
msgstr "Kongo (Kinšasa)"

#: lang.pm:248
#, c-format
msgid "Central African Republic"
msgstr "Central Afrikys republika"

#: lang.pm:249
#, c-format
msgid "Congo (Brazzaville)"
msgstr "Kongo (Brazzaville)"

#: lang.pm:250 mirror.pm:39 timezone.pm:255
#, c-format
msgid "Switzerland"
msgstr "Šveice"

#: lang.pm:251
#, c-format
msgid "Cote d'Ivoire"
msgstr "Kotdivuāra"

#: lang.pm:252
#, c-format
msgid "Cook Islands"
msgstr "Kuka solys"

#: lang.pm:253 timezone.pm:273
#, c-format
msgid "Chile"
msgstr "Čīle"

#: lang.pm:254
#, c-format
msgid "Cameroon"
msgstr "Kamerūna"

#: lang.pm:255 timezone.pm:212
#, c-format
msgid "China"
msgstr "Kīna"

#: lang.pm:256
#, c-format
msgid "Colombia"
msgstr "Kolumbeja"

#: lang.pm:257 mirror.pm:16
#, c-format
msgid "Costa Rica"
msgstr "Kostarika"

#: lang.pm:258
#, c-format
msgid "Serbia & Montenegro"
msgstr ""

#: lang.pm:259
#, c-format
msgid "Cuba"
msgstr "Kuba"

#: lang.pm:260
#, c-format
msgid "Cape Verde"
msgstr "Kabovarde"

#: lang.pm:261
#, c-format
msgid "Christmas Island"
msgstr "Zīmsvātku sola"

#: lang.pm:262
#, c-format
msgid "Cyprus"
msgstr "Kipra"

#: lang.pm:263 mirror.pm:17 timezone.pm:233
#, c-format
msgid "Czech Republic"
msgstr "Čehejis Republika"

#: lang.pm:264 mirror.pm:22 timezone.pm:238
#, c-format
msgid "Germany"
msgstr "Vuoceja"

#: lang.pm:265
#, c-format
msgid "Djibouti"
msgstr "Džibuti"

#: lang.pm:266 mirror.pm:18 timezone.pm:234
#, c-format
msgid "Denmark"
msgstr "Dāneja"

#: lang.pm:267
#, c-format
msgid "Dominica"
msgstr "Dominika"

#: lang.pm:268
#, c-format
msgid "Dominican Republic"
msgstr "Dominikys Republika"

#: lang.pm:269
#, c-format
msgid "Algeria"
msgstr "Alžireja"

#: lang.pm:270
#, c-format
msgid "Ecuador"
msgstr "Ekvadora"

#: lang.pm:271 mirror.pm:19 timezone.pm:235
#, c-format
msgid "Estonia"
msgstr "Igauneja"

#: lang.pm:272
#, c-format
msgid "Egypt"
msgstr "Egipte"

#: lang.pm:273
#, c-format
msgid "Western Sahara"
msgstr "Rītumsahara"

#: lang.pm:274
#, c-format
msgid "Eritrea"
msgstr "Eritreja"

#: lang.pm:275 mirror.pm:37 timezone.pm:253
#, c-format
msgid "Spain"
msgstr "Spāneja"

#: lang.pm:276
#, c-format
msgid "Ethiopia"
msgstr "Etiopeja"

#: lang.pm:277 mirror.pm:20 timezone.pm:236
#, c-format
msgid "Finland"
msgstr "Sūmeja"

#: lang.pm:278
#, c-format
msgid "Fiji"
msgstr "Fidži"

#: lang.pm:279
#, c-format
msgid "Falkland Islands (Malvinas)"
msgstr "Folklendu solys"

#: lang.pm:280
#, c-format
msgid "Micronesia"
msgstr "Mikronezeja"

#: lang.pm:281
#, c-format
msgid "Faroe Islands"
msgstr "Farēru solys"

#: lang.pm:282 mirror.pm:21 timezone.pm:237
#, c-format
msgid "France"
msgstr "Franceja"

#: lang.pm:283
#, c-format
msgid "Gabon"
msgstr "Gabona"

#: lang.pm:284 timezone.pm:257
#, c-format
msgid "United Kingdom"
msgstr "Apvīnuotuo Karaliste"

#: lang.pm:285
#, c-format
msgid "Grenada"
msgstr "Grenada"

#: lang.pm:286
#, c-format
msgid "Georgia"
msgstr "Gruzeja"

#: lang.pm:287
#, c-format
msgid "French Guiana"
msgstr "Franču Gviana"

#: lang.pm:288
#, c-format
msgid "Ghana"
msgstr "Gana"

#: lang.pm:289
#, c-format
msgid "Gibraltar"
msgstr "Gibraltars"

#: lang.pm:290
#, c-format
msgid "Greenland"
msgstr "Grenlande"

#: lang.pm:291
#, c-format
msgid "Gambia"
msgstr "Gambeja"

#: lang.pm:292
#, c-format
msgid "Guinea"
msgstr "Gvineja"

#: lang.pm:293
#, c-format
msgid "Guadeloupe"
msgstr "Gvadelupa"

#: lang.pm:294
#, c-format
msgid "Equatorial Guinea"
msgstr "Ekvatorialuo Gvineja"

#: lang.pm:295 mirror.pm:23 timezone.pm:239
#, c-format
msgid "Greece"
msgstr "Grīkeja"

#: lang.pm:296
#, c-format
msgid "South Georgia and the South Sandwich Islands"
msgstr ""

#: lang.pm:297 timezone.pm:262
#, c-format
msgid "Guatemala"
msgstr "Gvatemala"

#: lang.pm:298
#, c-format
msgid "Guam"
msgstr "Guama"

#: lang.pm:299
#, c-format
msgid "Guinea-Bissau"
msgstr "Gvineja-Bisava"

#: lang.pm:300
#, c-format
msgid "Guyana"
msgstr "Gajana"

#: lang.pm:301
#, c-format
msgid "Hong Kong SAR (China)"
msgstr "Kīna (Honkonga)"

#: lang.pm:302
#, c-format
msgid "Heard and McDonald Islands"
msgstr "Herda sola i Makdonalda solys"

#: lang.pm:303
#, c-format
msgid "Honduras"
msgstr "Hondurasa"

#: lang.pm:304
#, c-format
msgid "Croatia"
msgstr "Horvateja"

#: lang.pm:305
#, c-format
msgid "Haiti"
msgstr "Haiti"

#: lang.pm:306 mirror.pm:24 timezone.pm:240
#, c-format
msgid "Hungary"
msgstr "Ungareja"

#: lang.pm:307 timezone.pm:215
#, c-format
msgid "Indonesia"
msgstr "Indonezeja"

#: lang.pm:308 mirror.pm:25 timezone.pm:241
#, c-format
msgid "Ireland"
msgstr "Īreja"

#: lang.pm:309 mirror.pm:26 timezone.pm:217
#, c-format
msgid "Israel"
msgstr "Izraela"

#: lang.pm:310 timezone.pm:214
#, c-format
msgid "India"
msgstr "Indeja"

#: lang.pm:311
#, c-format
msgid "British Indian Ocean Territory"
msgstr "Britu Indejis okeana teritoreja"

#: lang.pm:312
#, c-format
msgid "Iraq"
msgstr "Iraka"

#: lang.pm:313 timezone.pm:216
#, c-format
msgid "Iran"
msgstr "Irana"

#: lang.pm:314
#, c-format
msgid "Iceland"
msgstr "Islande"

#: lang.pm:315 mirror.pm:27 timezone.pm:242
#, c-format
msgid "Italy"
msgstr "Itāleja"

#: lang.pm:316
#, c-format
msgid "Jamaica"
msgstr "Jamaika"

#: lang.pm:317
#, c-format
msgid "Jordan"
msgstr "Jordaneja"

#: lang.pm:318 mirror.pm:28 timezone.pm:218
#, c-format
msgid "Japan"
msgstr "Japuona"

#: lang.pm:319
#, c-format
msgid "Kenya"
msgstr "Keneja"

#: lang.pm:320
#, c-format
msgid "Kyrgyzstan"
msgstr "Kirgizeja"

#: lang.pm:321
#, c-format
msgid "Cambodia"
msgstr "Kambodža"

#: lang.pm:322
#, c-format
msgid "Kiribati"
msgstr "Kiribati"

#: lang.pm:323
#, c-format
msgid "Comoros"
msgstr "Komoru solys"

#: lang.pm:324
#, c-format
msgid "Saint Kitts and Nevis"
msgstr ""

#: lang.pm:325
#, c-format
msgid "Korea (North)"
msgstr "Zīmeļkoreja"

#: lang.pm:326 timezone.pm:219
#, c-format
msgid "Korea"
msgstr "Koreja"

#: lang.pm:327
#, c-format
msgid "Kuwait"
msgstr "Kuveita"

#: lang.pm:328
#, c-format
msgid "Cayman Islands"
msgstr "Kaimanu solys"

#: lang.pm:329
#, c-format
msgid "Kazakhstan"
msgstr "Kazahstana"

#: lang.pm:330
#, c-format
msgid "Laos"
msgstr "Laosa"

#: lang.pm:331
#, c-format
msgid "Lebanon"
msgstr "Lībeja"

#: lang.pm:332
#, c-format
msgid "Saint Lucia"
msgstr "Sentlūseja"

#: lang.pm:333
#, c-format
msgid "Liechtenstein"
msgstr "Lihtenšteina"

#: lang.pm:334
#, c-format
msgid "Sri Lanka"
msgstr "Šrilanka"

#: lang.pm:335
#, c-format
msgid "Liberia"
msgstr "Libereja"

#: lang.pm:336
#, c-format
msgid "Lesotho"
msgstr "Lesoto"

#: lang.pm:337 timezone.pm:243
#, c-format
msgid "Lithuania"
msgstr "Lītuva"

#: lang.pm:338 timezone.pm:244
#, c-format
msgid "Luxembourg"
msgstr "Luksemburga"

#: lang.pm:339
#, c-format
msgid "Latvia"
msgstr "Latveja"

#: lang.pm:340
#, c-format
msgid "Libya"
msgstr "Libeja"

#: lang.pm:341
#, c-format
msgid "Morocco"
msgstr "Maroka"

#: lang.pm:342
#, c-format
msgid "Monaco"
msgstr "Monako"

#: lang.pm:343
#, c-format
msgid "Moldova"
msgstr "Moldaveja"

#: lang.pm:344
#, c-format
msgid "Madagascar"
msgstr "Madagaskara"

#: lang.pm:345
#, c-format
msgid "Marshall Islands"
msgstr "Maršala solys"

#: lang.pm:346
#, c-format
msgid "Macedonia"
msgstr "Makedoneja"

#: lang.pm:347
#, c-format
msgid "Mali"
msgstr "Mali"

#: lang.pm:348
#, c-format
msgid "Myanmar"
msgstr "Mjanma"

#: lang.pm:349
#, c-format
msgid "Mongolia"
msgstr "Mongoleja"

#: lang.pm:350
#, c-format
msgid "Northern Mariana Islands"
msgstr "Zemeļmarianys solys"

#: lang.pm:351
#, c-format
msgid "Martinique"
msgstr "Martinika"

#: lang.pm:352
#, c-format
msgid "Mauritania"
msgstr "Mauritaneja"

#: lang.pm:353
#, c-format
msgid "Montserrat"
msgstr "Montserrata"

#: lang.pm:354
#, c-format
msgid "Malta"
msgstr "Malta"

#: lang.pm:355
#, c-format
msgid "Mauritius"
msgstr "Mauriceja"

#: lang.pm:356
#, c-format
msgid "Maldives"
msgstr "Maldivu solys"

#: lang.pm:357
#, c-format
msgid "Malawi"
msgstr "Malavi"

#: lang.pm:358 timezone.pm:263
#, c-format
msgid "Mexico"
msgstr "Meksika"

#: lang.pm:359 timezone.pm:220
#, c-format
msgid "Malaysia"
msgstr "Malaizeja"

#: lang.pm:360
#, c-format
msgid "Mozambique"
msgstr "Mozambika"

#: lang.pm:361
#, c-format
msgid "Namibia"
msgstr "Namibeja"

#: lang.pm:362
#, c-format
msgid "New Caledonia"
msgstr "Jaunkaledoneja"

#: lang.pm:363
#, c-format
msgid "Niger"
msgstr "Nigera"

#: lang.pm:364
#, c-format
msgid "Norfolk Island"
msgstr "Norfolkys sola"

#: lang.pm:365
#, c-format
msgid "Nigeria"
msgstr "Nigereja"

#: lang.pm:366
#, c-format
msgid "Nicaragua"
msgstr "Nikaragva"

#: lang.pm:367 mirror.pm:29 timezone.pm:245
#, c-format
msgid "Netherlands"
msgstr "Holande"

#: lang.pm:368 mirror.pm:31 timezone.pm:246
#, c-format
msgid "Norway"
msgstr "Norvegeja"

#: lang.pm:369
#, c-format
msgid "Nepal"
msgstr "Nepala"

#: lang.pm:370
#, c-format
msgid "Nauru"
msgstr "Nauru"

#: lang.pm:371
#, c-format
msgid "Niue"
msgstr "Niue"

#: lang.pm:372 mirror.pm:30 timezone.pm:268
#, c-format
msgid "New Zealand"
msgstr "Jaunzelande"

#: lang.pm:373
#, c-format
msgid "Oman"
msgstr "Omāna"

#: lang.pm:374
#, c-format
msgid "Panama"
msgstr "Panama"

#: lang.pm:375
#, c-format
msgid "Peru"
msgstr "Peru"

#: lang.pm:376
#, c-format
msgid "French Polynesia"
msgstr "Franču Polinezeja"

#: lang.pm:377
#, c-format
msgid "Papua New Guinea"
msgstr "Papua Jaungvineja"

#: lang.pm:378 timezone.pm:221
#, c-format
msgid "Philippines"
msgstr "Filipinys"

#: lang.pm:379
#, c-format
msgid "Pakistan"
msgstr "Pakistana"

#: lang.pm:380 mirror.pm:32 timezone.pm:247
#, c-format
msgid "Poland"
msgstr "Pūleja"

#: lang.pm:381
#, c-format
msgid "Saint Pierre and Miquelon"
msgstr ""

#: lang.pm:382
#, c-format
msgid "Pitcairn"
msgstr "Pitkerna"

#: lang.pm:383
#, c-format
msgid "Puerto Rico"
msgstr "Puerto Riko"

#: lang.pm:384
#, c-format
msgid "Palestine"
msgstr "Palestina"

#: lang.pm:385 mirror.pm:33 timezone.pm:248
#, c-format
msgid "Portugal"
msgstr "Portugāle"

#: lang.pm:386
#, c-format
msgid "Paraguay"
msgstr "Paragvaja"

#: lang.pm:387
#, c-format
msgid "Palau"
msgstr "Palau"

#: lang.pm:388
#, c-format
msgid "Qatar"
msgstr "Katara"

#: lang.pm:389
#, c-format
msgid "Reunion"
msgstr "Reinjona"

#: lang.pm:390 timezone.pm:249
#, c-format
msgid "Romania"
msgstr "Rumaneja"

#: lang.pm:391 mirror.pm:34
#, c-format
msgid "Russia"
msgstr "Krīveja"

#: lang.pm:392
#, c-format
msgid "Rwanda"
msgstr "Ruanda"

#: lang.pm:393
#, c-format
msgid "Saudi Arabia"
msgstr "Sauda Arabeja"

#: lang.pm:394
#, c-format
msgid "Solomon Islands"
msgstr "Solomona solys"

#: lang.pm:395
#, c-format
msgid "Seychelles"
msgstr "Seišeļu solys"

#: lang.pm:396
#, c-format
msgid "Sudan"
msgstr "Sudāna"

#: lang.pm:397 mirror.pm:38 timezone.pm:254
#, c-format
msgid "Sweden"
msgstr "Zvīdreja"

#: lang.pm:398 timezone.pm:222
#, c-format
msgid "Singapore"
msgstr "Singapūra"

#: lang.pm:399
#, c-format
msgid "Saint Helena"
msgstr "Svātuos Helenys sola"

#: lang.pm:400 timezone.pm:252
#, c-format
msgid "Slovenia"
msgstr "Sloveneja"

#: lang.pm:401
#, c-format
msgid "Svalbard and Jan Mayen Islands"
msgstr "Svalbāra i Jana Mejena solys"

#: lang.pm:402 mirror.pm:35 timezone.pm:251
#, c-format
msgid "Slovakia"
msgstr "Slovakeja"

#: lang.pm:403
#, c-format
msgid "Sierra Leone"
msgstr "Sjerra Leone"

#: lang.pm:404
#, c-format
msgid "San Marino"
msgstr "Sanmarino"

#: lang.pm:405
#, c-format
msgid "Senegal"
msgstr "Senegala"

#: lang.pm:406
#, c-format
msgid "Somalia"
msgstr "Somaleja"

#: lang.pm:407
#, c-format
msgid "Suriname"
msgstr "Surinama"

#: lang.pm:408
#, c-format
msgid "Sao Tome and Principe"
msgstr ""

#: lang.pm:409
#, c-format
msgid "El Salvador"
msgstr "Salvadora"

#: lang.pm:410
#, c-format
msgid "Syria"
msgstr "Sīreja"

#: lang.pm:411
#, c-format
msgid "Swaziland"
msgstr "Svazilenda"

#: lang.pm:412
#, c-format
msgid "Turks and Caicos Islands"
msgstr "Tērksa i Kaikosa solys"

#: lang.pm:413
#, c-format
msgid "Chad"
msgstr "Čada"

#: lang.pm:414
#, c-format
msgid "French Southern Territories"
msgstr "Franču dīnvydu teritorejis"

#: lang.pm:415
#, c-format
msgid "Togo"
msgstr "Togo"

#: lang.pm:416 mirror.pm:41 timezone.pm:224
#, c-format
msgid "Thailand"
msgstr "Taizeme"

#: lang.pm:417
#, c-format
msgid "Tajikistan"
msgstr "Tadžikistana"

#: lang.pm:418
#, c-format
msgid "Tokelau"
msgstr "Tokelau solys"

#: lang.pm:419
#, c-format
msgid "East Timor"
msgstr "Austrum Timūra"

#: lang.pm:420
#, c-format
msgid "Turkmenistan"
msgstr "Turkmenistana"

#: lang.pm:421
#, c-format
msgid "Tunisia"
msgstr "Tuniseja"

#: lang.pm:422
#, c-format
msgid "Tonga"
msgstr "Tonga"

#: lang.pm:423 timezone.pm:225
#, c-format
msgid "Turkey"
msgstr "Turceja"

#: lang.pm:424
#, c-format
msgid "Trinidad and Tobago"
msgstr "Trinidada i Tobago"

#: lang.pm:425
#, c-format
msgid "Tuvalu"
msgstr "Tuvalu"

#: lang.pm:426 mirror.pm:40 timezone.pm:223
#, c-format
msgid "Taiwan"
msgstr "Taivana"

#: lang.pm:427 timezone.pm:208
#, c-format
msgid "Tanzania"
msgstr "Tanzaneja"

#: lang.pm:428 timezone.pm:256
#, c-format
msgid "Ukraine"
msgstr "Ukraina"

#: lang.pm:429
#, c-format
msgid "Uganda"
msgstr "Uganda"

#: lang.pm:430
#, c-format
msgid "United States Minor Outlying Islands"
msgstr "ASV Mozuos Antiļu solys"

#: lang.pm:431 mirror.pm:42 timezone.pm:264
#, c-format
msgid "United States"
msgstr "A.S.V."

#: lang.pm:432
#, c-format
msgid "Uruguay"
msgstr "Urugvaja"

#: lang.pm:433
#, c-format
msgid "Uzbekistan"
msgstr "Uzbekistana"