~ruther/guix-local

ref: e68ec94fdb4c00a950480e845bc3746d6f01ce97 guix-local/po/doc/guix-manual.zh_CN.po -rw-r--r-- 443.6 KiB
e68ec94f — Christopher Baines gnu: guix-build-coordinator: Update to 0-136.a1c18b1. 30 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
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
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
# Chinese (simplified) translation of the Guix manual.
# Copyright (C) 2013-2019 the authors of Guix (msgids) and the following authors (msgstr)
# This file is distributed under the same license as the guix manual package.
# Meiyo Peng <meiyo@riseup.net>, 2019.
# 郑俊杰 <873216071@qq.com>, 2021, 2023, 2024.
# Liu Tao <lyuutau@outlook.com>, 2021, 2023.
# Xinglu Chen <public@yoctocell.xyz>, 2021.
# Charles Lee <lchopn@gmail.com>, 2021.
# Went He <1437061699@qq.com>, 2021, 2023.
# Whired Planck <fungdaat31@outlook.com>, 2022.
# chin housin <sharingfun@163.com>, 2022.
# Julien Lepiller <fedora-account@lepiller.eu>, 2022.
# Yang Yulin <yylteam@icloud.com>, 2022.
# Thomas Cheng <orangecza@gmail.com>, 2023.
# Hilton Chain <yareli@ultrarare.space>, 2023.
# Yi Cao <cygauss@outlook.com>, 2023.
# Burgess Chang <bsc@brsvh.org>, 2023.
# Florian Pelz <pelzflorian@pelzflorian.de>, 2023, 2024, 2025.
# a x <meruarasu@email1.io>, 2023, 2025.
# Integral <integral@member.fsf.org>, 2024.
# Celestial y <clsty@celestialy.top>, 2024, 2025.
# Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024, 2025.
# voyage 200 <hello_cmd@outlook.com>, 2024.
# Miku Nakano <jinleho@hotmail.com>, 2025.
# rw flurando <2024110144@mails.szu.edu.cn>, 2025.
# Rivulet Cedar <ls-shandong@users.noreply.translate.fedoraproject.org>, 2025.
# Poesty Li <poesty7450@gmail.com>, 2025.
# Rivulet Cedar <rivulet_cedar@yeah.net>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: guix-manual 1.0.1-pre1\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2026-01-06 03:18+0000\n"
"PO-Revision-Date: 2026-01-01 14:27+0000\n"
"Last-Translator: pelzflorian <pelzflorian@noreply.codeberg.org>\n"
"Language-Team: Chinese (Simplified Han script) <https://translate.codeberg.org/projects/guix/documentation-manual/zh_Hans/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

msgid "Contributing"
msgstr "贡献"

msgid "This project is a cooperative effort, and we need your help to make it grow! Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} on the Libera Chat IRC network.  We welcome ideas, bug reports, patches, and anything that may be helpful to the project.  We particularly welcome help on packaging (@pxref{Packaging Guidelines})."
msgstr "这个项目是大家合作的成果,需要你的帮助才能发展壮大!请通过 @email{guix-devel@@gnu.org} 和 Libera Chat IRC 上的 @code{#guix} 联系我们。我们欢迎各种想法、bug 反馈、补丁以及任何对项目有帮助的内容,尤其是打包方面的帮助(@pxref{Packaging Guidelines})."

msgid "code of conduct, of contributors"
msgstr "贡献者行为准则"

msgid "contributor covenant"
msgstr "贡献者契约"

msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities.  To this end our project uses a ``Contributor Covenant'', which was adapted from @url{https://contributor-covenant.org/}.  You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
msgstr "我们希望提供一个温暖、友好、无骚扰的环境,让任何人都能尽其所能贡献。为此,我们的项目采用了“贡献者契约”,该契约改编自 @url{https://contributor-covenant.org/}。在源代码目录里的 @file{CODE-OF-CONDUCT} 文件中可以找到一份本地版。"

msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
msgstr "贡献者不必在提交补丁和在线交流时使用法定姓名。他们可以使用自己选择的任何名字或者笔名。"

msgid "Requirements"
msgstr "需求"

msgid "Software needed to build and run Guix."
msgstr "构建和运行 Guix 需要的软件。"

msgid "Building from Git"
msgstr "从 Git 构建"

msgid "The latest and greatest."
msgstr "最新的并且最好的。"

msgid "Running the Test Suite"
msgstr "运行测试套件"

msgid "Testing Guix."
msgstr "测试 Guix。"

msgid "Running Guix Before It Is Installed"
msgstr "在安装之前运行 Guix"

msgid "Hacker tricks."
msgstr "黑客技巧。"

msgid "The Perfect Setup"
msgstr "完美的配置"

msgid "The right tools."
msgstr "正确的工具。"

msgid "Alternative Setups"
msgstr "替代配置"

msgid "Other possible tools that do the job."
msgstr "其他可能用于完成任务的工具。"

msgid "Source Tree Structure"
msgstr "源码树结构"

msgid "Source code guided tour."
msgstr "源码导览。"

msgid "Packaging Guidelines"
msgstr "打包指导"

msgid "Growing the distribution."
msgstr "帮助发行版成长。"

msgid "Coding Style"
msgstr "代码风格"

msgid "Hygiene of the contributor."
msgstr "贡献者代码卫生守则。"

msgid "Submitting Patches"
msgstr "提交补丁"

msgid "Share your work."
msgstr "分享你的工作。"

msgid "Tracking Bugs and Changes"
msgstr "跟踪程序漏洞及改动"

msgid "Keeping it all organized."
msgstr "保持井井有条。"

msgid "Teams"
msgstr "团队"

msgid "Coordinating efforts."
msgstr "协调努力。"

msgid "Making Decisions"
msgstr "做出决定"

msgid "Collectively choosing the way forward."
msgstr "共同选择前进的方向。"

msgid "Commit Access"
msgstr "提交权利"

msgid "Pushing to the official repository."
msgstr "推送到官方仓库。"

msgid "Reviewing the Work of Others"
msgstr "审阅他人的工作"

msgid "Some guidelines for sharing reviews."
msgstr "分享评论的一些指导方针。"

msgid "Updating the Guix Package"
msgstr "更新 Guix 软件包"

msgid "Updating the Guix package definition."
msgstr "更新 Guix 的软件包定义。"

msgid "Deprecation Policy"
msgstr "弃用策略"

msgid "Commitments and tools for deprecation."
msgstr "用于弃用的提交和工具。"

msgid "Writing Documentation"
msgstr "撰写文档"

msgid "Improving documentation in GNU Guix."
msgstr "完善 GNU Guix 中的文档。"

msgid "Translating Guix"
msgstr "翻译 Guix"

msgid "Make Guix speak your native language."
msgstr "用您的母语翻译 Guix。"

msgid "Contributing to Guix's Infrastructure"
msgstr "为 Guix 的基础设施做贡献"

msgid "Make Guix ecosystem work better."
msgstr "让 Guix 生态系统更好地运作。"

msgid "You can easily hack on Guix itself using Guix and Git, which we use for version control (@pxref{Building from Git})."
msgstr "你可以轻松地使用 Guix 和 Git 来折腾 Guix 本身,我们将其用于版本控制。(@pxref{Building from Git})."

msgid "But when packaging Guix for foreign distros or when bootstrapping on systems without Guix, and if you decide to not just trust and install our readily made binary (@pxref{Binary Installation}), you can download a release version of our reproducible source tarball and read on."
msgstr "但是,在为外国发行版打包 Guix 或在没有 Guix 的系统上引导时,如果您决定不要直接信任并安装我们现成的二进制文件(@pxref{Binary Installation}),您可以下载一份我们可复现的源码包的发布版并继续阅读。"

msgid "This section lists requirements when building Guix from source.  The build procedure for Guix is the same as for other GNU software, and is not covered here.  Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details."
msgstr "这个小节列举了从源代码构建 Guix 的要求。构建 Guix 的步骤和其它 GNU 软件相同,这里不介绍。请阅读 Guix 源码树里的 @file{README} 和 @file{INSTALL} 文件以了解更多细节。"

msgid "official website"
msgstr "官方网站"

msgid "GNU Guix is available for download from its website at @url{https://guix.gnu.org}."
msgstr "GNU Guix 可以从它的网站下载 @url{https://guix.gnu.org}。"

msgid "GNU Guix depends on the following packages:"
msgstr "GNU Guix 依赖以下软件包:"

msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,"
msgstr "@url{https://gnu.org/software/guile/, GNU Guile},版本 3.0.x,"

msgid "version 3.0.3 or later;"
msgstr "版本 3.0.3 或更新;"

msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt},版本"

msgid "0.1.0 or later;"
msgstr "0.1.0 或更新;"

msgid "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to @uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS until version 3.7.8 included.};"
msgstr "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS}(@pxref{Guile Preparations, 如何为 Guile 安装 GnuTLS 绑定, gnutls-guile, GnuTLS-Guile})@footnote{关于 @uref{https://gnutls.org/, GnuTLS} 的 Guile 绑定作为 GnuTLS 直到(含)版本 3.7.8 的一部分分发。};"

msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, 版本 0.1.0 或更新;"

msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},"
msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},"

msgid "version 0.1.0 or later;"
msgstr "版本 0.1.0 或更新;"

msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"

msgid "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};"
msgstr "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};"

msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.10.0 or later;"
msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git},版本 0.10.0 或更新;"

msgid "@uref{https://git-scm.com, Git} (yes, both!);"
msgstr "@uref{https://git-scm.com, Git}(是的,两个都是!);"

msgid "@uref{https://github.com/aconchillo/guile-json, Guile-JSON}"
msgstr "@uref{https://github.com/aconchillo/guile-json, Guile-JSON}"

msgid "4.3.0 or later;"
msgstr "4.3.0 或更新;"

msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
msgstr "@url{https://www.gnu.org/software/make/, GNU Make}."

msgid "The following dependencies are optional:"
msgstr "这些依赖是可选的:"

msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later."
msgstr "对构建下发(@pxref{Daemon Offload Setup})和 @command{guix copy} (@pxref{Invoking guix copy})的支持依赖于 @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},版本 0.13.0 或更新。"

msgid "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd compression and decompression in @command{guix publish} and for substitutes (@pxref{Invoking guix publish})."
msgstr "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd},用于在 @command{guix publish} 中进行 zstd 压缩和解压缩,以及用于 substitutes (@pxref{Invoking guix publish})."

msgid "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for the @code{crate} importer (@pxref{Invoking guix import})."
msgstr "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} 用于 @code{crate} 导入器(@pxref{Invoking guix import})。"

msgid "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for the @code{go} importer (@pxref{Invoking guix import}) and for some of the ``updaters'' (@pxref{Invoking guix refresh})."
msgstr "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} 用于 @code{go} 导入器(@pxref{Invoking guix import})以及一些“升级器”(@pxref{Invoking guix refresh})。"

msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
msgstr "当 @url{http://www.bzip.org, libbz2} 可用时,@command{guix-daemon} 可以用它来压缩构建日志。"

msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
msgstr "除非 @option{--disable-daemon} 被传给 @command{configure},以下软件包也被需要:"

msgid "@url{https://gnupg.org/, GNU libgcrypt};"
msgstr "@url{https://gnupg.org/, GNU libgcrypt};"

msgid "@url{https://sqlite.org, SQLite 3};"
msgstr "@url{https://sqlite.org, SQLite 3};"

msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
msgstr "@url{https://gcc.gnu.org, GCC's g++},带有支持对于"

msgid "C++11 standard."
msgstr "C++11 标准。"

msgid "authentication, of a Guix checkout"
msgstr "Guix 签出的身份认证"

msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
msgstr "如何确保已获得存储库的真实副本?为此请运行 @command{guix git authenticate},将 @dfn{channel introduction}(@pxref{Invoking guix git authenticate})的提交和 OpenPGP 指纹传给它:"

msgid ""
"git fetch origin keyring:keyring\n"
"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
msgstr ""
"git fetch origin keyring:keyring\n"
"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"

msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
msgstr "此命令完成后,若成功则退出代码为零;否则打印一条错误消息,以非零代码退出。"

msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed.  Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium.  This ``bootstraps'' the trust chain."
msgstr "正如你所看到的,这里存在一个先决条件的问题:你首先需要安装 Guix。典型地,你会安装 Guix 系统(@pxref{System Installation})或在 另一个发行版上安装 Guix(@pxref{Binary Installation});无论哪种情况,你 都需要在安装介质上验证 OpenPGP 签名。这“引导”了信任链。"

msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
msgstr "设置 Guix 开发环境的最简单的方式当然是使用 Guix!下面这些命令启动一个 shell,所有的依赖和环境变量都为折腾 Guix 设置好了:"

msgid "guix shell -D guix -CPW\n"
msgstr "guix shell -D guix -CPW\n"

msgid "or even, from within a Git worktree for Guix:"
msgstr "或者,从一个 Git worktree 内部使用 Guix:"

msgid "If @option{-C} (short for @option{--container}) is not supported on your system, try @command{--pure} instead of @option{-CPW}.  @xref{Invoking guix shell}, for more information on that command."
msgstr "如果 @option{-C}(@option{--container} 的缩写)在你的系统上不被支持,请尝试使用 @command{--pure} 来代替 @option{-CPW}。有关该命令的更多信息见 @xref{Invoking guix shell}."

msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
msgstr "如果在从检出中构建 Guix 时无法使用 Guix,则除了安装说明中提到的 软件包(@pxref{Requirements})外,以下是所需的软件包。"

msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"

msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
msgstr "@url{https://gnu.org/software/automake/, GNU Automake};"

msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext};"

msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"

msgid "@url{https://www.graphviz.org/, Graphviz};"
msgstr "@url{https://www.graphviz.org/, Graphviz};"

msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man(可选)}。"

msgid "From there you can generate the build system infrastructure using Autoconf and Automake:"
msgstr "在这里你可以使用 Autoconf 和 Automake 生成构建系统的基础设施:"

msgid "./bootstrap\n"
msgstr "./bootstrap\n"

msgid "If you get an error like this one:"
msgstr "若你得到一个像这样的错误:"

msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"

msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The same holds for the @file{guile.m4} set of macros provided by Guile.  For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke the following command:"
msgstr "它可能意味着 Autoconf 无法找到由 pkg-config 提供的 @file{pkg.m4}。请确保 @file{pkg.m4} 可用。由 Guile 提供的 @file{guile.m4} 宏也类似。假如你的 Automake 安装在 @file{/usr/local},那么它不会从 @file{/usr/share} 里寻找 @file{.m4} 文件。这种情况下,你必须执行下面这个命令:"

msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"

msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
msgstr "更多信息请参考 @xref{Macro Search Path,,, automake, The GNU Automake Manual}."

msgid "state directory"
msgstr "state 目录"

msgid "localstatedir"
msgstr "localstatedir"

msgid "system configuration directory"
msgstr "系统配置目录"

msgid "sysconfdir"
msgstr "sysconfdir"

msgid "Then, run:"
msgstr "然后,运行:"

msgid "./configure\n"
msgstr "./configure\n"

msgid "Optionally, @code{--localstatedir} and @code{--sysconfdir} can also be provided as arguments.  By default, @code{localstatedir} is @file{/var} (@pxref{The Store}, for information about this) and @code{sysconfdir} is @file{/etc}.  Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir} and @code{sysconfdir} values, which get recorded in the @code{(guix config)} Guile module."
msgstr "如果你愿意,@code{--localstatedir} 和 @code{--sysconfdir} 也能作为参数被提供。在默认情况下,@code{localstatedir} 是 @file{/var}(如欲了解更多信息,@pxref{The Store})和 @code{sysconfdir} 是 @file{/etc}。请注意,即使最后不运行 @command{make install}(因为没有必要),传递正确的 @code{localstatedir} 和 @code{sysconfdir} 参数值依然是重要的,因为它们会被记录在 Guile 的 @code{(guix config)} 模块内。"

msgid "Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}):"
msgstr "最后,你可以构建 Guix。若你希望,还可以运行测试 (@pxref{运行测试套件}):"

msgid ""
"make\n"
"make check\n"
msgstr ""
"make\n"
"make check\n"

msgid "If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}."
msgstr "如果遇到任何错误,请参考“安装指导”(@pxref{Installation})或者给@email{guix-devel@@gnu.org, 邮件列表}发邮件。"

msgid "From there on, you can authenticate all the commits included in your checkout by running:"
msgstr "从这开始,你可以运行下面的命令认证检出中的所有提交:"

msgid ""
"guix git authenticate \\\n"
"  9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
msgstr ""
"guix git authenticate \\\n"
"  9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"

msgid "The first run takes a couple of minutes, but subsequent runs are faster.  On subsequent runs, you can run the command without any arguments since the @dfn{introduction} (the commit ID and OpenPGP fingerprints above)  will have been recorded@footnote{This requires a recent version of Guix, from May 2024 or more recent.}:"
msgstr "第一次运行需要几分钟,但后续运行会更快。在后续运行中,您可以不带任何参数运行命令,因为 @dfn{介绍}(上面的提交 ID 和 OpenPGP 指纹)将被记录@footnote{这需要 2024 年 5 月或更高版本的 Guix。}:"

msgid "guix git authenticate\n"
msgstr "guix git authenticate\n"

msgid "When your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch @i{via} the @option{-k} option.  The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:"
msgstr "或者,当你的本地 Git 仓库与默认的不符时,你可以通过环境变量 @code{GUIX_GIT_KEYRING} 提供一个对@code{keyring} 分支的引用。下面的例子假设你有一个名为 @samp{myremote} 的 Git 远程分支,它指向官方仓库:"

msgid ""
"guix git authenticate \\\n"
"  -k myremote/keyring \\\n"
"  9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
msgstr ""
"guix git authenticate \\\n"
"  -k myremote/keyring \\\n"
"  9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"

msgid "@xref{Invoking guix git authenticate}, for more information on this command."
msgstr "@xref{Invoking guix git authenticate},以获得关于此命令的更多信息。"

msgid "Note"
msgstr "注"

msgid "By default, hooks are installed such that @command{guix git authenticate} is invoked anytime you run @command{git pull} or @command{git push}."
msgstr "钩子被默认配置以便在@command{git pull} 或 @command{git push}运行时自动调用 @command{guix git authenticate}."

msgid "After updating the repository, @command{make} might fail with an error similar to the following example:"
msgstr "在每次更新仓库后,@command{make} 可能会因为一个错误而失败,就像下面的例子:"

msgid ""
"error: failed to load 'gnu/packages/linux.scm':\n"
"ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n"
msgstr ""
"error: failed to load 'gnu/packages/linux.scm':\n"
"ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n"

msgid "This means that one of the record types that Guix defines (in this example, the @code{origin} record) has changed, and all of guix needs to be recompiled to take that change into account.  To do so, run @command{make clean-go} followed by @command{make}."
msgstr "它的意思是 Guix 定义的一个记录类型变动了(在这个例子中,为 @code{origin} 记录),并且全部 guix 都需要重编译来让这个变动生效。运行 @command{make clean-go} 和 @command{make} 来重新编译。"

msgid "Should @command{make} fail with an Automake error message after updating, you need to repeat the steps outlined in this section, commencing with @command{./bootstrap}."
msgstr "如果 @command{make} 在更新后伴随着 Automake 报错而失败,您需要重复本节中概述的步骤,从 @command{./bootstrap} 开始。"

msgid "test suite"
msgstr "测试套件"

msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite.  It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software.  To run the test suite, type:"
msgstr "成功执行 @command{configure} 和 @code{make} 之后,最好运行测试套件。它可以帮助查找设置和环境的错误,或者是 Guix 自身的 bug--并且,报告测试错误是帮助改进软件的好方法。输入下面的命令以运行测试套件:"

msgid "make check\n"
msgstr "make check\n"

msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up.  The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache."
msgstr "测试用例可以并行运行:你可以用 GNU@tie{}make 的 @code{-j} 参数来加速运行。在一台较新的机器上第一次运行可能会花几分钟,后续的运行会更快,因为为测试创建的仓库已经包含了各种缓存。"

msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
msgstr "你还可以通过定义 makefile 的 @code{TESTS} 变量来运行测试的一个子集,如同以下示例:"

msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"

msgid "By default, tests results are displayed at a file level.  In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
msgstr "默认情况下,测试结果只展示到文件层级。为了查看每个独立的测试用例的详情,可以像这样定义 @code{SCM_LOG_DRIVER_FLAGS} makefile 变量:"

msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"

msgid ""
"export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n"
"make check TESTS=\"tests/packages.scm\"\n"
msgstr ""
"export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n"
"make check TESTS=\"tests/packages.scm\"\n"

msgid "Those wishing to inspect the results of failed tests directly from the command line can add the @option{--errors-only=yes} option to the @code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE} Automake makefile variable, as in:"
msgstr "那些希望直接通过命令行检查失败测试结果的用户可以将 @option{--errors-only=yes} 选项添加到 @code{SCM_LOG_DRIVER_FLAGS} makefile 变量中,并设置 @code{VERBOSE} Automake makefile 变量,如下所示:"

msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n"
msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n"

msgid "The @option{--show-duration=yes} option can be used to print the duration of the individual test cases, when used in combination with @option{--brief=no}:"
msgstr "当与 @option{--brief=no} 结合使用时,可以使用 @option{--show-duration=yes} 选项来输出单个测试用例的持续时间:"

msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n"
msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n"

msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file.  Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message."
msgstr "遇到错误时,请给 @email{bug-guix@@gnu.org} 发邮件,并附带 @file{test-suite.log} 文件。请在消息里说明使用的 Guix 的版本信息和依赖(@pxref{Requirements})的版本信息。"

msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances.  It can only run on systems where Guix is already installed, using:"
msgstr "Guix 还附带了一个可以测试整个 Guix 系统实例的全系统测试套件。它只能在已经安装 Guix 的系统上运行,使用:"

msgid "make check-system\n"
msgstr "make check-system\n"

msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
msgstr "或者再次,通过定义 @code{TESTS} 选择测试的一个子集来运行:"

msgid "make check-system TESTS=\"basic mcron\"\n"
msgstr "make check-system TESTS=\"basic mcron\"\n"

msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules.  They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM).  They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}).  Some of them require a lot of storage space to hold VM images."
msgstr "这些系统测试在 @code{(gnu tests @dots{})} 模块中定义。原理是,在一个虚拟机(virtual machine, VM)中,以轻量级的仪表运行待测试的操作系统。它们的计算密集程度可能很高,也可能相对较低,这取决于其依赖项是否有 substitues 可用(@pxref{Substitutes})。其中一些需要大量存储空间来保存 VM 镜像。"

msgid "If you encounter an error like:"
msgstr "若你遇到一个像这样的错误:"

msgid ""
"Compiling Scheme modules...\n"
"ice-9/eval.scm:142:16: In procedure compile-top-call:\n"
"error: all-system-tests: unbound variable\n"
"hint: Did you forget `(use-modules (gnu tests))'?\n"
msgstr ""
"Compiling Scheme modules...\n"
"ice-9/eval.scm:142:16: In procedure compile-top-call:\n"
"error: all-system-tests: unbound variable\n"
"提示:你是否忘记了 `(use-modules (gnu tests))'?\n"

msgid "there may be inconsistencies in the work tree from previous builds.  To resolve this, try running @command{make clean-go} followed by @command{make}."
msgstr "工作树中可能存在来自先前构建的不一致处。要解决此问题,尝试运行 @command{make clean-go},再运行 @command{make}。"

msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
msgstr "再次,若遇到测试错误,请向 @email{bug-guix@@gnu.org} 发送所有细节信息。"

msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them.  So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
msgstr "为了保持一个正常的工作环境,你会发现在不实际安装的情况下测试本地源码树签出中的更改是非常有用的。这样你可以更好地区分自己作为“最终用户”和“测试员”的角色。"

msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}.  To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; @pxref{Building from Git} to generate it).  As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
msgstr "这样,即使你没有运行 @code{make install},所有的命令行工具都可以使用。为此,你先要有一个全部依赖都可用的环境(@pxref{从 Git 构建}),然后简单地为每个命令添加前缀 @command{./pre-inst-env}(@file{pre-inst-env} 脚本在 Guix 构建树的最顶层,@pxref{从 Git 构建}来生成它)。作为例子,以下是你如何构建 @code{hello} 包,如同在你的工作树中定义的那样(这假设了 @command{guix-daemon} 正在运行于你的系统上;如果是不同的版本也可以):"

msgid "$ ./pre-inst-env guix build hello\n"
msgstr "$ ./pre-inst-env guix build hello\n"

msgid "Similarly, an example for a Guile session using the Guix modules:"
msgstr "类似地,一个使用 Guix 模块的 Guile 会话的例子:"

msgid ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
"\n"
msgstr ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
"\n"

msgid ";;; (\"x86_64-linux\")\n"
msgstr ";;; (\"x86_64-linux\")\n"

msgid "REPL"
msgstr "REPL"

msgid "read-eval-print loop"
msgstr "读取 - 估值 - 打印(read-eval-print)循环"

msgid "@dots{} and for a REPL (@pxref{Using Guix Interactively}):"
msgstr "@dots{} 以及为了一个 REPL(@pxref{Using Guix Interactively}):"

msgid ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
"                       (fold-packages\n"
"                         (lambda (package lst)\n"
"                           (if (string-prefix? \"python\"\n"
"                                               (package-name package))\n"
"                               (cons package lst)\n"
"                               lst))\n"
"                         '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"
msgstr ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
"                       (fold-packages\n"
"                         (lambda (package lst)\n"
"                           (if (string-prefix? \"python\"\n"
"                                               (package-name package))\n"
"                               (cons package lst)\n"
"                               lst))\n"
"                         '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"

msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
msgstr "如果你在折腾守护进程及其支持代码,或者 @command{guix-daemon} 尚未在系统中运行,你可以直接从构建树中启动它@footnote{@command{sudo} 的 @option{-E} 选项保证了 @code{GUILE_LOAD_PATH} 被正确设置,以便 @command{guix-daemon} 及其使用的工具可以找到它们所需的 Guile 模块。}:"

msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"

msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
msgstr "@command{pre-inst-env} 脚本设置好了为了支持这个的所有必要的环境变量,包括 @env{PATH} 和 @env{GUILE_LOAD_PATH}。"

msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you want to upgrade your local source tree."
msgstr "注意,@command{./pre-inst-env guix pull} @emph{不}会更新本地源代码树;它只是简单地更新 @file{~/.config/guix/current} 符号链接(@pxref{Invoking guix pull})。如果你想更新本地源码树,请运行 @command{git pull}。"

msgid "Sometimes, especially if you have recently updated your repository, running @command{./pre-inst-env} will print a message similar to the following example:"
msgstr "有时,特别是刚刚更新过你的仓库时,运行 @command{./pre-inst-env} 将会打印一个消息,类似于下面的例子:"

msgid ""
";;; note: source file /home/user/projects/guix/guix/progress.scm\n"
";;;       newer than compiled /home/user/projects/guix/guix/progress.go\n"
msgstr ""
";;; note: source file /home/user/projects/guix/guix/progress.scm\n"
";;;       newer than compiled /home/user/projects/guix/guix/progress.go\n"

msgid "This is only a note and you can safely ignore it.  You can get rid of the message by running @command{make -j4}.  Until you do, Guile will run slightly slower because it will interpret the code instead of using prepared Guile object (@file{.go}) files."
msgstr "这仅仅是一个提示,你可以安全地忽略它,可以通过运行 @command{make -j4} 来避免这条消息。若你不这么做,Guile 就会运行的稍微慢一些,因为它会解释代码而不是使用预备的 Guile 对象 (@file{.go}) 文件。"

msgid "You can run @command{make} automatically as you work using @command{watchexec} from the @code{watchexec} package.  For example, to build again each time you update a package file, run @samp{watchexec -w gnu/packages -- make -j4}."
msgstr "你可以使用 @code{watchexec} 包中的 @command{watchexec} 在你干活时自动运行 @command{make}。例如,若要在每次更新一个包文件后都再次构建,运行@samp{watchexec -w gnu/packages -- make -j4}."

msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}.  To set that up, run:"
msgstr "折腾 Guix 的完美配置也是折腾 Guile 的完美配置 @pxref{Using Guile in Emacs,,, guile, Guile Reference Manual})。首先,你需要的不仅是一个编辑器,你需要 @url{https://www.gnu.org/software/emacs, Emacs},以及美妙的 @url{http://nongnu.org/geiser/, Geiser}。为此,运行:"

msgid "guix install emacs guile emacs-geiser emacs-geiser-guile\n"
msgstr "guix install emacs guile emacs-geiser emacs-geiser-guile\n"

msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}).  If you allow Emacs to load the @file{.dir-locals.el} file at the root of the project checkout, it will cause Geiser to automatically add the local Guix sources to the Guile load path."
msgstr "Geiser 允许在 Emacs 里进行交互增量式的开发:buffer 里的代码编译和执行,即时文档 获取 (docstrings),根据上下文补全,@kbd{M-.} 跳转到对象定义,用来尝试代码的 REPL,及更多(@pxref{Introduction,,, geiser, Geiser User Manual})。如果你允许 Emacs 在项目根目录加载@file{.dir-locals.el}中的文件,Geiser 将会自动将项目根目录下的 guix 资源添加到 Guile 加载路径中。"

msgid "To actually edit the code, Emacs already has a neat Scheme mode.  But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}.  It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
msgstr "真正编辑代码时别忘了 Emacs 自带了方便的 Scheme 模式。而且,一定不要错过 @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}。它提供了直接操作语法树的的功能,例如,用 S- 表达式替换父节点,为 S- 表达式添加、删除前后的括号,删除后面的 S- 表达式,等等。"

msgid "code snippets"
msgstr "代码片段"

msgid "templates"
msgstr "模板"

msgid "reducing boilerplate"
msgstr "减少样板"

msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
";; @r{Yasnippet configuration}\n"
"(with-eval-after-load 'yasnippet\n"
"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n"
";; @r{Tempel configuration}\n"
"(with-eval-after-load 'tempel\n"
"   ;; Ensure tempel-path is a list -- it may also be a string.\n"
"   (unless (listp 'tempel-path)\n"
"     (setq tempel-path (list tempel-path)))\n"
"   (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n"
msgstr ""
";; @r{假设 Guix 签出在 ~/src/guix 中。}\n"
";; @r{Yasnippet 配置}\n"
"(with-eval-after-load 'yasnippet\n"
"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n"
";; @r{Tempel 配置}\n"
"(with-eval-after-load 'tempel\n"
"   ;; 确保 tempel-path 是一个列表——它也可以是一个字符串。\n"
"   (unless (listp 'tempel-path)\n"
"     (setq tempel-path (list tempel-path)))\n"
"   (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n"

msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files.  When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
msgstr "commit 信息片段显示 staged 文件需要依赖@url{https://magit.vc/, Magit}。编辑commit 信息时,输入@code{add},然后按@kbd{TAB}就可以插入一段用于新增软件包的模板;输入@code{update},然后按@kbd{TAB}可以插入一段更新软件包的模板;输入@code{https}然后按@kbd{TAB}可以插入一段修改主页 URI 为 HTTPS 的模板。"

msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}.  This snippet also inserts the trigger string @code{origin...}, which can be expanded further.  The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
msgstr "@code{scheme-mode}最重要的模板可以通过输入@code{package...},然后按@kbd{TAB}触发。这个片段还插入了触发字符串@code{origin...},以进一步展开。@code{origin}片段更进一步的可能插入其它以@code{...}结尾的触发字符串,它们可以被继续展开。"

msgid "insert or update copyright"
msgstr "插入或更新版权"

msgid "M-x guix-copyright"
msgstr "M-x guix-copyright"

msgid "M-x copyright-update"
msgstr "M-x copyright-update"

msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}.  You may want to set your full name, mail, and load a file."
msgstr "我们在@file{etc/copyright.el} 中额外提供了版权的插入和自动更新。你也许会想要设置你的全名,邮箱以及加载一个文件。"

msgid ""
"(setq user-full-name \"Alice Doe\")\n"
"(setq user-mail-address \"alice@@mail.org\")\n"
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(load-file \"~/src/guix/etc/copyright.el\")\n"
msgstr ""
"(setq user-full-name \"Alice Doe\")\n"
"(setq user-mail-address \"alice@@mail.org\")\n"
";; @r{假设 Guix 签出在 ~/src/guix。}\n"
"(load-file \"~/src/guix/etc/copyright.el\")\n"

msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
msgstr "要在当前行插入版权信息,调用@code{M-x guix-copyright}。"

msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
msgstr "要更新一个版权信息,你需要指定 @code{copyright-names-regexp}。"

msgid ""
"(setq copyright-names-regexp\n"
"      (format \"%s <%s>\" user-full-name user-mail-address))\n"
msgstr ""
"(setq copyright-names-regexp\n"
"      (format \"%s <%s>\" user-full-name user-mail-address))\n"

msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}.  If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
msgstr "你可以通过执行 @code{M-x copyright-update} 检查版权信息是否已更新。若你想要在每次缓存区保存后自动做这件事,就在 Emacs 中添加 @code{(add-hook 'after-save-hook 'copyright-update)}."

msgid "Viewing Bugs within Emacs"
msgstr "在 Emacs 内部浏览漏洞"

msgid ""
";;; Bug references.\n"
"(require 'bug-reference)\n"
"(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n"
"(add-hook 'gnus-mode-hook #'bug-reference-mode)\n"
"(add-hook 'erc-mode-hook #'bug-reference-mode)\n"
"(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n"
"(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n"
"\n"
msgstr ""
";;; Bug references.\n"
"(require 'bug-reference)\n"
"(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n"
"(add-hook 'gnus-mode-hook #'bug-reference-mode)\n"
"(add-hook 'erc-mode-hook #'bug-reference-mode)\n"
"(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n"
"(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n"
"\n"

msgid ""
";;; This extends the default expression (the top-most, first expression\n"
";;; provided to 'or') to also match URLs such as\n"
";;; <https://issues.guix.gnu.org/58697> or <https://bugs.gnu.org/58697>.\n"
";;; It is also extended to detect \"Fixes: #NNNNN\" git trailers.\n"
"(setq bug-reference-bug-regexp\n"
"      (rx (group (or (seq word-boundary\n"
"                          (or (seq (char \"Bb\") \"ug\"\n"
"                                   (zero-or-one \" \")\n"
"                                   (zero-or-one \"#\"))\n"
"                              (seq (char \"Pp\") \"atch\"\n"
"                                   (zero-or-one \" \")\n"
"                                   \"#\")\n"
"                              (seq (char \"Ff\") \"ixes\"\n"
"                                   (zero-or-one \":\")\n"
"                                   (zero-or-one \" \") \"#\")\n"
"                              (seq \"RFE\"\n"
"                                   (zero-or-one \" \") \"#\")\n"
"                              (seq \"PR \"\n"
"                                   (one-or-more (char \"a-z+-\")) \"/\"))\n"
"                          (group (one-or-more (char \"0-9\"))\n"
"                                 (zero-or-one\n"
"                                  (seq \"#\" (one-or-more\n"
"                                            (char \"0-9\"))))))\n"
"                     (seq (? \"<\") \"https://bugs.gnu.org/\"\n"
"                          (group-n 2 (one-or-more (char \"0-9\")))\n"
"                          (? \">\"))\n"
"                     (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n"
"                          (? \"issue/\")\n"
"                          (group-n 2 (one-or-more (char \"0-9\")))\n"
"                          (? \">\"))))))\n"
"(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n"
"\n"
msgstr ""
";;; 这扩展了默认表达式 (最上面的第一个表达式提供给'or') 来匹配\n"
";;; url,例如 <https://issues.guix.gnu.org/58697>或\n"
";;; <https://bugs.gnu.org/58697>。它也被扩展到检测\n"
";;; “Fixes: #NNNNN” git trailers.\n"
"(setq bug-reference-bug-regexp\n"
"      (rx (group (or (seq word-boundary\n"
"                          (or (seq (char \"Bb\") \"ug\"\n"
"                                   (zero-or-one \" \")\n"
"                                   (zero-or-one \"#\"))\n"
"                              (seq (char \"Pp\") \"atch\"\n"
"                                   (zero-or-one \" \")\n"
"                                   \"#\")\n"
"                              (seq (char \"Ff\") \"ixes\"\n"
"                                   (zero-or-one \":\")\n"
"                                   (zero-or-one \" \") \"#\")\n"
"                              (seq \"RFE\"\n"
"                                   (zero-or-one \" \") \"#\")\n"
"                              (seq \"PR \"\n"
"                                   (one-or-more (char \"a-z+-\")) \"/\"))\n"
"                          (group (one-or-more (char \"0-9\"))\n"
"                                 (zero-or-one\n"
"                                  (seq \"#\" (one-or-more\n"
"                                            (char \"0-9\"))))))\n"
"                     (seq (? \"<\") \"https://bugs.gnu.org/\"\n"
"                          (group-n 2 (one-or-more (char \"0-9\")))\n"
"                          (? \">\"))\n"
"                     (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n"
"                          (? \"issue/\")\n"
"                          (group-n 2 (one-or-more (char \"0-9\")))\n"
"                          (? \">\"))))))\n"
"(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n"
"\n"

msgid ""
"(require 'debbugs)\n"
"(require 'debbugs-browse)\n"
"(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n"
"(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n"
"\n"
msgstr ""
"(require 'debbugs)\n"
"(require 'debbugs-browse)\n"
"(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n"
"(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n"
"\n"

msgid ""
";; The following allows Emacs Debbugs user to open the issue directly within\n"
";; Emacs.\n"
"(setq debbugs-browse-url-regexp\n"
"      (rx line-start\n"
"          \"http\" (zero-or-one \"s\") \"://\"\n"
"          (or \"debbugs\" \"issues.guix\" \"bugs\")\n"
"          \".gnu.org\" (one-or-more \"/\")\n"
"          (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n"
"          (group-n 3 (one-or-more digit))\n"
"          line-end))\n"
"\n"
msgstr ""
";; 下面的命令允许 Emacs Debbugs 用户直接在 Emacs 中打开问题(issue)。\n"
"(setq debbugs-browse-url-regexp\n"
"      (rx line-start\n"
"          \"http\" (zero-or-one \"s\") \"://\"\n"
"          (or \"debbugs\" \"issues.guix\" \"bugs\")\n"
"          \".gnu.org\" (one-or-more \"/\")\n"
"          (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n"
"          (group-n 3 (one-or-more digit))\n"
"          line-end))\n"
"\n"

msgid ""
";; Change the default when run as 'M-x debbugs-gnu'.\n"
"(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n"
"\n"
msgstr ""
";; 修改当运行 'M-x debbugs-gnu' 时的默认值.\n"
"(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n"
"\n"

msgid ""
";; Show feature requests.\n"
"(setq debbugs-gnu-default-severities\n"
" '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n"
msgstr ""
";; 显示功能需求。\n"
"(setq debbugs-gnu-default-severities\n"
" '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n"

msgid "For more information, refer to @ref{Bug Reference,,, emacs, The GNU Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User Guide}."
msgstr "更多信息,请查询@ref{Bug Reference,,, emacs, The GNU Emacs Manual}和@ref{Minor Mode,,, debbugs-ug, The Debbugs User Guide}."

msgid "Alternative setups than Emacs may let you work on Guix with a similar development experience and they might work better with the tools you currently use or help you make the transition to Emacs."
msgstr "Emacs 的替代设置可能让您以类似的开发体验在 Guix 上工作,并且它们可能与您当前使用的工具更兼容,或者帮助您过渡到 Emacs。"

msgid "The options listed below only provide the alternatives to the Emacs based setup, which is the most widely used in the Guix community.  If you want to really understand how the perfect setup for Guix development is supposed to work, we encourage you to read the section before this regardless of the editor you choose to use."
msgstr "下面列出的选项仅提供基于 Emacs 的配置的替代方案,这是 Guix 社区使用最广泛的配置。如果想要真正了解 Guix 开发的完美配置如何工作,建议阅读前面的章节,无论选择使用哪种编辑器。"

msgid "Guile Studio"
msgstr "Guile Studio"

msgid "Vim and NeoVim"
msgstr "Vim 和 NeoVim"

msgid "Guile Studio is a pre-configured Emacs with mostly everything you need to start hacking in Guile. If you are not familiar with Emacs it makes the transition easier for you."
msgstr "Guile Studio 是预配置的 Emacs 环境,已集成 Guile 开发所需的主要组件。即便您不熟悉 Emacs,亦可助您轻松过渡开发实践。"

msgid "guix install guile-studio\n"
msgstr "guix install guile-studio\n"

msgid "Guile Studio comes with Geiser preinstalled and prepared for action."
msgstr "Guile Studio 预装了 Geiser,可随时使用。"

msgid "Vim (and NeoVim) are also packaged in Guix, just in case you decided to go for the evil path."
msgstr "Vim(和 NeoVim) 也打包在 Guix 中,以防您决定走上邪路。"

msgid "guix install vim\n"
msgstr "guix install vim\n"

msgid "guix install vim-paredit\n"
msgstr "guix install vim-paredit\n"

msgid "We also recommend that you run @code{:set autoindent} so that your code is automatically indented as you type."
msgstr "建议运行 @code{:set autoindent},以便在输入代码时自动缩进。"

msgid "For the interaction with Git, @uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} is the most commonly used plugin:"
msgstr "@uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} 是最常用的 Git 交互插件:"

msgid "guix install vim-fugitive\n"
msgstr "guix install vim-fugitive\n"

msgid "And of course if you want to interact with Guix directly from inside of vim, using the built-in terminal emulator, we have our very own @code{guix.vim} package!"
msgstr "当然,如果你想直接在 vim 中使用内置终端模拟器与 Guix 交互,我们还有自己的 @code{guix.vim} 软件包!"

msgid "guix install vim-guix-vim\n"
msgstr "guix install vim-guix-vim\n"

msgid "In NeoVim you can even make a similar setup to Geiser using @url{https://conjure.fun/, Conjure} that lets you connect to a running Guile process and inject your code there live (sadly it's not packaged in Guix yet)."
msgstr "在 NeoVim 中,你甚至可以使用 @url{https://conjure.fun/, Conjure} 进行与 Geiser 类似的配置,从而连接到正在运行的 Guile 进程,并在其中实时注入代码(遗憾的是 Guix 还没有打包)。"

msgid "structure, of the source tree"
msgstr "源代码树的结构"

msgid "If you're willing to contribute to Guix beyond packages, or if you'd like to learn how it all fits together, this section provides a guided tour in the code base that you may find useful."
msgstr "如果您愿意在 Guix 中贡献超出软件包范畴的内容,或者如果您想了解它是如何结合在一起的,本节提供了代码库的导览,或许对您有用。"

msgid "Overall, the Guix source tree contains almost exclusively Guile @dfn{modules}, each of which can be seen as an independent library (@pxref{Modules,,, guile, GNU Guile Reference Manual})."
msgstr "总体而言,Guix 源树几乎只包含 Guile @dfn{模块},每个模块都可以视为一个独立的库(@pxref{Modules,,, guile, GNU Guile Reference Manual})。"

msgid "guix"
msgstr "guix"

msgid "This is the location of core Guix mechanisms.  To illustrate what is meant by ``core'', here are a few examples, starting from low-level tools and going towards higher-level tools:"
msgstr "这是 Guix 核心机理的存放位置。这里有几个例子说明“核心”是什么意思,从底层工具到高层工具:"

msgid "(guix store)"
msgstr "(guix store)"

msgid "Connecting to and interacting with the build daemon (@pxref{The Store})."
msgstr "连接并与负责构建的守护进程交互(@pxref{The Store})。"

msgid "(guix derivations)"
msgstr "(guix derivations)"

msgid "Creating derivations (@pxref{Derivations})."
msgstr "创建衍生物(@pxref{Derivations})。"

msgid "(guix gexps)"
msgstr "(guix gexps)"

msgid "(guix packages)"
msgstr "(guix packages)"

msgid "Defining packages and origins (@pxref{package Reference})."
msgstr "定义软件包及来源 (@pxref{package Reference})."

msgid "(guix download)"
msgstr "(guix download)"

msgid "(guix git-download)"
msgstr "(guix git-download)"

msgid "The @code{url-fetch} and @code{git-fetch} origin download methods (@pxref{origin Reference})."
msgstr "@code{url-fetch} 和 @code{git-fetch} 来源的下载方法 (@pxref{origin Reference})."

msgid "(guix swh)"
msgstr "(guix swh)"

msgid "Fetching source code from the @uref{https://archive.softwareheritage.org,Software Heritage archive}."
msgstr "从 @uref{https://archive.softwareheritage.org,Software Heritage archive} 拿取源代码。"

msgid "(guix search-paths)"
msgstr "(guix search-paths)"

msgid "(guix build-system)"
msgstr "(guix build-system)"

msgid "The build system interface (@pxref{Build Systems})."
msgstr "负责构建的系统的接口 (@pxref{Build Systems})。"

msgid "(guix profiles)"
msgstr "(guix profiles)"

msgid "Implementing profiles."
msgstr "实现 profiles。"

msgid "guix/build-system"
msgstr "guix/build-system"

msgid "(guix build-system gnu)"
msgstr "(guix build-system gnu)"

msgid "the GNU build system;"
msgstr "GNU 构建系统"

msgid "(guix build-system cmake)"
msgstr "(guix build-system cmake)"

msgid "the CMake build system;"
msgstr "CMake 构建系统;"

msgid "(guix build-system pyproject)"
msgstr "(guix build-system pyproject)"

msgid "The Python ``pyproject'' build system."
msgstr "Python 的“pyproject”构建系统。"

msgid "guix/build"
msgstr "guix/build"

msgid "This contains code generally used on the ``build side'' (@pxref{G-Expressions, strata of code}).  This includes code used to build packages or other operating system components, as well as utilities:"
msgstr "这包含通常在“构建端”使用的代码 (@pxref{G-Expressions, strata of code}).  这包括用于构建包或其他操作系统组件的代码,以及其他一些工具:"

msgid "(guix build utils)"
msgstr "(guix build utils)"

msgid "Utilities for package definitions and more (@pxref{Build Utilities})."
msgstr "关于软件包定义的工具和更多(@pxref{Build Utilities})。"

msgid "(guix build gnu-build-system)"
msgstr "(guix build gnu-build-system)"

msgid "(guix build cmake-build-system)"
msgstr "(guix build cmake-build-system)"

msgid "(guix build pyproject-build-system)"
msgstr "(guix build pyproject-build-system)"

msgid "Implementation of build systems, and in particular definition of their build phases (@pxref{Build Phases})."
msgstr "构建系统的实现,具体来说是定义其构建阶段@pxref{Build Phases}(@pxref{Build Phases})."

msgid "(guix build syscalls)"
msgstr "(guix build syscalls)"

msgid "Interface to the C library and to Linux system calls."
msgstr "到 C 库和 Linux 系统调用的接口。"

msgid "command-line tools, as Guile modules"
msgstr "作为 Guile 模块的命令行工具"

msgid "command modules"
msgstr "命令模块"

msgid "guix/scripts"
msgstr "guix/scripts"

msgid "This contains modules corresponding to @command{guix} sub-commands.  For example, the @code{(guix scripts shell)} module exports the @code{guix-shell} procedure, which directly corresponds to the @command{guix shell} command (@pxref{Invoking guix shell})."
msgstr "这包括了相应于 @command{guix} 子命令的模块。例如,@code{(guix scripts shell)} 模块导出了 @code{guix-shell} 过程,这直接对应于 @command{guix shell} 命令(@pxref{Invoking guix shell})。"

msgid "importer modules"
msgstr "导入器模块"

msgid "guix/import"
msgstr "guix/import"

msgid "This contains supporting code for the importers and updaters (@pxref{Invoking guix import}, and @pxref{Invoking guix refresh}).  For example, @code{(guix import pypi)} defines the interface to PyPI, which is used by the @command{guix import pypi} command."
msgstr "这包含了对于导入器和升级器的支持代码(@pxref{Invoking guix import},以及 @pxref{Invoking guix refresh})。例如,@code{(guix import pypi)} 定义了 PyPI 的接口,这由 @command{guix import pypi} 命令使用。"

msgid "The directories we have seen so far all live under @file{guix/}.  The other important place is the @file{gnu/} directory, which contains primarily package definitions as well as libraries and tools for Guix System (@pxref{System Configuration}) and Guix Home (@pxref{Home Configuration}), all of which build upon functionality provided by @code{(guix @dots{})} modules@footnote{For this reason, @code{(guix @dots{})} modules must generally not depend on @code{(gnu @dots{})} modules, with notable exceptions: @code{(guix build-system @dots{})} modules may look up packages at run time---e.g., @code{(guix build-system cmake)} needs to access the @code{cmake} variable at run time---, @code{(guix scripts @dots{})} often rely on @code{(gnu @dots{})} modules, and the same goes for some of the @code{(guix import @dots{})} modules.}."
msgstr "到目前为止我们看到的所有文件夹都位于 @file{guix/} 下。另一个重要的地方是 @file{gnu/} 目录,它主要包含包定义以及 Guix 系统 (@pxref{System Configuration}) 和 Guix Home (@pxref{Home Configuration}) 的库和工具,所有这些都建立在 @code{(guix @dots{})} 模块提供的功能之上@footnote{因此,@code{(guix @dots{})} 模块通常不应依赖于 @code{(gnu @dots{})} 模块,尽管有一些显著的例外:@code{(guix build-system @dots{})} 模块可以在运行时查找包——例如,@code{(guix build-system cmake)} 需要在运行时访问 @code{cmake} 变量——,@code{(guix scripts @dots{})} 通常依赖于 @code{(gnu @dots{})} 模块,@code{(guix import @dots{})} 模块中的某些模块也是如此。}。"

msgid "package modules"
msgstr "软件包模块"

msgid "gnu/packages"
msgstr "gnu/packages"

msgid "This is by far the most crowded directory of the source tree: it contains @dfn{package modules} that export package definitions (@pxref{Package Modules}).  A few examples:"
msgstr "这是源代码树中最拥挤的文件夹:它包含导出包定义(@pxref{Package Modules})的 @dfn{包模块}。举几个例 子:"

msgid "(gnu packages base)"
msgstr "(gnu packages base)"

msgid "Module providing ``base'' packages: @code{glibc}, @code{coreutils}, @code{grep}, etc."
msgstr "提供“基础”包的模块:@code{glibc}, @code{coreutils}, @code{grep}, 等等。"

msgid "(gnu packages guile)"
msgstr "(gnu packages guile)"

msgid "Guile and core Guile packages."
msgstr "Guile 和核心 Guile 包。"

msgid "(gnu packages linux)"
msgstr "(gnu packages linux)"

msgid "The Linux-libre kernel and related packages."
msgstr "Linux-libre 内核及相关软件包。"

msgid "(gnu packages python)"
msgstr "(gnu packages python)"

msgid "Python and core Python packages."
msgstr "Python 和核心 Python 软件包。"

msgid "(gnu packages python-xyz)"
msgstr "(gnu packages python-xyz)"

msgid "Miscellaneous Python packages (we were not very creative)."
msgstr "杂项 Python 软件包(不是开玩笑)。"

msgid "In any case, you can jump to a package definition using @command{guix edit} (@pxref{Invoking guix edit}) and view its location with @command{guix show} (@pxref{Invoking guix package})."
msgstr "无论何时,您都可以使用@command{guix edit}跳转到软件包定义(@pxref{Invoking guix edit}),并使用@command{guix show}查看其位置(@pxref{Invoking guix package})."

msgid "search-patches"
msgstr "search-patches"

msgid "gnu/packages/patches"
msgstr "gnu/packages/patches"

msgid "gnu/services"
msgstr "gnu/services"

msgid "This contains service definitions, primarily for Guix System (@pxref{Services}) but some of them are adapted and reused for Guix Home as we will see below.  Examples:"
msgstr "这包含服务的定义,主要用于 Guix 系统(@pxref{Services}),但其中一些被调整并重用于 Guix Home,如下所示。示例:"

msgid "(gnu services)"
msgstr "(gnu services)"

msgid "(gnu services base)"
msgstr "(gnu services base)"

msgid "(gnu services desktop)"
msgstr "(gnu services desktop)"

msgid "``Desktop'' services (@pxref{Desktop Services})."
msgstr "桌面服务(@pxref{Desktop Services})。"

msgid "gnu/system"
msgstr "gnu/system"

msgid "(gnu system)"
msgstr "(gnu system)"

msgid "(gnu system file-systems)"
msgstr "(gnu system file-systems)"

msgid "(gnu system mapped-devices)"
msgstr "(gnu system mapped-devices)"

msgid "gnu/build"
msgstr "gnu/build"

msgid "(gnu build accounts)"
msgstr "(gnu build accounts)"

msgid "(gnu build activation)"
msgstr "(gnu build activation)"

msgid "Activating an operating system at boot time or reconfiguration time."
msgstr "在启动或者重新配置(reconfigure)时激活一个操作系统。"

msgid "(gnu build file-systems)"
msgstr "(gnu build file-systems)"

msgid "(gnu build linux-boot)"
msgstr "(gnu build linux-boot)"

msgid "(gnu build hurd-boot)"
msgstr "(gnu build hurd-boot)"

msgid "Booting GNU/Linux and GNU/Hurd operating systems."
msgstr "启动 GNU/Linux 和 GNU/Hurd 操作系统。"

msgid "(gnu build linux-initrd)"
msgstr "(gnu build linux-initrd)"

msgid "gnu/home"
msgstr "gnu/home"

msgid "(gnu home services)"
msgstr "(gnu home services)"

msgid "Core services such as @code{home-files-service-type}."
msgstr "诸如@code{home-files-service-type}的核心服务。"

msgid "(gnu home services ssh)"
msgstr "(gnu home services ssh)"

msgid "gnu/installer"
msgstr "gnu/installer"

msgid "gnu/machine"
msgstr "gnu/machine"

msgid "These are the @dfn{machine abstractions} used by @command{guix deploy} (@pxref{Invoking guix deploy})."
msgstr "这些是被@command{guix deploy}使用到@dfn{机器抽象}(@pxref{Invoking guix deploy})."

msgid "gnu/tests"
msgstr "gnu/tests"

msgid "nix"
msgstr "nix"

msgid "tests"
msgstr "tests"

msgid "doc"
msgstr "doc"

msgid "po"
msgstr "po"

msgid "etc"
msgstr "etc"

msgid "packages, creating"
msgstr "软件包,创建"

msgid "The GNU distribution is nascent and may well lack some of your favorite packages.  This section describes how you can help make the distribution grow."
msgstr "这个 GNU 发行版正在开发的早期阶段,可能缺少一些你喜欢的软件。这个章节介绍你可以怎样帮助这个发行版成长。"

msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files.  Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
msgstr "自由软件通常以@dfn{源代码包}的形式分发,通常是包含完整代码的@file{tar.gz}包。添加软件包到这个发行版意味着两件事:添加描述如何构建包的@dfn{配方}和一系列依赖软件,以及添加配方之外的@dfn{软件包元数据},如一段文字描述和证书信息。"

msgid "In Guix all this information is embodied in @dfn{package definitions}.  Package definitions provide a high-level view of the package.  They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}).  However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  For more information on package definitions, @pxref{Defining Packages}."
msgstr "在 Guix 里所有这些信息都包含在@dfn{软件包定义}里。软件包定义提供了软件包的高层视角。它们使用 Scheme 编程语言编写,事实上,对每个软件包我们都定义一个绑定到软件包定义的的变量,并且从模块(@pxref{Package Modules})中导出那个变量。然而,深入的 Scheme 知识@emph{不}是创建软件包的前提条件。若要了解软件包的更多信息,@pxref{Defining Packages}."

msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}).  For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
msgstr "一旦软件包定义准备好了,并且包存在 Guix 代码树的一个文件里,你可以用@command{guix build} (@pxref{Invoking guix build}) 命令测试它。假设这个新软件包的名字叫做@code{gnew},你可以在 Guix 构建树里运行这个命令 (@pxref{Running Guix Before It Is Installed}):"

msgid "./pre-inst-env guix build gnew --keep-failed\n"
msgstr "./pre-inst-env guix build gnew --keep-failed\n"

msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree.  Another useful command-line option when debugging is @code{--log-file}, to access the build log."
msgstr "使用@code{--keep-failed}参数会保留失败的构建树,这可以使调试构建错误更容易。@code{--log-file}也是一个调试时很有用的参数,它可以用来访问构建日志。"

msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable.  To figure it out, you may load the module from Guile to get more information about the actual error:"
msgstr "如果@command{guix}命令找不到这个软件包,那可能是因为源文件包含语法错误,或者缺少导出软件包的@code{define-public}语句。为了查找错误,你可以用 Guile 导入这个模块以了解这个错误的详情:"

msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"

msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}).  Well, if you need help, we will be happy to help you too.  Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{https://@value{SUBSTITUTE-SERVER-1}, our continuous integration system}."
msgstr "一旦你的软件包可以正确构建,请给我们发送补丁 (@pxref{Submitting Patches})。当然,如果你需要帮助,我们也会很乐意帮助你。一旦补丁被提交到 Guix 仓库里,这个新的软件包会由@url{https://@value{SUBSTITUTE-SERVER-1}, our continuous integration system}自动地在支持的平台上构建。"

msgid "substituter"
msgstr "substitutes"

msgid "Software Freedom"
msgstr "软件自由"

msgid "What may go into the distribution."
msgstr "什么可以进入这个发行版。"

msgid "Package Naming"
msgstr "软件包命名"

msgid "What's in a name?"
msgstr "名字里包含什么?"

msgid "Version Numbers"
msgstr "版本号"

msgid "When the name is not enough."
msgstr "当名字不够时。"

msgid "Synopses and Descriptions"
msgstr "简介和描述"

msgid "Helping users find the right package."
msgstr "帮助用户寻找合适的软件包。"

msgid "Snippets versus Phases"
msgstr "原始片段 vs. 构建阶段"

msgid "Whether to use a snippet, or a build phase."
msgstr "用片段,还是用构建阶段。"

msgid "Cyclic Module Dependencies"
msgstr "模块的循环依赖"

msgid "Emacs Packages"
msgstr "Emacs 包"

msgid "Your Elisp fix."
msgstr "你的 Elisp 补丁。"

msgid "Python Modules"
msgstr "Python 模块"

msgid "A touch of British comedy."
msgstr "一点英式喜剧。"

msgid "Perl Modules"
msgstr "Perl 模块"

msgid "Little pearls."
msgstr "小珍珠。"

msgid "Java Packages"
msgstr "Java 包"

msgid "Coffee break."
msgstr "喝咖啡休息。"

msgid "Rust Crates"
msgstr "Rust Crates"

msgid "Beware of oxidation."
msgstr "谨防氧化。"

msgid "Elm Packages"
msgstr "Elm 包"

msgid "Trees of browser code"
msgstr "树状浏览器代码"

msgid "Fonts"
msgstr "字体"

msgid "Fond of fonts."
msgstr "字体的乐趣。"

msgid "free software"
msgstr "自由软件"

msgid "The GNU operating system has been developed so that users can have freedom in their computing.  GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions.  Packages found in the GNU distribution provide only software that conveys these four freedoms."
msgstr "开发 GNU 操作系统是为了用户拥有计算的自由。GNU 是@dfn{自由软件},这意味着它有@url{https://www.gnu.org/philosophy/free-sw.html,四项重要的自由}:运行程序的自由,以源代码形式学习和修改程序的自由,原样重新分发副本的自由,和分发修改后的版本的自由。GNU 发行版里包含的软件包只提供遵守这四项自由的软件。"

msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}.  Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
msgstr "此外,GNU 发行版遵循@url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,自由软件发行版准则}。这些准则拒绝非自由的固件和对非自由软件的推荐,并讨论解决商标和专利的方法。"

msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code.  When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}).  This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
msgstr "某些上游的软件包源代码包含一小部分违反上述准则的可选的子集,比如这个子集本身就是非自由代码。这时,这些讨厌的代码需要用合适的补丁或者软件包定义(@pxref{Defining Packages})里的@code{origin}里的代码片段移除。这样,@code{guix build --source}就可以返回自由的源代码而不是未经修改的上游源代码。"

msgid "package name"
msgstr "软件包名字"

msgid "A package actually has two names associated with it.  First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}.  By this name, the package can be made known in the Scheme code, for instance as input to another package.  Second, there is the string in the @code{name} field of a package definition.  This name is used by package management commands such as @command{guix package} and @command{guix build}."
msgstr "一个软件包事实上有两个名字:第一个是@emph{Scheme 变量}的名字,即用@code{define-public}定义的名字。通过这个名字,软件包可以被 Scheme 代码找到,如用作其它软件包的输入。第二个名字是软件包定义里的@code{name}属性的字符串值。这个名字用于软件包管理命令,如:@command{guix package},@command{guix build}。"

msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens.  For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
msgstr "两个名字通常是相同的,常是上游项目名字转成小写字母并把下划线替换成连字符的结果。比如,GNUnet 转成@code{gnunet},SDL_net 转成@code{sdl-net}。"

msgid "A noteworthy exception to this rule is when the project name is only a single character, or if an older maintained project with the same name already exists---regardless of whether it has already been packaged for Guix.  Use common sense to make such names unambiguous and meaningful.  For example, Guix's package for the shell called ``s'' upstream is @code{s-shell} and @emph{not} @code{s}.  Feel free to ask your fellow hackers for inspiration."
msgstr "这条规则有一个值得注意的例外,那就是当工程名只有一个字符,或与它同名的一个旧工程已经存在——不论是否已经被打为 Guix 包。你应该动用常识来让这些名字无歧义且有意义。比如说,上游称为 ``s'' 的 shell 程序在 Guix 中称为 @code{s-shell} 而 @emph{不是} @code{s}。你可以随便问问你的黑客伙计们来获得一些启发。"

msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name.  But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
msgstr "我们不给库软件包添加@code{lib}前缀,除非它是项目官方名字的一部分。但是@pxref{Python Modules}和@ref{Perl Modules}有关于 Python 和 Perl 语言的特殊规则。"

msgid "Font package names are handled differently, @pxref{Fonts}."
msgstr "字体软件包的名字处理起来不同,@pxref{Fonts}."

msgid "package version"
msgstr "软件包版本"

msgid "We usually package only the latest version of a given free software project.  But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed.  These require different Scheme variable names.  We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
msgstr "我们通常只为每个自由软件的最新版本打包。但是有时候,比如对于版本不兼容的库,需要有同一个软件包的两个或更多版本。它们需要使用不同的 Scheme 变量名。我们为最新的版本使用@ref{Package Naming}里规定的名字,旧的版本使用加上后缀的名字,后缀是@code{-}和可以区分开版本号的版本号的最小前缀。"

msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
msgstr "软件包定义里的名字对于同一个软件包的所有版本都是相同的,并且不含有版本号。"

msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
msgstr "例如,GTK+ 的 2.24.20 和 3.9.12 两个版本可以这样打包:"

msgid ""
"(define-public gtk+\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.9.12\")\n"
"    ...))\n"
"(define-public gtk+-2\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"2.24.20\")\n"
"    ...))\n"
msgstr ""
"(define-public gtk+\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.9.12\")\n"
"    ...))\n"
"(define-public gtk+-2\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"2.24.20\")\n"
"    ...))\n"

msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
msgstr "如果我们还需要 GTK+ 3.8.2,就这样打包"

msgid ""
"(define-public gtk+-3.8\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.8.2\")\n"
"    ...))\n"
msgstr ""
"(define-public gtk+-3.8\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.8.2\")\n"
"    ...))\n"

msgid "version number, for VCS snapshots"
msgstr "用于版本控制快照的版本号"

msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases.  This should remain exceptional, because it is up to upstream developers to clarify what the stable release is.  Yet, it is sometimes necessary.  So, what should we put in the @code{version} field?"
msgstr "有时候,我们为软件包上游的版本控制系统(VCS)的快照而不是正式发布版打包。这是特殊情况,因为决定哪个是稳定版的权力应该属于上游开发者。然而,有时候这是必须的。那么,我们该如何决定写在@code{version}里的版本号呢?"

msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer.  Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot.  The resulting version string looks like this:"
msgstr "显然,我们需要让 VCS 快照的 commit ID 在版本号中体现出来,但是我们也需要确保版本号单调递增,以便@command{guix package --upgrade}决定哪个版本号更新。由于commit ID,尤其是 Git 的 commit ID,不是单调递增的,我们添加一个每次升级快照时都手动增长的 revision 数字。最后的版本号字符串看起来是这样:"

msgid ""
"2.0.11-3.cabba9e\n"
"  ^    ^    ^\n"
"  |    |    `-- upstream commit ID\n"
"  |    |\n"
"  |    `--- Guix package revision\n"
"  |\n"
"latest upstream version\n"
msgstr ""
"2.0.11-3.cabba9e\n"
"  ^    ^    ^\n"
"  |    |    `-- 上游的 commit ID\n"
"  |    |\n"
"  |    `--- Guix 软件包的 revision\n"
"  |\n"
"最新的上游版本号\n"

msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel).  There are helper functions for doing this for packages using @code{git-fetch} or @code{hg-fetch} (see below).  It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities.  A typical package definition may look like this:"
msgstr "把@code{版本号}里的 commit ID 截短,比如只取 7 个数字,是一个好主意。它避免了美学上的烦恼(假设美学在这里很重要),以及操作系统限制引起的问题(比如 Linux 内核的127 字节)。尽管如此,在@code{origin}里最好使用完整的 commit ID,以避免混淆。通常一个软件包应该看起来是下面这样:"

msgid ""
"(define my-package\n"
"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
"        (revision \"1\"))          ;Guix package revision\n"
"    (package\n"
"      (version (git-version \"0.9\" revision commit))\n"
"      (source (origin\n"
"                (method git-fetch)\n"
"                (uri (git-reference\n"
"                      (url \"git://example.org/my-package.git\")\n"
"                      (commit commit)))\n"
"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
"                (file-name (git-file-name name version))))\n"
"      ;; @dots{}\n"
"      )))\n"
msgstr ""
"(define my-package\n"
"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
"        (revision \"1\"))          ;Guix 软件包的 revision\n"
"    (package\n"
"      (version (git-version \"0.9\" revision commit))\n"
"      (source (origin\n"
"                (method git-fetch)\n"
"                (uri (git-reference\n"
"                      (url \"git://example.org/my-package.git\")\n"
"                      (commit commit)))\n"
"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
"                (file-name (git-file-name name version))))\n"
"      ;; @dots{}\n"
"      )))\n"

msgid "{Procedure} git-version @var{VERSION} @var{REVISION} @var{COMMIT}"
msgstr "{过程} git-version @var{VERSION} @var{REVISION} @var{COMMIT}"

msgid "Return the version string for packages using @code{git-fetch}."
msgstr "返回包的版本字符串,利用 @code{git-fetch}。"

msgid ""
"(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n"
"@result{} \"0.2.3-0.93818c9\"\n"
msgstr ""
"(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n"
"@result{} \"0.2.3-0.93818c9\"\n"

msgid "{Procedure} hg-version @var{VERSION} @var{REVISION} @var{CHANGESET}"
msgstr "{过程} hg-version @var{VERSION} @var{REVISION} @var{CHANGESET}"

msgid "Return the version string for packages using @code{hg-fetch}.  It works in the same way as @code{git-version}."
msgstr "返回包的版本字符串,利用  @code{hg-fetch},就像 @code{git-version} 那样。"

msgid "package description"
msgstr "软件包描述"

msgid "package synopsis"
msgstr "软件包简介"

msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}).  Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs.  Consequently, packagers should pay attention to what goes into them."
msgstr "我们已经看到,GNU@tie{}Guix 里的每个软件包都包含一个简介(synopsis)和一个描述(description)(@pxref{Defining Packages})。简介和描述很重要:它们是@command{guix package --search}搜索的信息,并且是帮助用户决定一个软件包是否符合自己需求的重要信息。因此,打包的人应该关注怎样写它们的内容。"

msgid "Synopses must start with a capital letter and must not end with a period.  They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''.  The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
msgstr "简介必须以大写字母开头,并且不能以句号结尾。它们不能以 ``a'' 或者 ``the'' 等没有意义的词开头。例如 ``File-frobbing tool'' 要比 ``A tool that frobs files'' 更好。简介需要说明软件包是什么--如 ``Core GNU utilities (file, text, shell)'',或者它的用途--如 GNU@tie{}grep 的简介是 ``Print lines matching a pattern''."

msgid "Keep in mind that the synopsis must be meaningful for a very wide audience.  For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience.  It is a good idea to come up with a synopsis that gives an idea of the application domain of the package.  In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
msgstr "记住,简介必须能被广大的听众理解。例如,“以 SAM 格式修改对齐”可能对经验丰富的生物信息科研工作者来说能理解,但是对普通对听众则是无用的甚至是令人误解的。简介最好说明软件包应用的领域。在这个例子中,应该这样描述“修改核苷酸序列的对齐格式”,这会让用户更容易判断这是不是他们想要的。"

msgid "Descriptions should take between five and ten lines.  Use full sentences, and avoid using acronyms without first introducing them.  Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious.  Instead, try to be factual, mentioning use cases and features."
msgstr "描述应该在 5 至 10 句话之间。使用完整的句子,并且避免在未介绍的情况下使用缩写。请避免推广营销性对词汇,如“世界领先”,“行业最强”,“下一代”,并且避免高级的形容词,如“最先进的”--他们对用户寻找软件包是无用的,甚至是可疑的。相反的,尽量务实,提及用例和功能。"

msgid "Texinfo markup, in package descriptions"
msgstr "软件包描述里的 Texinfo 标记"

msgid "Synopses and descriptions are translated by volunteers @uref{https://translate.codeberg.org/projects/guix/packages, at Weblate} so that as many users as possible can read them in their native language.  User interfaces search them and display them in the language specified by the current locale."
msgstr "简介和描述@uref{https://translate.codeberg.org/projects/guix/packages, 由 Weblate}项目的志愿者翻译,从而使尽可能多的用户可以用母语阅读。用户界面用当前区域设置的语言搜索和展示这些信息。"

msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}.  This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
msgstr "为了让@command{xgettext}可以把它们提取成待翻译的字符串,简介和描述@emph{必须是文字字符串}。这意味着你不能使用@code{string-append}或@code{format}来合成字符串:"

msgid ""
"(package\n"
"  ;; @dots{}\n"
"  (synopsis \"This is translatable\")\n"
"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
msgstr ""
"(package\n"
"  ;; @dots{}\n"
"  (synopsis \"这是可以翻译的\")\n"
"  (description (string-append \"这是\" \"*不可以*\" \"翻译的\")))\n"

msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators.  In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
msgstr "翻译是很繁重的工作,所以,作为打包者请更加注意你的简介和介绍,每一个改动都会增加翻译的工作量。为了帮助他们,你可以插入这类可以被他们看到的建议和指示(@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"

msgid ""
";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
"(description \"ARandR is designed to provide a simple visual front end\n"
"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
msgstr ""
";; TRANSLATORS: \"X11 resize-and-rotate\"不需要翻译。\n"
"(description \"ARandR 为 X11 resize-and-rotate (RandR) 扩展提供简单的图形界面。@dots{}\")\n"

msgid "snippets, when to use"
msgstr "何时使用片段"

msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive.  Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions.  The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source).  In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases.  Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
msgstr "原始片段和构建阶段的边界比较难以理解。原始片段通常用来移除不想要的文件,比如捆绑的库,非自由源,或者用于应用简单的替换。从原始源迭代出的源应该在上游包支持的系统上都能成功构建包(就是说,像对应的原始源那样动作)。尤其是,原始片段一定不能内嵌有 store 中的项目;这样的补丁更应该在构建阶段完成。参考@code{origin} 记录文档获取更多信息(@pxref{origin Reference})。"

msgid "Here is a common trap to avoid:"
msgstr "这是一个需要避免的常见问题:"

msgid ""
"~$ guix shell --development guix\n"
"[env: /gnu/store/@dots{}-profile]\n"
"> ./pre-inst-env guix refresh --select=module:astronomy --update\n"
"> ./pre-inst-env etc/committer.scm\n"
msgstr ""
"~$ guix shell --development guix\n"
"[env: /gnu/store/@dots{}-profile]\n"
"> ./pre-inst-env guix refresh --select=module:astronomy --update\n"
"> ./pre-inst-env etc/committer.scm\n"

msgid ""
"[env: /gnu/store/@dots{}-profile]\n"
"> ./pre-inst-env guix build $(./pre-inst-env guix package -A | awk '/astronomy.scm/@{print $1\"@@\"$2@}')\n"
msgstr ""
"[env: /gnu/store/@dots{}-profile]\n"
"> ./pre-inst-env guix build $(./pre-inst-env guix package -A | awk '/astronomy.scm/@{print $1\"@@\"$2@}')\n"

msgid "emacs, packaging"
msgstr "emacs,打包"

msgid "elisp, packaging"
msgstr "elisp,打包"

msgid "Emacs packages should preferably use the Emacs build system (@pxref{emacs-build-system}), for uniformity and the benefits provided by its build phases, such as the auto-generation of the autoloads file and the byte compilation of the sources.  Because there is no standardized way to run a test suite for Emacs packages, tests are disabled by default.  When a test suite is available, it should be enabled by setting the @code{#:tests?} argument to @code{#true}.  By default, the command to run the test is @command{make check}, but any command can be specified via the @code{#:test-command} argument.  The @code{#:test-command} argument expects a list containing a command and its arguments, to be invoked during the @code{check} phase."
msgstr "为统一化以及享受构建阶段的方便,比如自动生成 autoloads 文件、字节编译源文件,Emacs 包应该选择 Emacs 构建系统(@pxref{emacs-build-system})。由于没有标准化的方法运行 Emacs 包的测试用例,测试默认是禁用的。当一个测试用例可用时,可以通过设置 @code{#:tests?} 参数为 @code{#true} 启用。默认条件下,运行测试的命令是 @command{make check},不过其它的命令也可以用 @code{#:test-command} 参数指定。参数 @code{#:test-command} 应当由包含命令和命令参数的列表,并在 @code{check} 阶段调用。"

msgid "The Elisp dependencies of Emacs packages are typically provided as @code{propagated-inputs} when required at run time.  As for other packages, build or test dependencies should be specified as @code{native-inputs}."
msgstr "Emacs 包的 Elisp 依赖项通常在运行时需要时作为 @code{propagated-inputs} 提供。对于其他包,构建或测试依赖项应指定为@code{native-inputs}。"

msgid "Emacs packages sometimes depend on resources directories that should be installed along the Elisp files.  The @code{#:include} argument can be used for that purpose, by specifying a list of regexps to match.  The best practice when using the @code{#:include} argument is to extend rather than override its default value (accessible via the @code{%default-include} variable).  As an example, a yasnippet extension package typically include a @file{snippets} directory, which could be copied to the installation directory using:"
msgstr "Emacs 包有时依赖于应与 Elisp 文件一并安装的资源目录。 @code{#:include} 参数可用于此目的,方法是指定要匹配的正则表达式列表。使用 @code{#:include} 参数时的最佳实践是扩展而不是覆盖它的默认值(可通过@code{%default-include} 变量访问)。 例如,yasnippet 扩展包通常包含一个 @file{snippets} 目录,可以使用以下命令将其复制到安装目录:"

msgid "#:include (cons \"^snippets/\" %default-include)\n"
msgstr "#:include (cons \"^snippets/\" %default-include)\n"

msgid "When encountering problems, it is wise to check for the presence of the @code{Package-Requires} extension header in the package main source file, and whether any dependencies and their versions listed therein are satisfied."
msgstr "当遇到问题时,明智的做法是检查包主要源文件中是否存在 @code{Package-Requires} 扩展标头,以及是否满足其中列出的任何依赖项及其版本。"

msgid "python"
msgstr "python"

msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
msgstr "我们目前为 Python 2 和 Python 3 打包,如@ref{Version Numbers}的规则所述,它们的Scheme 变量名分别是@code{python-2}和@code{python}。为了避免和其他编程语言的冲突,Python 模块的软件包名字最好含有@code{python}。"

msgid "Some modules are compatible with only one version of Python, others with both.  If the package Foo is compiled with Python 3, we name it @code{python-foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  Python 2 packages are being removed from the distribution; please do no not submit any new Python 2 packages."
msgstr "某些模块仅和一个版本的 Python 兼容,而某些模块和两个版本都兼容。如果一个叫做 Foo的软件包用 Python3 编译,我们叫它@code{python-foo};如果它用 Python2 编译,我们叫它@code{python2-foo}。Python2 的软件包正从本发行版清除;请不要提交任何新的Python2 软件包。"

msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}.  If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
msgstr "如果一个项目的名字已经含有@code{python}这个单词,我们把它丢掉;例如,python-dateutil 模块打包后的名字是@code{python-dateutil}和@code{python2-dateutil}。如果项目的名字以@code{py}开头(如@: @code{pytz}),我们把它保留,并且添加上面所述的前缀。"

msgid "Currently there are two different build systems for Python packages in Guix: @var{python-build-system} and @var{pyproject-build-system}.  For the longest time, Python packages were built from an informally specified @file{setup.py} file.  That worked amazingly well, considering Python's success, but was difficult to build tooling around.  As a result, a host of alternative build systems emerged and the community eventually settled on a @url{https://peps.python.org/pep-0517/, formal standard} for specifying build requirements.  @var{pyproject-build-system} is Guix's implementation of this standard.  It is considered ``experimental'' in that it does not yet support all the various PEP-517 @emph{build backends}, but you are encouraged to try it for new Python packages and report any problems.  It will eventually be deprecated and merged into @var{python-build-system}."
msgstr "目前在 Guix 中有两种不同的 Python 包构建系统:@var{python-build-system} 和@var{pyproject-build-system}。在很长的一段时间里,Python 包是从非正式指定的 @file{setup.py} 文件构建的。考虑到 Python 的成功,这工作得非常好,但很难围绕它构建工具。结果,出现了许多替代构建系统,社区最终确定了一个 @url{https://peps.python.org/pep-0517/, 正式标准} 来指定构建要求。 @var{pyproject-build-system} 是 Guix 对该标准的实现。它被认为是“实验性的”,因为它还不支持所有不同的 PEP-517 @emph{编译后端},但我们鼓励您为新的 Python 包尝试它并报告任何问题。它最终将被弃用并合并到 @var{python-build-system} 中。"

msgid "Specifying Dependencies"
msgstr "指定依赖"

msgid "inputs, for Python packages"
msgstr "Python 软件包的输入"

msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{pyproject.toml} file, the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini} (the latter mostly for test dependencies)."
msgstr "Python 软件包的依赖信息通常在包的源代码树里,各种文件有不同的准确度:@file{setup.py}文件,@file{requirements.txt}文件,或在 @file{tox.ini}文件(后者主要用于测试依赖项)。"

msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}).  Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
msgstr "你在写软件包配方时的任务是把这些依赖转换成相应的“输入”(@pxref{package Reference, inputs})。尽管@code{pypi}导入工具通常可以做得很好(@pxref{Invoking guix import}),你可能想检查下面这个清单,以决定每个依赖放在哪儿。"

msgid "We currently package Python with @code{setuptools} and @code{pip} installed per default.  This is about to change, and users are encouraged to use @code{python-toolchain} if they want a build environment for Python."
msgstr "我们目前将 Python 打包为默认安装的 @code{setuptools} 和 @code{pip}。这即将改变,如果用户想要 Python 的构建环境,我们鼓励他们使用@code{python-toolchain}。"

msgid "@command{guix lint} will warn if @code{setuptools} or @code{pip} are added as native-inputs because they are generally not necessary."
msgstr "如果将 @code{setuptools} 或 @code{pip} 添加为本机输入,@command{guix lint} 将发出警告,因为通常它们不是必需的。"

msgid "Python dependencies required at run time go into @code{propagated-inputs}.  They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
msgstr "运行时需要的 Python 依赖要放进@code{propagated-inputs}。它们通常由@file{setup.py}文件里的@code{install_requires}关键字或@file{requirements.txt}文件定义。"

msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks.  Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
msgstr "例如@code{pytest},@code{mock},@code{nose}测试框架。当然,如果在运行时需要这里的任何一个包,它需要被加进@code{propagated-inputs}。"

msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
msgstr "任何不属于上述类别的包都要被加进@code{inputs},如,构建含有 C 语言扩展的 Python包所需的程序和 C 语言库。"

msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
msgstr "如果一个 Python 软件包由可选的依赖(@code{extras_require}),由你根据它们的性价比(用处/负担)决定是否添加它们(@pxref{Submitting Patches, @command{guix size}})."

msgid "perl"
msgstr "perl"

msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name.  For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} becomes @code{perl-xml-parser}.  Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}.  Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}."
msgstr "Perl 程序和其它软件包的命名规则类似,用小写的上游名字命名。对于仅包含一个类的Perl 包,我们使用小写的类名,把所有的@code{::}替换成破折号,并且添加@code{perl-}前缀。所以类@code{XML::Parser}变成@code{perl-xml-parser}。包含多个类的模块保留它们上游的名字,并且添加@code{perl-}前缀。这类模块的名字通常含有@code{perl},这个单词需要被删掉。例如,@code{libwww-perl}变成@code{perl-libwww}."

msgid "java"
msgstr "java"

msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
msgstr "Java 程序和其它软件包的命名规则类似,用小写的上游名字命名。"

msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}.  If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
msgstr "为了避免和其它编程语言混淆和命名冲突,Java 软件包的名字最好有@code{java-}前缀。如果一个项目的名字已经含有@code{java},我们把它删掉;例如,@code{ngsjava}打包后的名字是@code{java-ngs}。"

msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
msgstr "对于仅包含一个或很少几个类的 Java 软件包,我们使用小写的类名,把所有的@code{.}替换成破折号,并且添加@code{java-}前缀。因此,类@code{apache.commons.cli}打包后的名字是@code{java-apache-commons-cli}。"

msgid "rust"
msgstr "rust"

msgid "fonts"
msgstr "字体"

msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
msgstr "对于通常不会被用户安装用于排版的字体,或者随更大的软件包分发的字体,我们使用通常的命名规则。例如,这适用于 X.Org 系统附带的字体或 TeX Live 附带的字体。"

msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
msgstr "为了让用户更容易搜索字体,其它仅含有字体的软件包按以下规则命名,不管上游的包名是什么。"

msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case).  For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
msgstr "仅含有一个字体家族的软件包需要以@code{font-}开头;如果作者名字已知,则添加作者名字和@code{-},接着是字体家族名字(把空格替换成破折号),(和通常一样,把所有的大写字母转换成小写字母)。例如,由 SIL 设计的 Gentium 字体家族打包后的名字是@code{font-sil-gentium}。"

msgid "For a package containing several font families, the name of the collection is used in the place of the font family name.  For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono.  These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
msgstr "对于一个含有多个字体家族的软件包,用集合的名字替换字体家族的名字。例如,Liberation 字体含有三个家族,Liberation Sans、Liberation Serif 和 Liberation Mono。它们可以用@code{font-liberation-sans}等名字分开打包;但是由于它们以一个共同的名字分发,我们倾向于以@code{font-liberation}名字统一打包。"

msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
msgstr "当同一个字体家族或字体集合的不同格式分开打包时,把破折号和格式(缩写)添加在软件包名字后面。我们用@code{-ttf}代表 TrueType 字体,@code{-otf}代表 OpenType 字体,@code{-type1}代表 PostScript Type 1 字体。"

msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}).  However, they do not say much about Scheme, so here are some additional rules."
msgstr "总的来说,我们的代码遵循 GNU 代码规范(@pxref{Top,,, standards, GNU 代码规范})。但是,这个规范对 Scheme 的介绍不多,所以这儿提供一些额外的规则。"

msgid "Programming Paradigm"
msgstr "编程范例"

msgid "How to compose your elements."
msgstr "怎样合成元素。"

msgid "Modules"
msgstr "模块"

msgid "Where to store your code?"
msgstr "在哪里保存代码?"

msgid "Data Types and Pattern Matching"
msgstr "数据类型和模式匹配"

msgid "Implementing data structures."
msgstr "实现数据结构。"

msgid "Formatting Code"
msgstr "格式化代码"

msgid "Writing conventions."
msgstr "书写规范。"

msgid "Scheme code in Guix is written in a purely functional style.  One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
msgstr "Guix 里的 Scheme 代码是以纯函数的风格写的。一个例外是有关输入/输出的代码,和实现底层概念的过程,如@code{memoize}过程。"

msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
msgstr "关于更广的 GNU 系统的模块应该在@code{(gnu @dots{})}命名空间里而不是@code{(guix @dots{})}."

msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co.  There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
msgstr "经典的 Lisp 倾向于用列表表示所有的东西,然后用@code{car},@code{cdr},@code{cadr}等手动浏览它们。这种风格有几个问题,特别是难以阅读,易出错,并且妨碍生成合适的类型错误报告。"

msgid "formatting code"
msgstr "格式化代码"

msgid "coding style"
msgstr "代码风格"

msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules.  These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses.  Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
msgstr "一些 Guix 添加的 special form,如@code{substitute*}宏,有特殊的缩进规则。它们的规则在@file{.dir-locals.el}文件里定义,Emacs 会自动使用。另外,Emacs-Guix 提供的@code{guix-devel-mode}模式可以正确地缩进和高亮 Guix 代码(@pxref{Development,,, emacs-guix, Emacs-Guix 参考手册})。"

msgid "indentation, of code"
msgstr "代码缩进"

msgid "formatting, of code"
msgstr "代码格式化"

msgid "./pre-inst-env guix style @var{package}\n"
msgstr "./pre-inst-env guix style @var{package}\n"

msgid "We require all top-level procedures to carry a docstring.  This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
msgstr "我们要求所有的顶级过程附带一个 docstring。这个要求对@code{(guix build @dots{})}命名空间里的简单的私有过程可以放宽。"

msgid "Procedures should not have more than four positional parameters.  Use keyword parameters for procedures that take more than four parameters."
msgstr "过程不应该有多于四个定位参数。对于接收多于四个定位参数的过程应使用关键字参数。"

msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
msgstr "请以 ChangeLog 格式(@pxref{Change Logs,,, standards, GNU 代码规范})写 commit 日志;你可以浏览 commit 历史里的例子。"

msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
msgstr "提交添加或者修改软件包定义的补丁之前,请过一遍这个检查列表:"

msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive.  For a detached GPG signature file this would be done with the @code{gpg --verify} command."
msgstr "如果软件包的作者为发布的文件包提供了密码学签名,请验证文件的真实性。对于独立的 GPG 签名文件,这可以通过 @code{gpg --verify} 命令完成。"

msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
msgstr "花些时间为软件包提供一个合适的简介和描述。更多指导,@xref{Synopses and Descriptions}."

msgid "Run @command{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
msgstr "运行@command{guix lint @var{软件包}},@var{软件包}是新添加的或修改过的软件包的名字,修复它报告的错误(@pxref{Invoking guix lint})。"

msgid ""
"(service qemu-binfmt-service-type\n"
" (qemu-binfmt-configuration\n"
"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
msgstr ""
"(service qemu-binfmt-service-type\n"
" (qemu-binfmt-configuration\n"
"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"

msgid "Then reconfigure your system."
msgstr "然后重新配置你的系统。"

msgid ""
"guix build --system=armhf-linux --rounds=2 hello\n"
"guix build --system=aarch64-linux --rounds=2 hello\n"
msgstr ""
"guix build --system=armhf-linux --rounds=2 hello\n"
"guix build --system=aarch64-linux --rounds=2 hello\n"

msgid "bundling"
msgstr "构建"

msgid "Make sure the package does not use bundled copies of software already available as separate packages."
msgstr "请确保软件包里不捆绑出现已经被打过包的软件的副本。"

msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users.  However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one.  This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
msgstr "有时,软件包为了方便用户,捆绑了依赖库的源代码。然而,当依赖库在发行版里已经存在时,做为一个发行版,我们希望确保这些软件包使用发行版里已有的副本。这提高资源使用率(依赖库只构建一次,存储一份),并且使发行版更容易管理,如仅在一个地方对某个软件包进行安全更新就可以影响整个系统--捆绑软件会妨碍这么做。"

msgid "determinism, of build processes"
msgstr "构建过程的确定性"

msgid "reproducible builds, checking"
msgstr "检查可复现的构建"

msgid "Check whether the package's build process is deterministic.  This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
msgstr "检查软件包的构建过程是不是确定性的。这通常意味着检查对软件包的独立构建是否能得到每一个比特都完全相同的结果。"

msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
msgstr "为此,一个简单的做法是在你的机器上多次构建同一个软件包(@pxref{Invoking guix build}):"

msgid "guix build --rounds=2 my-package\n"
msgstr "guix build --rounds=2 <我的软件包>\n"

msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
msgstr "这足以查出一批普通的不确定性问题,如构建结果里存在时间戳或随机生成的输出。"

msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}).  You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER-1}} to check whether it obtains the same result as you did.  Better yet: Find another machine that can build it and run @command{guix publish}.  Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
msgstr "另一个选择是使用@command{guix challenge}(@pxref{Invoking guix challenge})。当软件包被提交并且被@code{@value{SUBSTITUTE-SERVER-1}}构建之后,你可以运行这个命令检查你是否得到相同的构建结果。更好的:找另一台可以构建的机器,运行@command{guix publish}。由于远程的构建机器很可能和你的机器不同,这可以捕捉到由硬件不同引起的不确定性问题--如,使用不同的指令集--或不同操作系统内核引起的问题--如,对@code{uname}或@file{/proc}文件的依赖。"

msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
msgstr "在编写文档时,请用性别中立的词语指代人,如@uref{https://en.wikipedia.org/wiki/Singular_they, “他”@comma{} “他的”},等。"

msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
msgstr "检查你的补丁只包含一些相关的更改。把不相关的更改捆绑在一起会让评审更困难和更慢。"

msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
msgstr "不相关的更改的例子有:同时新增多个软件包,或更新软件包同时修补这个软件包。"

msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}).  Use reliable URLs, not generated ones.  For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository.  Don't use the @code{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
msgstr "当可能时,请在源 URL 里使用镜像@pxref{Invoking guix download}。使用可靠的而不是生成的 URL。例如,GitHub 的下载文件每次生成时不一定是相同的,所以这时最好克隆仓库。不要在 URL 里使用@code{name}变量:这没有什么用,而且如果名字变了,URL 很可能就错了。"

msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master --disable-authentication\n"
msgstr "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master --disable-authentication\n"

msgid "Configuring Git"
msgstr "配置 Git"

msgid "Sending a Patch Series"
msgstr "发送补丁系列"

msgid "git send-email"
msgstr "git send-email"

msgid "patch series"
msgstr "补丁系列"

msgid "Warning"
msgstr "警告"

msgid "$ git send-email --annotate -1\n"
msgstr "$ git send-email --annotate -1\n"

msgid "To add a prefix to the subject of your patch, you may use the @option{--subject-prefix} option.  The Guix project uses this to specify that the patch is intended for a branch or repository other than the @code{master} branch of @url{https://codeberg.org/guix/guix.git}."
msgstr "要在补丁的主题前添加前缀,可以使用 @option{--subject-prefix} 选项。Guix 项目使用此选项来指定补丁是针对 @url{https://codeberg.org/guix/guix.git} 的 @code{master} 分支以外的分支或仓库。"

msgid "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n"
msgstr "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n"

msgid ""
"$ git commit --amend\n"
"$ git send-email --annotate -v@var{REVISION} \\\n"
"      --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1\n"
msgstr ""
"$ git commit --amend\n"
"$ git send-email --annotate -v@var{REVISION} \\\n"
"      --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1\n"

msgid ""
"$ git format-patch -@var{NUMBER_COMMITS} -o outgoing \\\n"
"      --cover-letter\n"
msgstr ""
"$ git format-patch -@var{NUMBER_COMMITS} -o outgoing \\\n"
"      --cover-letter\n"

msgid ""
"$ git format-patch master..@var{MY_BRANCH} -o outgoing \\\n"
"      --cover-letter\n"
msgstr ""
"$ git format-patch master..@var{MY_BRANCH} -o outgoing \\\n"
"      --cover-letter\n"

msgid ""
"$ git send-email outgoing/0000-cover-letter.patch --annotate\n"
"$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!\n"
msgstr ""
"$ git send-email outgoing/0000-cover-letter.patch --annotate\n"
"$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!\n"

msgid ""
"$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n"
"$ rm -rf outgoing # we don't need these anymore\n"
msgstr ""
"$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n"
"$ rm -rf outgoing # 我们不再需要这些了\n"

msgid ""
"$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \\\n"
"      --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n"
msgstr ""
"$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \\\n"
"      --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n"

msgid "branching strategy"
msgstr "分支策略"

msgid "rebuild scheduling strategy"
msgstr "重新构建的调度策略"

msgid "Request for merging \"@var{name}\" branch\n"
msgstr "Request for merging \"@var{name}\" branch\n"

msgid ""
"$ cd guix\n"
"~/guix$ guix shell mumi git git:send-email\n"
msgstr ""
"$ cd guix\n"
"~/guix$ guix shell mumi git git:send-email\n"

msgid ""
"~/guix [env]$ mumi search zig is:open\n"
"\n"
msgstr ""
"~/guix [env]$ mumi search zig is:open\n"
"\n"

msgid ""
"#60889 Add zig-build-system\n"
"opened on 17 Jan 17:37 Z by Ekaitz Zarraga\n"
"#61036 [PATCH 0/3] Update zig to 0.10.1\n"
"opened on 24 Jan 09:42 Z by Efraim Flashner\n"
"#39136 [PATCH] gnu: services: Add endlessh.\n"
"opened on 14 Jan 2020 21:21 by Nicol? Balzarotti\n"
"#60424 [PATCH] gnu: Add python-online-judge-tools\n"
"opened on 30 Dec 2022 07:03 by gemmaro\n"
"#45601 [PATCH 0/6] vlang 0.2 update\n"
"opened on  1 Jan 2021 19:23 by Ryan Prior\n"
msgstr ""
"#60889 Add zig-build-system\n"
"opened on 17 Jan 17:37 Z by Ekaitz Zarraga\n"
"#61036 [PATCH 0/3] Update zig to 0.10.1\n"
"opened on 24 Jan 09:42 Z by Efraim Flashner\n"
"#39136 [PATCH] gnu: services: Add endlessh.\n"
"opened on 14 Jan 2020 21:21 by Nicol? Balzarotti\n"
"#60424 [PATCH] gnu: Add python-online-judge-tools\n"
"opened on 30 Dec 2022 07:03 by gemmaro\n"
"#45601 [PATCH 0/6] vlang 0.2 update\n"
"opened on  1 Jan 2021 19:23 by Ryan Prior\n"

msgid ""
"~/guix [env]$ mumi current 61036\n"
"\n"
msgstr ""
"~/guix [env]$ mumi current 61036\n"
"\n"

msgid ""
"#61036 [PATCH 0/3] Update zig to 0.10.1\n"
"opened on 24 Jan 09:42 Z by Efraim Flashner\n"
msgstr ""
"#61036 [PATCH 0/3] Update zig to 0.10.1\n"
"opened on 24 Jan 09:42 Z by Efraim Flashner\n"

msgid "~/guix [env]$ mumi www\n"
msgstr "~/guix [env]$ mumi www\n"

msgid "~/guix [env]$ mumi compose\n"
msgstr "~/guix [env]$ mumi compose\n"

msgid "~/guix [env]$ mumi compose --close\n"
msgstr "~/guix [env]$ mumi compose --close\n"

msgid "~/guix [env]$ mumi am\n"
msgstr "~/guix [env]$ mumi am\n"

msgid "~/guix [env]$ mumi am v3\n"
msgstr "~/guix [env]$ mumi am v3\n"

msgid "~/guix [env]$ mumi am @@4\n"
msgstr "~/guix [env]$ mumi am @@4\n"

msgid "~/guix [env]$ mumi am -- -s\n"
msgstr "~/guix [env]$ mumi am -- -s\n"

msgid ""
"~/guix [env]$ git format-patch origin/master\n"
"~/guix [env]$ mumi send-email foo.patch bar.patch\n"
msgstr ""
"~/guix [env]$ git format-patch origin/master\n"
"~/guix [env]$ mumi send-email foo.patch bar.patch\n"

msgid "~/guix [env]$ mumi new\n"
msgstr "~/guix [env]$ mumi new\n"

msgid "guix install emacs-debbugs\n"
msgstr "guix install emacs-debbugs\n"

msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"

msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
msgstr "@xref{Top,,, debbugs-ug, Debbugs User Guide},了解更多有关此实用工具的信息!"

msgid ""
"@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET\n"
"Guix CI - master RET Build events for specification master. RET\n"
msgstr ""
"@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET\n"
"Guix CI - master RET Build events for specification master. RET\n"

msgid ""
" . [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.\n"
" . [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.\n"
" . [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.\n"
msgstr ""
" . [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.\n"
" . [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.\n"
" . [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.\n"

msgid ""
"$ ./etc/teams.scm list-teams\n"
"id: mentors\n"
"name: Mentors\n"
"description: A group of mentors who chaperone contributions by newcomers.\n"
"members:\n"
"+ Charlie Smith <charlie@@example.org>\n"
"@dots{}\n"
msgstr ""
"$ ./etc/teams.scm list-teams\n"
"id: mentors\n"
"name: Mentors\n"
"description: A group of mentors who chaperone contributions by newcomers.\n"
"members:\n"
"+ Charlie Smith <charlie@@example.org>\n"
"@dots{}\n"

msgid ""
"$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org \\\n"
"  --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch\n"
msgstr ""
"$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org \\\n"
"  --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch\n"

msgid ""
"$ guix shell -D guix\n"
"[env]$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -2\n"
msgstr ""
"$ guix shell -D guix\n"
"[env]$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -2\n"

msgid "./etc/teams.scm codeowners > CODEOWNERS\n"
msgstr "./etc/teams.scm codeowners > CODEOWNERS\n"

msgid "./etc/teams.scm sync-codeberg-teams @var{token}\n"
msgstr "./etc/teams.scm sync-codeberg-teams @var{token}\n"

msgid "digest-algo sha512\n"
msgstr "digest-algo sha512\n"

msgid "All commits that are pushed to the central repository on Codeberg must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Codeberg and to public key servers, such as @code{keys.openpgp.org}.  To configure Git to automatically sign commits, run:"
msgstr "所有推送到 Codeberg 中央存储库的提交必须使用 OpenPGP 密钥签名,并且公钥应上传到您在 Codeberg 的用户帐户和公共密钥服务器,例如 @code{keys.openpgp.org}。要配置 Git 自动签署提交,请运行:"

msgid ""
"git config commit.gpgsign true\n"
"\n"
msgstr ""
"git config commit.gpgsign true\n"
"\n"

msgid ""
"# Substitute the fingerprint of your public PGP key.\n"
"git config user.signingkey CABBA6EA1DC0FF33\n"
msgstr ""
"# 替换为您的公共 PGP 密钥指纹。\n"
"git config user.signingkey CABBA6EA1DC0FF33\n"

msgid "To avoid accidentally pushing unsigned or signed with the wrong key commits to Codeberg, make sure to configure Git according to @xref{Configuring Git}."
msgstr "为了避免意外将未签名或使用错误密钥签名的提交推送到 Codeberg,请确保根据 @xref{Configuring Git} 配置 Git。"

msgid "make check-channel-news\n"
msgstr "make check-channel-news\n"

msgid "make update-guix-package\n"
msgstr "make update-guix-package\n"

msgid "./pre-inst-env guix build guix\n"
msgstr "./pre-inst-env guix build guix\n"

msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Codeberg-hosted Guix Git repository."
msgstr "为了防止意外将 @code{guix} 包更新到其他人无法引用的提交,会检查所使用的提交是否已推送到 Codeberg 托管的 Guix Git 仓库。"

msgid "Services"
msgstr "服务"

msgid "documentation"
msgstr "documentation"

msgid "i18n"
msgstr "i18n"

msgid "On Weblate, you will find various links to the editor, that will show various subsets (or all) of the strings.  Have a look around and at the @uref{https://docs.weblate.org/en/latest/,documentation} to familiarize yourself with the platform."
msgstr ""
"在 Weblate 上,您可以发现各种编辑器链接,这些链接将显示各种字符串子集(或全部)。 请访问@uref{https://docs.weblate.org/zh-cn/latest/,文档}以熟悉该平台。\n"
"\n"
"@unnumberedsec 译者注意\n"
"\n"
"各位热爱 Guix 本地化的朋友,当您进行本地化工作时,需注意:\n"
"\n"
"中文标点符号的使用不能草率,应参考《标点符号用法》(GB/T 15834-2011)。\n"
"\n"
"对于中英文混合标点符号用法,应参考教育部发布的《夹用英文的中文文本的标点符号用法(草案)》。\n"
"\n"
"对于其他中文信息处理,应参考《汉语信息处理词汇 01部分:基本术语》(GB 12200.1-90)、《汉语信息处理词汇 02 部分:汉语和汉字》(GB/T 12200.2-94)、《出版物上数字用法》(GB/T 15835-2011)等教育部和国家语委发布的国家标准及语言文字规范。\n"
"\n"
"对于 “and/or” 的译法,建议采用“和(或)”而不是“和/或”。"

msgid "As an example, you cannot translate @samp{package '~a' has been superseded by '~a'} by @samp{'~a' supersedes package '~a'}, because the meaning would be reversed.  If @var{foo} is superseded by @var{bar}, the translation would read @samp{'foo' supersedes package 'bar'}.  To work around this problem, it is possible to use more advanced formatting to select a given piece of data, instead of following the default English order.  @xref{Formatted Output,,, guile, GNU Guile Reference Manual}, for more information on formatting in Guile."
msgstr "例如,您不能将 @samp{package '~a' has been superseded by '~a'} 翻译为 @samp{'~a' supersedes package '~a'},因为意思会被颠倒。如果 @var{foo} 被 @var{bar} 取代,翻译将为 @samp{'foo' supersedes package 'bar'}。为了解决这个问题,可以使用更高级的格式来选择特定的数据,而不是遵循默认的英语顺序。有关 Guile 中格式的更多信息,请参阅 @pxref{Formatted Output,,, guile, GNU Guile Reference Manual}."

msgid ""
"#. TRANSLATORS: Defining Packages is a section name\n"
"#. in the English (en) manual.\n"
"#: apps/base/templates/about.scm:64\n"
"msgid \"Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules.\"\n"
"msgstr \"Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>.\"\n"
msgstr ""
"#. TRANSLATORS: Defining Packages is a section name\n"
"#. in the English (en) manual.\n"
"#: apps/base/templates/about.scm:64\n"
"msgid \"Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules.\"\n"
"msgstr \"Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>.\"\n"

msgid "@documentencoding UTF-8"
msgstr ""
"@documentencoding UTF-8\n"
"@documentlanguage zh_CN"

msgid "GNU Guix Reference Manual"
msgstr "GNU Guix 参考手册"

msgid "version.texi"
msgstr "version-zh_CN.texi"

msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the section entitled ``GNU Free Documentation License''."
msgstr "现允许根据 GNU 自由文档许可证第 1.3 版或自由软件基金会发布的任何更高版本的条款复制、分发和(或)修改本文件;没有不可变小节,没有封面文字,也没有封底文字。此许可证的副本包含在标题为“GNU 自由文档许可证”的部分内。"

msgid "System administration"
msgstr "系统管理"

msgid "Guix: (guix)"
msgstr "Guix.zh_CN: (guix.zh_CN)"

msgid "Manage installed software and system configuration."
msgstr "管理安装的软件和系统配置。"

msgid "guix package: (guix)Invoking guix package"
msgstr "guix package: (guix.zh_CN) 调用 guix package"

msgid "Installing, removing, and upgrading packages."
msgstr "安装、删除和升级软件包。"

msgid "guix gc: (guix)Invoking guix gc"
msgstr "guix gc:(guix.zh_CN) 调用 guix gc"

msgid "Reclaiming unused disk space."
msgstr "回收不使用的硬盘空间。"

msgid "guix pull: (guix)Invoking guix pull"
msgstr "guix pull: (guix.zh_CN) 调用 guix pull"

msgid "Update the list of available packages."
msgstr "更新可用的软件包列表。"

msgid "guix system: (guix)Invoking guix system"
msgstr "guix system: (guix.zh_CN) 调用 guix system"

msgid "Manage the operating system configuration."
msgstr "管理操作系统配置。"

msgid "guix deploy: (guix)Invoking guix deploy"
msgstr "guix deploy: (guix.zh_CN) 调用 guix deploy"

msgid "Software development"
msgstr "软件开发"

msgid "guix shell: (guix)Invoking guix shell"
msgstr "guix shell: (guix.zh_CN) 调用 guix shell"

msgid "guix environment: (guix)Invoking guix environment"
msgstr "guix environment: (guix.zh_CN) 调用 guix environment"

msgid "Building development environments with Guix."
msgstr "用 Guix 构建开发环境。"

msgid "guix build: (guix)Invoking guix build"
msgstr "guix build: (guix.zh_CN) 调用 guix build"

msgid "Building packages."
msgstr "构建软件包。"

msgid "guix pack: (guix)Invoking guix pack"
msgstr "guix pack: (guix.zh_CN) 调用 guix pack"

msgid "Creating binary bundles."
msgstr "创建二进制 bundle。"

msgid "Using the GNU Guix Functional Package Manager"
msgstr "使用 GNU Guix 函数式包管理器"

msgid "The GNU Guix Developers"
msgstr "GNU Guix 开发者"

msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
msgstr "版本@value{EDITION} @* @value{UPDATED} @*"

msgid "Top"
msgstr "Top"

msgid "GNU Guix"
msgstr "GNU Guix"

msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
msgstr ""
"这份文档介绍 GNU Guix 版本 @value{VERSION},一个为 GNU 系统编写的函数式包管理器。\n"
"\n"
"因语言差异导致的语义折损深表歉意,术语溯源详见英文版。"

msgid "This manual is also available in Simplified Chinese (@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), Italian (@pxref{Top,,, guix.it, Manuale di riferimento di GNU Guix}), Brazilian Portuguese (@pxref{Top,,, guix.pt_BR, Manual de referência do GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you would like to translate it in your native language, consider joining @uref{https://translate.codeberg.org/projects/guix/documentation-manual, Weblate} (@pxref{Translating Guix})."
msgstr "这个用户手册还提供英语版(@pxref{Top,,, guix, GNU Guix Reference Manual})、法语版(@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix})、德语版(@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix})、西班牙语版(@pxref{Top,,, guix.es, Manual de referencia de GNU Guix})、意大利语版(@pxref{Top,,, guix.it, Manuale di riferimento di GNU Guix})、巴西葡萄牙语版(@pxref{Top,,, guix.pt_BR, Manual de referência do GNU Guix})与俄语版(@pxref{Top,,, guix.ru, Руководство GNU Guix})。如果你想把它翻译成你的母语,请考虑加入 @uref{https://translate.codeberg.org/projects/guix/documentation-manual, Weblate}(@pxref{Translating Guix})。"

msgid "What is Guix about?"
msgstr "Guix 是关于什么的?"

msgid "Installation"
msgstr "安装"

msgid "Installing Guix."
msgstr "安装 Guix。"

msgid "System Installation"
msgstr "系统安装"

msgid "Installing the whole operating system."
msgstr "安装整个操作系统。"

msgid "Getting Started"
msgstr "入门"

msgid "Package Management"
msgstr "软件包管理"

msgid "Package installation, upgrade, etc."
msgstr "软件包安装、升级等。"

msgid "Channels"
msgstr "频道"

msgid "Customizing the package collection."
msgstr "定制软件包集合。"

msgid "Development"
msgstr "开发"

msgid "Guix-aided software development."
msgstr "Guix 辅助的软件开发。"

msgid "Programming Interface"
msgstr "编程接口"

msgid "Using Guix in Scheme."
msgstr "在 Scheme 里使用 Guix。"

msgid "Utilities"
msgstr "工具"

msgid "Package management commands."
msgstr "软件包管理命令。"

msgid "System Configuration"
msgstr "系统配置"

msgid "Configuring the operating system."
msgstr "配置操作系统。"

msgid "Documentation"
msgstr "文档"

msgid "Browsing software user manuals."
msgstr "浏览软件用户手册。"

msgid "Platforms"
msgstr "平台"

msgid "Installing Debugging Files"
msgstr "安装调试文件"

msgid "Feeding the debugger."
msgstr "为调试工具提供输入。"

msgid "Security Updates"
msgstr "安全更新"

msgid "Deploying security fixes quickly."
msgstr "快速部署安全补丁。"

msgid "Bootstrapping"
msgstr "引导"

msgid "GNU/Linux built from scratch."
msgstr "从头开始构建 GNU/Linux。"

msgid "Porting"
msgstr "移植"

msgid "Targeting another platform or kernel."
msgstr "以别的平台或内核为目标。"

msgid "Your help needed!"
msgstr "你需要帮助!"

msgid "Acknowledgments"
msgstr "致谢"

msgid "Thanks!"
msgstr "感谢!"

msgid "GNU Free Documentation License"
msgstr "GNU 自由文档许可证"

msgid "The license of this manual."
msgstr "这个用户手册的许可证。"

msgid "Concept Index"
msgstr "概念索引"

msgid "Concepts."
msgstr "概念。"

msgid "Programming Index"
msgstr "编程索引"

msgid "Data types, functions, and variables."
msgstr "数据类型、函数和变量。"

msgid "--- The Detailed Node Listing ---"
msgstr "---详细的章节列表---"

msgid "Managing Software the Guix Way"
msgstr "以 Guix 的方式管理软件"

msgid "What's special."
msgstr "特殊的地方。"

msgid "GNU Distribution"
msgstr "GNU 发行版"

msgid "The packages and tools."
msgstr "软件包和工具。"

msgid "Binary Installation"
msgstr "二进制文件安装"

msgid "Getting Guix running in no time!"
msgstr "立刻运行 Guix!"

msgid "Setting Up the Daemon"
msgstr "设置后台进程"

msgid "Preparing the build daemon's environment."
msgstr "准备“构建后台进程”的环境。"

msgid "Invoking guix-daemon"
msgstr "调用 guix-daemon"

msgid "Running the build daemon."
msgstr "运行后台构建进程。"

msgid "Application Setup"
msgstr "设置应用程序"

msgid "Application-specific setup."
msgstr "应用程序相关的设置。"

msgid "Upgrading Guix"
msgstr "升级 Guix"

msgid "Upgrading Guix and its build daemon."
msgstr "升级 Guix 及其构建守护进程。"

msgid "Build Environment Setup"
msgstr "设置构建环境"

msgid "Preparing the isolated build environment."
msgstr "准备隔离的构建环境。"

msgid "Daemon Offload Setup"
msgstr "下发工作给后台进程的设置"

msgid "Offloading builds to remote machines."
msgstr "下发构建工作给远程的机器。"

msgid "SELinux Support"
msgstr "SELinux 的支持"

msgid "Using an SELinux policy for the daemon."
msgstr "为后台进程使用 SELinux 规则。"

msgid "Limitations"
msgstr "限制"

msgid "What you can expect."
msgstr "你可以期待什么。"

msgid "Hardware Considerations"
msgstr "硬件的考虑"

msgid "Supported hardware."
msgstr "支持的硬件。"

msgid "USB Stick and DVD Installation"
msgstr "U 盘和 DVD 安装"

msgid "Preparing the installation medium."
msgstr "准备安装介质。"

msgid "Preparing for Installation"
msgstr "准备安装"

msgid "Networking, partitioning, etc."
msgstr "网络、分区等。"

msgid "Guided Graphical Installation"
msgstr "向导式图形安装"

msgid "Easy graphical installation."
msgstr "简单的图形安装。"

msgid "Manual Installation"
msgstr "手动安装"

msgid "Manual installation for wizards."
msgstr "适合巫师的手动安装。"

msgid "After System Installation"
msgstr "系统安装之后"

msgid "When installation succeeded."
msgstr "当安装成功后。"

msgid "Installing Guix in a VM"
msgstr "在虚拟机里安装 Guix"

msgid "Guix System playground."
msgstr "Guix 系统游乐场。"

msgid "Building the Installation Image"
msgstr "构建安装镜像"

msgid "How this comes to be."
msgstr "这是怎样实现的。"

msgid "Keyboard Layout and Networking and Partitioning"
msgstr "键盘布局、网络和分区"

msgid "Initial setup."
msgstr "初始设置。"

msgid "Proceeding with the Installation"
msgstr "继续安装步骤"

msgid "Installing."
msgstr "安装。"

msgid "Features"
msgstr "功能"

msgid "How Guix will make your life brighter."
msgstr "Guix 怎样让你的生活更美好。"

msgid "Invoking guix package"
msgstr "调用 guix package"

msgid "Package installation, removal, etc."
msgstr "软件包安装,移除等。"

msgid "Substitutes"
msgstr "替代品"

msgid "Downloading pre-built binaries."
msgstr "下载构建好的二进制文件。"

msgid "Packages with Multiple Outputs"
msgstr "有多个输出的软件包"

msgid "Single source package, multiple outputs."
msgstr "单个输入多个输出的软件包。"

msgid "Invoking guix locate"
msgstr "调用 guix locate"

msgid "Invoking guix gc"
msgstr "调用 guix gc"

msgid "Running the garbage collector."
msgstr "运行垃圾回收器。"

msgid "Invoking guix pull"
msgstr "调用 guix pull"

msgid "Fetching the latest Guix and distribution."
msgstr "获取最新的 Guix 和发行版。"

msgid "Invoking guix time-machine"
msgstr "调用 guix time-machine"

msgid "Inferiors"
msgstr "下级"

msgid "Interacting with another revision of Guix."
msgstr "和其它版本的 Guix 交互。"

msgid "Invoking guix describe"
msgstr "调用 guix describe"

msgid "Display information about your Guix revision."
msgstr "显示你的 Guix 版本信息。"

msgid "Invoking guix archive"
msgstr "调用 guix archive"

msgid "Exporting and importing store files."
msgstr "导出和导入仓库文件。"

msgid "One particular source of substitutes."
msgstr "substitute 的一个特殊来源。"

msgid "Substitute Server Authorization"
msgstr "substitute 服务器授权"

msgid "How to enable or disable substitutes."
msgstr "怎么开启或关闭 substitute。"

msgid "Substitute diversity."
msgstr "substitutes 多样化。"

msgid "Substitute Authentication"
msgstr "验证 substitute"

msgid "How Guix verifies substitutes."
msgstr "Guix 怎样验证 substitute。"

msgid "Proxy Settings"
msgstr "代理设置"

msgid "How to get substitutes via proxy."
msgstr "怎样通过代理获取 substitute。"

msgid "Substitution Failure"
msgstr "substitute 失败"

msgid "What happens when substitution fails."
msgstr "当 substitute 失败时会发生什么。"

msgid "On Trusting Binaries"
msgstr "关于信任二进制文件"

msgid "How can you trust that binary blob?"
msgstr "你怎么能信任二进制的 blob 呢?"

msgid "Specifying Additional Channels"
msgstr "指定其他频道"

msgid "Extending the package collection."
msgstr "拓展软件包集合。"

msgid "Using a Custom Guix Channel"
msgstr "使用自定义 Guix 频道"

msgid "Replicating Guix"
msgstr "复制 Guix"

msgid "Channel Authentication"
msgstr "频道验证"

msgid "Creating a Channel"
msgstr "创建一个频道"

msgid "Writing Channel News"
msgstr "撰写频道新闻"

msgid "Invoking guix shell"
msgstr "调用 guix shell"

msgid "Invoking guix environment"
msgstr "调用 guix environment"

msgid "Setting up development environments."
msgstr "设置开发环境。"

msgid "Invoking guix pack"
msgstr "调用 guix pack"

msgid "Creating software bundles."
msgstr "创建软件 bundle。"

msgid "The GCC toolchain"
msgstr "GCC 工具链"

msgid "Invoking guix git authenticate"
msgstr "调用 guix git authenticate"

msgid "Package Modules"
msgstr "软件包模块"

msgid "Packages from the programmer's viewpoint."
msgstr "从程序员的角度看软件包。"

msgid "Defining Packages"
msgstr "定义软件包"

msgid "Defining new packages."
msgstr "定义新软件包。"

msgid "Defining Package Variants"
msgstr "定义软件包变体"

msgid "Writing Manifests"
msgstr "书写清单"

msgid "Build Systems"
msgstr "构建系统"

msgid "Specifying how packages are built."
msgstr "指定如何构建软件包。"

msgid "Build Utilities"
msgstr "构建工具"

msgid "Search Paths"
msgstr "搜索路径"

msgid "The Store"
msgstr "存储区"

msgid "Manipulating the package store."
msgstr "操纵软件包仓库。"

msgid "Derivations"
msgstr "派生"

msgid "Low-level interface to package derivations."
msgstr "软件包 derivation 的底层接口。"

msgid "The Store Monad"
msgstr "存储区单子"

msgid "Purely functional interface to the store."
msgstr "仓库的纯函数式接口。"

msgid "G-Expressions"
msgstr "G 表达式"

msgid "Manipulating build expressions."
msgstr "操纵构建表达式。"

msgid "Invoking guix repl"
msgstr "调用 guix repl"

msgid "Using Guix Interactively"
msgstr "交互式使用 Guix"

msgid "package Reference"
msgstr "软件包引用"

msgid "The package data type."
msgstr "软件包数据类型。"

msgid "origin Reference"
msgstr "origin 参考手册"

msgid "The origin data type."
msgstr "origin 数据类型。"

msgid "Invoking guix build"
msgstr "调用 guix build"

msgid "Building packages from the command line."
msgstr "用命令行构建软件包。"

msgid "Invoking guix edit"
msgstr "调用 guix edit"

msgid "Editing package definitions."
msgstr "编辑软件包定义。"

msgid "Invoking guix download"
msgstr "调用 guix download"

msgid "Downloading a file and printing its hash."
msgstr "下载一个文件并打印它的 hash。"

msgid "Invoking guix hash"
msgstr "调用 guix hash"

msgid "Computing the cryptographic hash of a file."
msgstr "计算一个文件的密码学 hash。"

msgid "Invoking guix import"
msgstr "调用 guix import"

msgid "Importing package definitions."
msgstr "导入软件包定义。"

msgid "Invoking guix refresh"
msgstr "调用 guix refresh"

msgid "Updating package definitions."
msgstr "更新软件包定义。"

msgid "Invoking guix style"
msgstr "调用 guix style"

msgid "Invoking guix lint"
msgstr "调用 guix lint"

msgid "Finding errors in package definitions."
msgstr "从软件包定义里寻找错误。"

msgid "Invoking guix size"
msgstr "调用 guix size"

msgid "Profiling disk usage."
msgstr "分析硬盘使用情况。"

msgid "Invoking guix graph"
msgstr "调用 guix graph"

msgid "Visualizing the graph of packages."
msgstr "展示软件包的关系图。"

msgid "Invoking guix publish"
msgstr "调用 guix publish"

msgid "Sharing substitutes."
msgstr "分享 substitute。"

msgid "Invoking guix challenge"
msgstr "调用 guix challenge"

msgid "Challenging substitute servers."
msgstr "挑战 subtitute 服务器。"

msgid "Invoking guix copy"
msgstr "调用 guix copy"

msgid "Copying to and from a remote store."
msgstr "复制到远程的仓库,或从远程的仓库复制。"

msgid "Invoking guix container"
msgstr "调用 guix container"

msgid "Process isolation."
msgstr "进程隔离。"

msgid "Invoking guix weather"
msgstr "调用 guix weather"

msgid "Assessing substitute availability."
msgstr "评估 substitute 的可用性。"

msgid "Invoking guix processes"
msgstr "调用 guix processes"

msgid "Listing client processes."
msgstr "列出客户端进程。"

msgid "Invoking @command{guix build}"
msgstr "调用 @command{guix build}"

msgid "Common Build Options"
msgstr "普通的构建选项"

msgid "Build options for most commands."
msgstr "大部分命令的构建选项。"

msgid "Package Transformation Options"
msgstr "软件包转换选项"

msgid "Creating variants of packages."
msgstr "创建软件包的变体。"

msgid "Additional Build Options"
msgstr "额外的构建选项"

msgid "Options specific to 'guix build'."
msgstr "只属于'guix build'的选项。"

msgid "Debugging Build Failures"
msgstr "调试构建错误"

msgid "Real life packaging experience."
msgstr "真实的打包经验。"

msgid "Cross-Compilation"
msgstr "交叉编译"

msgid "Cross-compiling for another architecture."
msgstr "为另一个架构交叉编译。"

msgid "Native Builds"
msgstr "本地构建"

msgid "Using the Configuration System"
msgstr "使用配置系统"

msgid "Customizing your GNU system."
msgstr "定制你的 GNU 系统。"

msgid "operating-system Reference"
msgstr "operating-system 参考"

msgid "Detail of operating-system declarations."
msgstr "操作系统声明详情。"

msgid "File Systems"
msgstr "文件系统"

msgid "Configuring file system mounts."
msgstr "设置文件系统挂载。"

msgid "Mapped Devices"
msgstr "映射的设备"

msgid "Block device extra processing."
msgstr "块设备额外的处理。"

msgid "Swap Space"
msgstr "交换空间"

msgid "User Accounts"
msgstr "用户帐户"

msgid "Specifying user accounts."
msgstr "指定用户帐户。"

msgid "Keyboard Layout"
msgstr "键盘布局"

msgid "How the system interprets key strokes."
msgstr "系统怎样理解按键。"

msgid "Locales"
msgstr "区域"

msgid "Language and cultural convention settings."
msgstr "语言和文化惯例设置。"

msgid "Specifying system services."
msgstr "指定系统服务。"

msgid "Privileged Programs"
msgstr "特权程序"

msgid "X.509 Certificates"
msgstr "X.509 证书"

msgid "Authenticating HTTPS servers."
msgstr "认证 HTTPS 服务器。"

msgid "Name Service Switch"
msgstr "Name Service Switch"

msgid "Configuring libc's name service switch."
msgstr "设置 libc 的 name service switch。"

msgid "Initial RAM Disk"
msgstr "初始化内存盘"

msgid "Linux-Libre bootstrapping."
msgstr "Linux-Libre 引导。"

msgid "Bootloader Configuration"
msgstr "引导配置"

msgid "Configuring the boot loader."
msgstr "设置引导程序。"

msgid "Invoking guix system"
msgstr "调用 guix system"

msgid "Instantiating a system configuration."
msgstr "实例化一个系统配置。"

msgid "Invoking guix deploy"
msgstr "调用 guix deploy"

msgid "Running Guix in a VM"
msgstr "在虚拟机里运行 Guix"

msgid "How to run Guix System in a virtual machine."
msgstr "怎样在虚拟机里运行 Guix。"

msgid "Defining Services"
msgstr "定义服务"

msgid "Adding new service definitions."
msgstr "添加新的服务定义。"

msgid "Btrfs file system"
msgstr "Btrfs 文件系统"

msgid "Base Services"
msgstr "基础服务"

msgid "Essential system services."
msgstr "必要的系统服务。"

msgid "Scheduled Job Execution"
msgstr "执行计划任务"

msgid "The mcron service."
msgstr "mcron 服务。"

msgid "Log Rotation"
msgstr "日志轮替"

msgid "Setting up network interfaces."
msgstr "配置网络接口。"

msgid "Networking Services"
msgstr "网络服务"

msgid "Firewall, SSH daemon, etc."
msgstr "防火墙,SSH 后台进程等。"

msgid "X Window"
msgstr "X 窗口"

msgid "Graphical display."
msgstr "图形显示器。"

msgid "Printing Services"
msgstr "打印服务"

msgid "Local and remote printer support."
msgstr "本地和远程打印机的支持。"

msgid "Desktop Services"
msgstr "桌面服务"

msgid "D-Bus and desktop services."
msgstr "D-Bus 和桌面服务。"

msgid "Sound Services"
msgstr "声音服务"

msgid "ALSA and Pulseaudio services."
msgstr "ALSA 和 Pulseaudio 服务。"

msgid "Database Services"
msgstr "数据库服务"

msgid "SQL databases, key-value stores, etc."
msgstr "SQL 数据库,键值仓库等。"

msgid "Mail Services"
msgstr "邮件服务"

msgid "IMAP, POP3, SMTP, and all that."
msgstr "IMAP,POP3,SMTP 等。"

msgid "Messaging Services"
msgstr "消息服务"

msgid "Messaging services."
msgstr "消息服务。"

msgid "Telephony Services"
msgstr "电话服务"

msgid "Telephony services."
msgstr "电话服务。"

msgid "Monitoring Services"
msgstr "监控服务"

msgid "Monitoring services."
msgstr "监控服务。"

msgid "Kerberos Services"
msgstr "Kerberos 服务"

msgid "Kerberos services."
msgstr "Kerberos 服务。"

msgid "Web Services"
msgstr "Web 服务"

msgid "Web servers."
msgstr "Web 服务。"

msgid "Certificate Services"
msgstr "证书服务"

msgid "TLS certificates via Let's Encrypt."
msgstr "Let's Encrypt TLS 证书。"

msgid "DNS Services"
msgstr "DNS 服务"

msgid "DNS daemons."
msgstr "DNS 后台进程。"

msgid "VPN Services"
msgstr "VPN 服务"

msgid "VPN daemons."
msgstr "VPN 后台进程。"

msgid "Network File System"
msgstr "网络文件系统"

msgid "NFS related services."
msgstr "网络文件系统相关的服务。"

msgid "Continuous Integration"
msgstr "持续集成"

msgid "Power Management Services"
msgstr "电源管理服务"

msgid "Audio Services"
msgstr "音频服务"

msgid "The MPD."
msgstr "MPD。"

msgid "Virtualization Services"
msgstr "虚拟化服务"

msgid "Virtualization services."
msgstr "虚拟化服务。"

msgid "Version Control Services"
msgstr "版本控制服务"

msgid "Providing remote access to Git repositories."
msgstr "远程访问 Git 仓库。"

msgid "Game Services"
msgstr "游戏服务"

msgid "Game servers."
msgstr "游戏服务器。"

msgid "Miscellaneous Services"
msgstr "其它各种服务"

msgid "Other services."
msgstr "其它服务。"

msgid "Service Composition"
msgstr "合成服务"

msgid "The model for composing services."
msgstr "服务合成的模型。"

msgid "Service Types and Services"
msgstr "服务类型和服务"

msgid "Types and services."
msgstr "类型和服务。"

msgid "Service Reference"
msgstr "服务参考"

msgid "API reference."
msgstr "API 参考。"

msgid "Shepherd Services"
msgstr "Shepherd 服务"

msgid "A particular type of service."
msgstr "一种特别的服务。"

msgid "Chrooting into an existing system"
msgstr "改变目录进入现有系统"

msgid "Configuring the Shell"
msgstr "配置 Shell"

msgid "Home Services"
msgstr "家服务"

msgid "Invoking guix home"
msgstr "调用 guix home"

msgid "Networking services."
msgstr "网络服务。"

msgid "Creating System Images"
msgstr "创建系统镜像"

msgid "@code{image} Reference"
msgstr "@code{image} 参考手册"

msgid "partition Reference"
msgstr "partition 参考手册"

msgid "Installing 'debug' outputs."
msgstr "安装“调试”输出"

msgid "purpose"
msgstr "目的"

msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for and distribution of the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments."
msgstr "GNU Guix@footnote{``Guix''读做 ``geeks'',或``ɡiːks''(国际音标)}是 GNU 系统的包管理器和发行版。Guix 让无特权的用户可以轻松地安装,升级,或删除软件包,回滚到前一个软件包集合,从源代码构建软件包,及辅助软件环境的创建和维护。"

msgid "Guix System"
msgstr "Guix 系统"

msgid "GuixSD, now Guix System"
msgstr "GuixSD,现在称为 Guix 系统"

msgid "Guix System Distribution, now Guix System"
msgstr "Guix 系统发行版,现在称为 Guix 系统"

msgid "You can install GNU@tie{}Guix on top of an existing GNU/Linux system where it complements the available tools without interference (@pxref{Installation}), or you can use it as a standalone operating system distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it makes more sense to group everything under the ``Guix'' banner since, after all, Guix System is readily available through the @command{guix system} command, even if you're using a different distro underneath!}.  @xref{GNU Distribution}."
msgstr "你可以在现有的 GNU/Linux 发行版上安装 GNU@tie{}Guix(@pxref{Installation}),Guix 可以补充已有的工具,并且不会和它们产生冲突。或者你可以把它当作独立的操作系统发行版(@dfn{Guix@tie{}系统}@footnote{我们以前把 Guix 系统称为``Guix 系统发行版''或 ``GuixSD''。我们现在觉得把一切都统一在``Guix''的旗帜下更合理,因为,毕竟即使在别的发行版上你也可以随时通过@command{guix system}命令获得 Guix 系统})。@xref{GNU Distribution}."

msgid "user interfaces"
msgstr "用户界面"

msgid "Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development (@pxref{Development}), command-line utilities for more advanced usage (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
msgstr "Guix 提供了命令行软件包管理接口(@pxref{Package Management}),辅助软件开发的工具(@pxref{Development}),高级用法的命令行接口(@pxref{Utilities}),以及Scheme 编程语言接口(@pxref{Programming Interface})。"

msgid "build daemon"
msgstr "构建后台进程"

msgid "Its @dfn{build daemon} is responsible for building packages on behalf of users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries from authorized sources (@pxref{Substitutes})."
msgstr "@dfn{构建后台进程}为用户构建软件包(@pxref{Setting Up the Daemon}),及从授权的源(@pxref{Substitutes})下载预构建的二进制文件。"

msgid "extensibility of the distribution"
msgstr "发行版的扩展性"

msgid "customization, of packages"
msgstr "定制软件包"

msgid "Guix includes package definitions for many GNU and non-GNU packages, all of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's computing freedom}.  It is @emph{extensible}: users can write their own package definitions (@pxref{Defining Packages}) and make them available as independent package modules (@pxref{Package Modules}).  It is also @emph{customizable}: users can @emph{derive} specialized package definitions from existing ones, including from the command line (@pxref{Package Transformation Options})."
msgstr "Guix 包含很多 GNU 和非 GNU 的软件包定义,所有的这些软件包都@uref{https://www.gnu.org/philosophy/free-sw.html, 尊重用户的自由}。它是@emph{可扩展的}:用户可以编写自己的软件包定义(@pxref{Defining Packages}),并且把它们作为独立的软件包模块@pxref{Package Modules}。它也是@emph{可定制的}:用户可以从现有的软件包定义衍生出特殊的软件包,包括从命令行(@pxref{Package Transformation Options})。"

msgid "functional package management"
msgstr "函数式包管理器"

msgid "isolation"
msgstr "隔离"

msgid "Under the hood, Guix implements the @dfn{functional package management} discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package build and installation process is seen as a @emph{function}, in the mathematical sense.  That function takes inputs, such as build scripts, a compiler, and libraries, and returns an installed package.  As a pure function, its result depends solely on its inputs---for instance, it cannot refer to software or scripts that were not explicitly passed as inputs.  A build function always produces the same result when passed a given set of inputs.  It cannot alter the environment of the running system in any way; for instance, it cannot create, modify, or delete files outside of its build and installation directories.  This is achieved by running build processes in isolated environments (or @dfn{containers}), where only their explicit inputs are visible."
msgstr "在底层,Guix 实现了由 Nix(@pxref{Acknowledgments})开创的@dfn{函数式包管理器}。在 Guix 里,软件包构建和安装过程被视为数学意义上的@emph{函数}。函数获取输入,如构建脚本、编译器和库,并且返回一个安装好的软件包。作为一个纯函数,它的结果只取决于它的输入--例如,它不能引用没有作为显式输入传入的软件和脚本。当传入特定的输入时,一个构建函数总是得到相同的结果。它不能以任何方式修改运行系统的环境,例如,它不能创建,修改,或删除构建和安装环境之外的文件夹。这是通过在隔离的环境(@dfn{容器})里运行构建进程实现的,在这个环境里只能访问到显式的输入。"

msgid "store"
msgstr "store"

msgid "The result of package build functions is @dfn{cached} in the file system, in a special directory called @dfn{the store} (@pxref{The Store}).  Each package is installed in a directory of its own in the store---by default under @file{/gnu/store}.  The directory name contains a hash of all the inputs used to build that package; thus, changing an input yields a different directory name."
msgstr "软件包构建函数的结果被@dfn{缓存}在文件系统里的一个叫做@dfn{仓库}(@pxref{The Store})的特殊文件夹内。每个软件包都被安装在仓库(默认在@file{/gnu/store})里的一个独立的文件夹内。这个文件夹的名字含有用于构建这个软件包的所有输入的hash,所以,修改输入会得到一个不同的文件夹名。"

msgid "This approach is the foundation for the salient features of Guix: support for transactional package upgrade and rollback, per-user installation, and garbage collection of packages (@pxref{Features})."
msgstr "这种手段是实现 Guix 的突出功能的基础:对事务型软件包升级和回滚的支持,每个用户独立的安装,软件包垃圾回收@pxref{Features}。"

msgid "Guix comes with a distribution of the GNU system consisting entirely of free software@footnote{The term ``free'' here refers to the @url{https://www.gnu.org/philosophy/free-sw.html,freedom provided to users of that software}.}.  The distribution can be installed on its own (@pxref{System Installation}), but it is also possible to install Guix as a package manager on top of an installed GNU/Linux system (@pxref{Installation}).  When we need to distinguish between the two, we refer to the standalone distribution as Guix@tie{}System."
msgstr "Guix 提供了一个 GNU 系统发行版,这个发行版只包含自由软件@footnote{这里的“自由”指的是@url{https://www.gnu.org/philosophy/free-sw.html,软件提供给用户的自由}。}。这个发行版可以独立安装(@pxref{System Installation}),但是把 Guix 安装为一个已经安装好的 GNU/Linux 系统的包管理器也是可行的(@pxref{Installation})。当我们需要区分这两者时,我们把独立的发行版称为“Guix 系统”。"

msgid "The distribution provides core GNU packages such as GNU libc, GCC, and Binutils, as well as many GNU and non-GNU applications.  The complete list of available packages can be browsed @url{https://www.gnu.org/software/guix/packages,on-line} or by running @command{guix package} (@pxref{Invoking guix package}):"
msgstr "这个发行版提供了 GNU 核心软件包,如 libc、gcc 和 Binutils,以及很多 GNU 和非 GNU 应用程序。可用的软件包的完整列表可以在@url{https://www.gnu.org/software/guix/packages,on-line}浏览,或者通过运行@command{guix package}(@pxref{Invoking guix package})获得:"

msgid "guix package --list-available\n"
msgstr "guix package --list-available\n"

msgid "Our goal is to provide a practical 100% free software distribution of Linux-based and other variants of GNU, with a focus on the promotion and tight integration of GNU components, and an emphasis on programs and tools that help users exert that freedom."
msgstr "我们的目标是提供一个基于 Linux 和其它 GNU 变体的可用的 100% 自由的软件发行版,我们的重点是推广和紧密集成 GNU 组件,以及强调帮助用户行使那些自由的程序和工具。"

msgid "Packages are currently available on the following platforms:"
msgstr "目前这些平台提供软件包:"

msgid "x86_64-linux"
msgstr "x86_64-linux"

msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
msgstr "Intel/AMD @code{x86_64} 架构,Linux-Libre 内核。"

msgid "i686-linux"
msgstr "i686-linux"

msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
msgstr "Intel 32 位架构(IA32),Linux-Libre 内核。"

msgid "armhf-linux"
msgstr "armhf-linux"

msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
msgstr "ARMv7-A 架构,带硬件浮点数、Thumb-2 和 NEON 扩展,EABI 硬件浮点数应用二进制接口(ABI),和 Linux-Libre 内核。"

msgid "aarch64-linux"
msgstr "aarch64-linux"

msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
msgstr "小端序 64 位 ARMv8-A 处理器,Linux-Libre 内核。"

msgid "i586-gnu"
msgstr "i586-gnu"

msgid "little-endian 64-bit RISC-V processors, specifically RV64GC, and Linux-Libre kernel. This platform is available as a \"technology preview\": although it is supported, substitutes are not yet available from the build farm (@pxref{Substitutes}), and some packages may fail to build (@pxref{Tracking Bugs and Changes}).  That said, the Guix community is actively working on improving this support, and now is a great time to try it and get involved!"
msgstr "小端 64 位 RISC-V 处理器,特别是 RV64GC 和 Linux Libre 内核。该平台可作为“技术预览”使用:尽管支持该平台,但构建场 (@pxref{Substitutes}) 中尚未提供 substitutes,并且某些包可能无法构建 (@pxref{Tracking Bugs and Changes})。这就是说,Guix 社区正在积极完善这种支持,现在是探索和加入它的好时机!"

msgid "With Guix@tie{}System, you @emph{declare} all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (@pxref{System Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual}), the well-known GNU utilities and tool chain, as well as the graphical environment or system services of your choice."
msgstr "在 Guix 系统里,你@emph{声明}操作系统所有方面的配置,然后 Guix 以事务型的,可重复的,和无状态的方式解决实例化配置的问题(@pxref{System Configuration})。Guix系统使用 Linux-Libre 内核,Shepherd 初始化系统@pxref{Introduction,,, shepherd, GNU Shepherd 用户手册},知名的 GNU 工具和工具链,以及你可选的图形界面环境和系统服务。"

msgid "Guix System is available on all the above platforms except @code{mips64el-linux}, @code{powerpc-linux}, @code{powerpc64le-linux} and @code{riscv64-linux}."
msgstr "Guix 系统在上面所有的平台上都可用,但@code{mips64el-linux}, @code{powerpc-linux}, @code{powerpc64le-linux} 和 @code{riscv64-linux}除外。"

msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
msgstr "关于移植到其它架构或内核的信息,@pxref{Porting}。"

msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
msgstr "构建这个发行版需要努力合作,欢迎你加入!关于你可以怎样提供帮助的信息,@xref{Contributing}."

msgid "installing Guix"
msgstr "安装 Guix"

msgid "foreign distro"
msgstr "别的发行版"

msgid "You can install the package management tool Guix on top of an existing GNU/Linux or GNU/Hurd system@footnote{Hurd support is currently limited.}, referred to as a @dfn{foreign distro}.  If, instead, you want to install the complete, standalone GNU system distribution, @dfn{Guix@tie{}System}, @pxref{System Installation}.  This section is concerned only with the installation of Guix on a foreign distro."
msgstr "您可以在现有的 GNU/Linux 或 GNU/Hurd 系统上安装包管理工具 Guix@footnote{Hurd 支持目前有限。},称为@dfn{外部发行版}。如果您想安装完整的独立 GNU 系统发行版@dfn{Guix@tie{}System},请参见@ref{System Installation}。本节仅涉及在外部发行版上安装 Guix。"

msgid "This section only applies to systems without Guix.  Following it for existing Guix installations will overwrite important system files."
msgstr "本节仅适用于没有 Guix 的系统。对现有 Guix 安装执行此操作将覆盖重要的系统文件。"

msgid "directories related to foreign distro"
msgstr "和 foreign distro 相关的文件夹"

msgid "When installed on a foreign distro, GNU@tie{}Guix complements the available tools without interference.  Its data lives exclusively in two directories, usually @file{/gnu/store} and @file{/var/guix}; other files on your system, such as @file{/etc}, are left untouched."
msgstr "在 foreign distro 上安装时,GNU@tie{}Guix 可以在不引起冲突的前提下补充现有的工具。它的数据只存放在两个文件夹里,通常是@file{/gnu/store}和@file{/var/guix};系统上的其它文件,如@file{/etc},不会被修改。"

msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
msgstr "一旦安装好了,可以通过运行@command{guix pull}升级 Guix(@pxref{Invoking guix pull})."

msgid "installing Guix from binaries"
msgstr "用二进制文件安装 Guix"

msgid "installer script"
msgstr "安装脚本"

msgid "We advise system administrators who install Guix, both from the installation script or @i{via} the native package manager of their foreign distribution, to also regularly read and follow security notices, as shown by @command{guix pull}."
msgstr "我们建议安装 Guix 的系统管理员,无论是通过安装脚本还是通过其外部发行版的本地包管理器,定期阅读和遵循安全通知,如@command{guix pull}所示。"

msgid "sudo pacman -S guix\n"
msgstr "sudo pacman -S guix\n"

msgid ""
"# cd /tmp\n"
"# wget https://guix.gnu.org/guix-install.sh\n"
"# chmod +x guix-install.sh\n"
"# ./guix-install.sh\n"
msgstr ""
"# cd /tmp\n"
"# wget https://guix.gnu.org/guix-install.sh\n"
"# chmod +x guix-install.sh\n"
"# ./guix-install.sh\n"

msgid ""
"sudo pacman -S guix-installer\n"
"sudo guix-install.sh\n"
msgstr ""
"sudo pacman -S guix-installer\n"
"sudo guix-install.sh\n"

msgid "substitutes, authorization thereof"
msgstr "substitutes,对其授权"

msgid ""
"# guix archive --authorize < \\\n"
"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n"
"# guix archive --authorize < \\\n"
"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n"
msgstr ""
"# guix archive --authorize < \\\n"
"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n"
"# guix archive --authorize < \\\n"
"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n"

msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
msgstr "二进制安装包可以通过在 Guix 源代码树里运行下面这些命令来重现和验证:"

msgid "make guix-binary.@var{system}.tar.xz\n"
msgstr "make guix-binary.@var{系统}.tar.xz\n"

msgid "...@: which, in turn, runs:"
msgstr "...@: 这个命令会执行:"

msgid ""
"guix pack -s @var{system} --localstatedir \\\n"
"  --profile-name=current-guix guix\n"
msgstr ""
"guix pack -s @var{系统} --localstatedir \\\n"
"  --profile-name=current-guix guix\n"

msgid "@xref{Invoking guix pack}, for more info on this handy tool."
msgstr "@xref{Invoking guix pack},了解这个方便的工具。"

msgid "./guix-install.sh --uninstall\n"
msgstr "./guix-install.sh --uninstall\n"

msgid "daemon"
msgstr "后台进程"

msgid "guix build hello\n"
msgstr "guix build hello\n"

msgid "Operations such as building a package or running the garbage collector are all performed by a specialized process, the build daemon, on behalf of clients.  Only the daemon may access the store and its associated database.  Thus, any operation that manipulates the store goes through the daemon.  For instance, command-line tools such as @command{guix package} and @command{guix build} communicate with the daemon (@i{via} remote procedure calls) to instruct it what to do."
msgstr "构建软件包或运行垃圾回收器之类的操作都是由一个特殊的进程代替客户执行的,即构建后台进程。只有这个进程可以访问仓库和相关的数据库。因此,所有修改仓库的操作都通过这个后台进程执行。例如,@command{guix package}和@command{guix build}之类的命令行工具通过和这个后台进程通信(通过远程过程调用)来指示它该做什么。"

msgid "build environment"
msgstr "构建环境"

msgid "There are currently two ways to set up and run the build daemon:"
msgstr "现在有两种方式设立并运行构建的守护进程:"

msgid "running @command{guix-daemon} as ``root'', letting it run build processes as unprivileged users taken from a pool of build users---this is the historical approach;"
msgstr "作为 root 用户运行@command{guix-daemon},让它指挥一些没有特权的 build 用户来运行负责构建的进程——这是传统方案;"

msgid "running @command{guix-daemon} as a separate unprivileged user, relying on Linux's @dfn{unprivileged user namespace} functionality to set up isolated environments---this is the option chosen when installing Guix on a systemd-based distribution with the installation script (@pxref{Binary Installation})."
msgstr "用一个单独的普通用户运行@command{guix-daemon},靠 Linux 的@dfn{unprivileged user namespace}功能建立隔离环境——这是用安装脚本在基于 systemd 的发行版上安装Guix 时被采用的选项(@pxref{Binary Installation})。"

msgid "The sections below describe each of these two configurations in more detail and summarize the kind of build isolation they provide."
msgstr "下面的小节详细描述了这两个配置并总结了它们提供的构建环境的隔离类别。"

msgid "Daemon Running as Root"
msgstr "用 root 用户运行守护进程"

msgid "build users"
msgstr "构建用户"

msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
msgstr "在一个 GNU/Linux 系统上,可以这样创建一个构建用户池(用 bash 语法和@code{shadow}命令):"

msgid ""
"# groupadd --system guixbuild\n"
"# for i in $(seq -w 1 10);\n"
"  do\n"
"    useradd -g guixbuild -G guixbuild           \\\n"
"            -d /var/empty -s $(which nologin)   \\\n"
"            -c \"Guix build user $i\" --system    \\\n"
"            guixbuilder$i;\n"
"  done\n"
msgstr ""
"# groupadd --system guixbuild\n"
"# for i in $(seq -w 1 10);\n"
"  do\n"
"    useradd -g guixbuild -G guixbuild           \\\n"
"            -d /var/empty -s $(which nologin)   \\\n"
"            -c \"Guix build user $i\" --system    \\\n"
"            guixbuilder$i;\n"
"  done\n"

msgid "The number of build users determines how many build jobs may run in parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and related commands, you may need to add the build users to the @code{kvm} group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
msgstr "构建用户的数量决定了有多少个构建任务可以并行执行,即@option{--max-jobs}参数(@pxref{Invoking guix-daemon, @option{--max-jobs}})。为了使用@command{guix system vm}和相关的命令,你需要把构建用户添加到@code{kvm}用户组,以使它们访问@file{/dev/kvm}。为此,把@code{-G guixbuild}替换成@code{-G guixbuild,kvm}(@pxref{Invoking guix system})."

msgid "# guix-daemon --build-users-group=guixbuild\n"
msgstr "# guix-daemon --build-users-group=guixbuild\n"

msgid "In this setup, @file{/gnu/store} is owned by @code{root}."
msgstr "在这个设定里,@file{/gnu/store}属于@code{root}。"

msgid ""
"# groupadd --system guix-daemon\n"
"# useradd -g guix-daemon -G guix-daemon              \\\n"
"          -d /var/empty -s $(which nologin)          \\\n"
"          -c \"Guix daemon privilege separation user\" \\\n"
"          --system guix-daemon\n"
msgstr ""
"# groupadd --system guix-daemon\n"
"# useradd -g guix-daemon -G guix-daemon              \\\n"
"          -d /var/empty -s $(which nologin)          \\\n"
"          -c \"Guix daemon privilege separation user\" \\\n"
"          --system guix-daemon\n"

msgid ""
"groupadd --system guix-daemon\n"
"useradd -g guix-daemon -G guix-daemon,kvm               \\\n"
"        -d /var/empty -s $(which nologin)               \\\n"
"        -c \"Guix daemon privilege separation user\"      \\\n"
"        --system guix-daemon\n"
"\n"
msgstr ""
"groupadd --system guix-daemon\n"
"useradd -g guix-daemon -G guix-daemon,kvm               \\\n"
"        -d /var/empty -s $(which nologin)               \\\n"
"        -c \"Guix daemon privilege separation user\"      \\\n"
"        --system guix-daemon\n"
"\n"

msgid ""
"# Make the store writable, in case the systemd 'gnu-store.mount'\n"
"# unit made it read-only.\n"
"mount -o remount,rw /gnu/store\n"
"\n"
msgstr ""
"# 若 systemd 的 “gnu-store.mount” 单元将存储区设为只读,则重新挂载为可写。\n"
"mount -o remount,rw /gnu/store\n"
"\n"

msgid ""
"chown -R guix-daemon:guix-daemon                        \\\n"
"  /gnu                                                  \\\n"
"  /var/guix/@{gc.lock,daemon-socket,db,discover@}         \\\n"
"  /var/guix/@{gcroots,offload,substitute,temproots@}      \\\n"
"  /var/log/guix                                         \\\n"
"  /etc/guix\n"
msgstr ""
"chown -R guix-daemon:guix-daemon                        \\\n"
"  /gnu                                                  \\\n"
"  /var/guix/@{gc.lock,daemon-socket,db,discover@}         \\\n"
"  /var/guix/@{gcroots,offload,substitute,temproots@}      \\\n"
"  /var/log/guix                                         \\\n"
"  /etc/guix\n"

msgid ""
"cp /var/guix/profiles/per-user/root/current-guix/lib/systemd/system/*.service \\\n"
"   /etc/systemd/system\n"
"systemctl daemon-reload\n"
"systemctl start guix-daemon\n"
msgstr ""
"cp /var/guix/profiles/per-user/root/current-guix/lib/systemd/system/*.service \\\n"
"   /etc/systemd/system\n"
"systemctl daemon-reload\n"
"systemctl start guix-daemon\n"

msgid ""
"grep User=guix-daemon \\\n"
"  /var/guix/profiles/per-user/root/current-guix/lib/systemd/system/guix-daemon.service\n"
msgstr ""
"grep User=guix-daemon \\\n"
"  /var/guix/profiles/per-user/root/current-guix/lib/systemd/system/guix-daemon.service\n"

msgid "chroot"
msgstr "chroot"

msgid "a minimal @code{/dev} directory, created mostly independently from the host @code{/dev}@footnote{``Mostly'', because while the set of files that appear in the chroot's @code{/dev} is fixed, most of these files can only be created if the host has them.};"
msgstr "一个和主机@code{/dev}独立的@footnote{大致这样,因为虽然 chroot 环境里的@code{/dev}包含的文件是固定的,大部分这些文件只有在主机有对应的文件时才能创建。},最小的@code{/dev}文件夹;"

msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
msgstr "@code{/proc}文件夹;它只含有当前容器的进程,因为用了一个独立的进程 PID 命名空间;"

msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
msgstr "@file{/etc/passwd},仅包含当前用户和@file{nobody};"

msgid "@file{/etc/group} with an entry for the user's group;"
msgstr "@file{/etc/group},包含用户的组;"

msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
msgstr "@file{/etc/hosts},包含@code{localhost}映射到@code{127.0.0.1}的条目;"

msgid "a writable @file{/tmp} directory."
msgstr "一个可写的@file{/tmp}文件夹。"

msgid "http_proxy"
msgstr "http_proxy"

msgid "Using the Offload Facility"
msgstr "使用任务下发设施"

msgid "offloading"
msgstr "下发"

msgid "build hook"
msgstr "构建钩子"

msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
msgstr "@file{/etc/guix/machines.scm}文件通常是这样的:"

msgid ""
"      (build-machine\n"
"        (name \"armeight.example.org\")\n"
"        (systems (list \"aarch64-linux\"))\n"
"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
"        (user \"alice\")\n"
"\n"
msgstr ""
"      (build-machine\n"
"        (name \"armeight.example.org\")\n"
"        (systems (list \"aarch64-linux\"))\n"
"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
"        (user \"alice\")\n"
"\n"

msgid "In fact, this file is---not surprisingly!---a Scheme file that is evaluated when the @code{offload} hook is started.  Its return value must be a list of @code{build-machine} objects.  While this example shows a fixed list of build machines, one could imagine, say, using DNS-SD to return a list of potential build machines discovered in the local network (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}).  The @code{build-machine} data type is detailed below."
msgstr "事实上,这个文件--并不意外地--是一个 Scheme 文件,当@code{下发}钩子被启动时执行。它的返回值必须是一个包含@code{build-machine}对象的列表。虽然这个例子展示的是一个固定的列表,你可以想象,使用 DNS-SD 来返回一个包含从局域网内发现的构建机器的列表,@pxref{Introduction, Guile-Avahi,, guile-avahi, 在 Guile Scheme 程序里使用 Avahi}。@code{build-machine}数据类型的详细信息如下。"

msgid "{Data Type} build-machine"
msgstr "{数据类型} build-machine"

msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
msgstr "这个数据类型表示后台进程可以下发构建任务的构建机器。重要的项有:"

msgid "name"
msgstr "name"

msgid "The host name of the remote machine."
msgstr "远程机器的主机名。"

msgid "systems"
msgstr "systems"

msgid "user"
msgstr "user"

msgid "host-key"
msgstr "host-key"

msgid "This must be the machine's SSH @dfn{public host key} in OpenSSH format.  This is used to authenticate the machine when we connect to it.  It is a long string that looks like this:"
msgstr "这必须是机器的 OpenSSH 格式的 SSH@dfn{公钥}。这是用来在连接机器时认证身份的。它是一个像这样的长字符串:"

msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"

msgid "If the machine is running the OpenSSH daemon, @command{sshd}, the host key can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
msgstr "如果这个机器正在运行 OpenSSH 后台进程,@command{sshd},那么主机公钥可以在@file{/etc/ssh/ssh_host_ed25519_key.pub}找到。"

msgid "A number of optional fields may be specified:"
msgstr "一些可选的项:"

msgid "@code{port} (default: @code{22})"
msgstr "@code{port}(默认值:@code{22})"

msgid "Port number of SSH server on the machine."
msgstr "机器上的 SSH 服务器的端口号。"

msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
msgstr "@code{private-key}(默认值:@file{~root/.ssh/id_rsa})"

msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format.  This key must not be protected with a passphrase."
msgstr "连接机器时使用的 SSH 私钥,OpenSSH 格式。这个私钥不能被密码保护。"

msgid "Note that the default value is the private key @emph{of the root account}.  Make sure it exists if you use the default."
msgstr "注意,默认值是@emph{root 帐号}的私钥。使用默认值时请确保它存在。"

msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
msgstr "@code{compression}(默认值:@code{\"zlib@@openssh.com,zlib\"})"

msgid "@code{compression-level} (default: @code{3})"
msgstr "@code{compression-level}(默认值:@code{3})"

msgid "The SSH-level compression methods and compression level requested."
msgstr "SSH 压缩算法和压缩级别。"

msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
msgstr "下发任务依赖 SSH 压缩来减少传输文件到构建机器时使用的带宽。"

msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
msgstr "@code{daemon-socket}(默认值:@code{\"/var/guix/daemon-socket/socket\"})"

msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
msgstr "那台机器上的@command{guix-daemon}监听的 Unix 套接字文件名。"

msgid "@code{parallel-builds} (default: @code{1})"
msgstr "@code{parallel-builds}(默认值:@code{1})"

msgid "The number of builds that may run in parallel on the machine."
msgstr "那台机器上可以并行运行的构建任务数量。"

msgid "@code{speed} (default: @code{1.0})"
msgstr "@code{speed}(默认值:@code{1.0})"

msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
msgstr "一个相对的速度值。下发调度器会偏好速度更快的机器。"

msgid "@code{features} (default: @code{'()})"
msgstr "@code{features} (@code{'()})"

msgid "A list of strings denoting specific features supported by the machine.  An example is @code{\"kvm\"} for machines that have the KVM Linux modules and corresponding hardware support.  Derivations can request features by name, and they will be scheduled on matching build machines."
msgstr "一个表示机器支持的功能的字符串列表。例如,@code{\"kvm\"}表示机器有 KVM Linux 模块和相关的硬件支持。Derivation 可以通过名字请求需要的功能,然后被分发到匹配的机器的任务队列里。"

msgid "The @command{guix} command must be in the search path on the build machines.  You can check whether this is the case by running:"
msgstr "@command{guix}命令必须在构建机器的搜素路径里。你可以通过这个命令检查:"

msgid "ssh build-machine guix repl --version\n"
msgstr "ssh build-machine guix repl --version\n"

msgid "There is one last thing to do once @file{machines.scm} is in place.  As explained above, when offloading, files are transferred back and forth between the machine stores.  For this to work, you first need to generate a key pair on each machine to allow the daemon to export signed archives of files from the store (@pxref{Invoking guix archive}):"
msgstr "@file{machines.scm}到位后,还有一件要做的事。如上所述,下发任务时会在机器的仓库之间传输文件。为此,你需要在每台机器上生成一个密钥对,以使后台进程可以从仓库导出签名后的文件包(@pxref{Invoking guix archive}):"

msgid "# guix archive --generate-key\n"
msgstr "# guix archive --generate-key\n"

msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
msgstr "每台构建机器都必须认证主机器的公钥,从而接收从主机器接收的仓库文件:"

msgid "# guix archive --authorize < master-public-key.txt\n"
msgstr "# guix archive --authorize < master-public-key.txt\n"

msgid "Likewise, the master machine must authorize the key of each build machine."
msgstr "类似的,主机器必须认证每台构建机器的公钥:"

msgid "All the fuss with keys is here to express pairwise mutual trust relations between the master and the build machines.  Concretely, when the master receives files from a build machine (and @i{vice versa}), its build daemon can make sure they are genuine, have not been tampered with, and that they are signed by an authorized key."
msgstr "所有这些有关公钥的繁琐事宜都是为了表达主服务器和构建服务器之间成对的互相信任关系。具体地,当主机器从构建机器接收文件时(反之亦然),它的构建后台进程可以确保文件是原样的,没有被篡改,并且被认证的公钥签名过。"

msgid "offload test"
msgstr "下发测试"

msgid "To test whether your setup is operational, run this command on the master node:"
msgstr "为了测试你的设置是否能正常工作,在主节点上运行这个命令:"

msgid "# guix offload test\n"
msgstr "# guix offload test\n"

msgid "If you want to test a different machine file, just specify it on the command line:"
msgstr "如果你希望用别的文件测试,只需要在命令行指定它:"

msgid "# guix offload test machines-qualif.scm\n"
msgstr "# guix offload test machines-qualif.scm\n"

msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
msgstr "最后,你可以像这样只测试机器列表里名字匹配某个正则表达式的子集:"

msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
msgstr "# guix offload test machines.scm '\\.gnu\\.org$'\n"

msgid "offload status"
msgstr "下发状态"

msgid "To display the current load of all build hosts, run this command on the main node:"
msgstr "若想展示所有构建主机的当前负载,在主节点上运行这个命令:"

msgid "# guix offload status\n"
msgstr "# guix offload status\n"

msgid "SELinux, daemon policy"
msgstr "SELinux,后台进程策略"

msgid "mandatory access control, SELinux"
msgstr "强制访问控制,SELinux"

msgid "security, guix-daemon"
msgstr "安全,guix-daemon"

msgid "Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can be installed on a system where SELinux is enabled, in order to label Guix files and to specify the expected behavior of the daemon.  Since Guix System does not provide an SELinux base policy, the daemon policy cannot be used on Guix System."
msgstr "Guix 附带一个 SELinux 策略文件,位置在@file{etc/guix-daemon.cil},它可以在启用SELinux 的系统上安装,为 Guix 的文件添加标签及指定后台进程的期望行为。由于 Guix 系统不提供 SELinux 基础策略,这个后台进程策略不能在 Guix 系统上使用。"

msgid "Installing the SELinux policy"
msgstr "安装 SELinux 策略"

msgid "SELinux, policy installation"
msgstr "SELinux,安装策略"

msgid "To install the policy run this command as root:"
msgstr "用 root 用户执行这个命令以安装策略:"

msgid "semodule -i /var/guix/profiles/per-user/root/current-guix/share/selinux/guix-daemon.cil\n"
msgstr "semodule -i /var/guix/profiles/per-user/root/current-guix/share/selinux/guix-daemon.cil\n"

msgid ""
"mount -o remount,rw /gnu/store\n"
"restorecon -R /gnu /var/guix\n"
msgstr ""
"mount -o remount,rw /gnu/store\n"
"restorecon -R /gnu /var/guix\n"

msgid "systemctl restart guix-daemon\n"
msgstr "systemctl restart guix-daemon\n"

msgid "Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @code{guix_daemon_t} context.  You can confirm this with the following command:"
msgstr "一旦安装好策略,为文件系统重新打好标签,并且重启了后台进程,它应该在@code{guix_daemon_t}环境里运行。你可以用下面这个命令确认:"

msgid "ps -Zax | grep guix-daemon\n"
msgstr "ps -Zax | grep guix-daemon\n"

msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
msgstr "运行@code{guix build hello}之类的命令并监控 SELinux 日志以说服你自己 SELinux 允许所有的操作。"

msgid "SELinux, limitations"
msgstr "SELinux,限制"

msgid "This policy is not perfect.  Here is a list of limitations or quirks that should be considered when deploying the provided SELinux policy for the Guix daemon."
msgstr "这个策略不是完美的。这里有一个关于限制和缺陷的列表,当为 Guix 后台进程部署提供的 SELinux 策略时该认真考虑。"

msgid "The daemon’s feature to listen for TCP connections might no longer work.  This might require extra rules, because SELinux treats network sockets differently from files."
msgstr "后台进程监听 TCP 连接的功能不再可用。这可能需要额外的规则,因为 SELinux 区别对待网络套接字和文件。"

msgid "Currently all files with a name matching the regular expression @code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label @code{guix_daemon_exec_t}; this means that @emph{any} file with that name in any profile would be permitted to run in the @code{guix_daemon_t} domain.  This is not ideal.  An attacker could build a package that provides this executable and convince a user to install and run it, which lifts it into the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain."
msgstr "目前,所有匹配正则表达式@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon}的文件都被赋予@code{guix_daemon_exec_t}标签;这意味着@emph{任何}profile 里的任何有这样名字的的文件都会被允许在@code{guix_daemon_t}域里执行。这不够理想。一个攻击者可以构建提供这个可执行程序的软件包,并说服一个用户安装、运行它,以此进入@code{guix_daemon_t}域。那时,SELinux 无法阻止它访问所在域的进程可以访问的文件。"

msgid "We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead of using a broad regular expression.  The downside is that root would have to install or upgrade the policy at installation time whenever the Guix package that provides the effectively running @code{guix-daemon} executable is upgraded."
msgstr "我们可以在安装时生成一个更严格的策略,仅当前安装的@code{guix-daemon}的@emph{精确的}的文件名会被打上@code{guix_daemon_exec_t}标签,而不是用一个宽泛的正则表达式。这样的缺点是 root 必须在每次安装提供@code{guix-daemon}的 Guix 软件包时安装或升级策略。"

msgid "Invoking @command{guix-daemon}"
msgstr "调用 @command{guix-daemon}"

msgid "guix-daemon"
msgstr "guix-daemon"

msgid "The @command{guix-daemon} program implements all the functionality to access the store.  This includes launching build processes, running the garbage collector, querying the availability of a build result, etc.  It is normally run as @code{root} like this:"
msgstr "@command{guix-daemon}程序实现了所有访问仓库的功能。包括启动构建进程,运行垃圾回收器,查询构建结果,等。它通常以@code{root}身份运行:"

msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
msgstr "关于如何设置它,@pxref{Setting Up the Daemon}。"

msgid "container, build environment"
msgstr "容器,构建环境"

msgid "reproducible builds"
msgstr "可复现的构建"

msgid "The following command-line options are supported:"
msgstr "下面这些命令行选项受支持:"

msgid "--build-users-group=@var{group}"
msgstr "--build-users-group=@var{用户组}"

msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
msgstr "这会从@var{用户组}里选取用户,以运行构建进程(@pxref{Setting Up the Daemon, 构建用户})。"

msgid "--no-substitutes"
msgstr "--no-substitutes"

msgid "substitutes"
msgstr "substitutes"

msgid "Do not use substitutes for build products.  That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
msgstr "不要为构建商品使用 substitute。即,总是在本地构建,而不是下载预构建的二进制文件(@pxref{Substitutes})。"

msgid "When the daemon runs with @option{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
msgstr "当后台进程用@code{--no-substitutes}参数启动时,客户端仍然可以显式地通过@code{set-build-options}远程过程调用来启用 substitute(@pxref{The Store})。"

msgid "daemon-substitute-urls"
msgstr "daemon-substitute-urls"

msgid "--substitute-urls=@var{urls}"
msgstr "--substitute-urls=@var{urls}"

msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
msgstr "这意味着可以从@var{urls}下载 substitute,只要它们的签名可信(@pxref{Substitutes})."

msgid "--cache-failures"
msgstr "--cache-failures"

msgid "Cache build failures.  By default, only successful builds are cached."
msgstr "缓存失败的构建。默认地,只缓存成功的构建。"

msgid "When this option is used, @command{guix gc --list-failures} can be used to query the set of store items marked as failed; @command{guix gc --clear-failures} removes store items from the set of cached failures.  @xref{Invoking guix gc}."
msgstr "当这个选项被使用时,可以用@command{guix gc --list-failures}查询被标记为失败的仓库文件;@command{guix gc --clear-failures}从仓库里删除失败的缓存。@xref{Invoking guix gc}."

msgid "--cores=@var{n}"
msgstr "--cores=@var{n}"

msgid "-c @var{n}"
msgstr "-c @var{n}"

msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
msgstr "用@var{n}个 CPU 核来构建每个 derivation;@code{0}表示有多少就用多少。"

msgid "--max-jobs=@var{n}"
msgstr "--max-jobs=@var{n}"

msgid "-M @var{n}"
msgstr "-M @var{n}"

msgid "Allow at most @var{n} build jobs in parallel.  The default value is @code{1}.  Setting it to @code{0} means that no builds will be performed locally; instead, the daemon will offload builds (@pxref{Daemon Offload Setup}), or simply fail."
msgstr "最多允许@var{n}个并行的构建任务。默认值是@code{1}。设置为@code{0}表示不在本地执行构建;而是下发构建任务(@pxref{Daemon Offload Setup}),或者直接失败。"

msgid "--max-silent-time=@var{seconds}"
msgstr "--max-silent-time=@var{seconds}"

msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
msgstr "当构建或 substitution 进程超过@var{seconds}秒仍然保持静默,就把它结束掉并报告构建失败。"

msgid "--timeout=@var{seconds}"
msgstr "--timeout=@var{seconds}"

msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
msgstr "类似地,当构建或 substitution 进程执行超过@var{seconds}秒,就把它结束掉并报告构建失败。"

msgid "--rounds=@var{N}"
msgstr "--rounds=@var{N}"

msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical.  Note that this setting can be overridden by clients such as @command{guix build} (@pxref{Invoking guix build})."
msgstr "为每个 derivation 构建@var{n}次,如果连续的构建结果不是每个比特都相同就报告错误。这个设置可以被@command{guix build}之类的客户端覆盖(@pxref{Invoking guix build})."

msgid "When used in conjunction with @option{--keep-failed}, the differing output is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it easy to look for differences between the two results."
msgstr "当和@option{--keep-failed}一起使用时,不同的输出保存在@file{/gnu/store/@dots{}-check}。这让检查两个结果的区别更容易。"

msgid "--debug"
msgstr "--debug"

msgid "Produce debugging output."
msgstr "生成调试输出。"

msgid "--chroot-directory=@var{dir}"
msgstr "--chroot-directory=@var{dir}"

msgid "Add @var{dir} to the build chroot."
msgstr "把@var{dir}添加到构建的 chroot。"

msgid "Doing this may change the result of build processes---for instance if they use optional dependencies found in @var{dir} when it is available, and not otherwise.  For that reason, it is not recommended to do so.  Instead, make sure that each derivation declares all the inputs that it needs."
msgstr "这么做可能会改变构建进程的结果--例如,如果它们使用了在@var{dir}里发现的可选依赖。因此,建议不要这么做,而是确保每个 derivation 声明所需的全部输入。"

msgid "--disable-chroot"
msgstr "--disable-chroot"

msgid "Disable chroot builds."
msgstr "关闭 chroot 构建。"

msgid "--log-compression=@var{type}"
msgstr "--log-compression=@var{type}"

msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
msgstr "以@var{type}方式压缩构建日志,可选的值:@code{gzip},@code{bzip2},@code{none}."

msgid ""
"herd discover guix-daemon on\n"
"herd discover guix-daemon off\n"
msgstr ""
"herd discover guix-daemon on\n"
"herd discover guix-daemon off\n"

msgid "--disable-deduplication"
msgstr "--disable-deduplication"

msgid "deduplication"
msgstr "去重"

msgid "Disable automatic file ``deduplication'' in the store."
msgstr "关闭自动对仓库文件“去重”。"

msgid "By default, files added to the store are automatically ``deduplicated'': if a newly added file is identical to another one found in the store, the daemon makes the new file a hard link to the other file.  This can noticeably reduce disk usage, at the expense of slightly increased input/output load at the end of a build process.  This option disables this optimization."
msgstr "默认地,添加到仓库的文件会被自动“去重”:如果新添加的文件和仓库里找到的某个文件完全相同,后台进程把这个新文件变成另一个文件的硬链接。这可以明显地减少硬盘使用,代价是构建结束后轻微地增加输入/输出负载。这个选项关闭这个优化。"

msgid "--gc-keep-outputs[=yes|no]"
msgstr "--gc-keep-outputs[=yes|no]"

msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
msgstr "垃圾收集器(GC)是否必须保留存活的 derivation 的输出。"

msgid "GC roots"
msgstr "GC 根"

msgid "garbage collector roots"
msgstr "垃圾收集的根"

msgid "--gc-keep-derivations[=yes|no]"
msgstr "--gc-keep-derivations[=yes|no]"

msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
msgstr "垃圾收集器(GC)是否必须保留和存活的输出相关的 derivation。"

msgid "--impersonate-linux-2.6"
msgstr "--impersonate-linux-2.6"

msgid "On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's @command{uname} system call will report 2.6 as the release number."
msgstr "在基于 Linux 的系统上,伪装成 Linux 2.6。这意味着内核的@code{uname}系统调用会把版本号报告为 2.6。"

msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
msgstr "这可能会有助于构建那些(通常是错误地)依赖内核版本号的程序。"

msgid "--lose-logs"
msgstr "--lose-logs"

msgid "--system=@var{system}"
msgstr "--system=@var{system}"

msgid "Assume @var{system} as the current system type.  By default it is the architecture/kernel pair found at configure time, such as @code{x86_64-linux}."
msgstr "假设@var{system}是当前的系统类型。默认值是 configure 时发现的架构/内核元组,如@code{x86_64-linux}."

msgid "--listen=@var{endpoint}"
msgstr "--listen=@var{endpoint}"

msgid ""
"$ guix install glibc-locales\n"
"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
msgstr ""
"$ guix install glibc-locales\n"
"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"

msgid ""
"(use-modules (gnu packages base))\n"
"\n"
msgstr ""
"(use-modules (gnu packages base))\n"
"\n"

msgid "X11 Fonts"
msgstr "X11 字体"

msgid ""
"guix install fontconfig\n"
"fc-cache -rv\n"
msgstr ""
"guix install fontconfig\n"
"fc-cache -rv\n"

msgid "guix install font-adobe-source-han-sans:cn\n"
msgstr "guix install font-adobe-source-han-sans:cn\n"

msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
msgstr "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"

msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
msgstr "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"

msgid "guix pull\n"
msgstr "guix pull\n"

msgid "sudo -i guix pull\n"
msgstr "sudo -i guix pull\n"

msgid "systemctl restart guix-daemon.service\n"
msgstr "systemctl restart guix-daemon.service\n"

msgid "This section explains how to install Guix System on a machine.  Guix, as a package manager, can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
msgstr "本节介绍如何在机器上安装 Guix 系统。作为软件包管理器,Guix 也可以安装在运行中的 GNU/Linux 系统之上,@pxref{Installation}。"

msgid "We consider Guix System to be ready for a wide range of ``desktop'' and server use cases.  The reliability guarantees it provides---transactional upgrades and rollbacks, reproducibility---make it a solid foundation."
msgstr "我们认为,Guix 系统已为各种“桌面”和服务器用例做好了准备。它提供的可靠性保证——事务性升级和回滚、可重现性——使其成为一个坚实的基础。"

msgid "More and more system services are provided (@pxref{Services})."
msgstr "越来越多的系统服务被提供(@pxref{Services})。"

msgid "Nevertheless, before you proceed with the installation, be aware that some services you rely on may still be missing from version @value{VERSION}."
msgstr "不过,在继续安装之前,请注意 @value{VERSION} 版本中可能仍然缺少您所依赖的某些服务。"

msgid "More than a disclaimer, this is an invitation to report issues (and success stories!), and to join us in improving it.  @xref{Contributing}, for more info."
msgstr "这不仅是一个免责声明,也是一个报告问题(和成功故事!)的邀请,并与我们一起改进它。请参见 @xref{Contributing} 以获取更多信息。"

msgid "hardware support on Guix System"
msgstr "Guix 系统上的硬件支持"

msgid "GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds around the kernel Linux-libre, which means that only hardware for which free software drivers and firmware exist is supported.  Nowadays, a wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to graphics cards to scanners and Ethernet controllers.  Unfortunately, there are still areas where hardware vendors deny users control over their own computing, and such hardware is not supported on Guix System."
msgstr "GNU@tie{}Guix 注重尊重用户的计算自由。它围绕内核 Linux-libre 构建,这意味着只支持自由软件驱动程序和固件的硬件。如今,GNU/Linux-libre 支持各种现成的硬件――从键盘到显卡,再到扫描仪和以太网控制器。遗憾的是,仍有一些领域的硬件供应商拒绝让用户控制自己的计算机,Guix 系统不支持此类硬件。"

msgid "WiFi, hardware support"
msgstr "WiFi,硬件支持"

msgid "One of the main areas where free drivers or firmware are lacking is WiFi devices.  WiFi devices known to work include those using Atheros chips (AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  Free firmware exists for both and is available out-of-the-box on Guix System, as part of @code{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
msgstr "自由驱动程序或固件缺乏的主要领域之一是 WiFi 设备。已知可用的 WiFi 设备包括使用 Atheros 芯片(AR9271 和 AR7010)的设备,这对应于 @code{ath9k} Linux-libre 驱动程序;以及使用 Broadcom/AirForce 芯片(BCM43xx 和 Wireless-Core Revision 5)的设备,这对应于 @code{b43-open} Linux-libre 驱动程序。两者都有自由固件,并作为 @code{%base-firmware} 的一部分在 Guix 系统上开箱即用(@pxref{operating-system Reference, @code{firmware}})."

msgid "The installer warns you early on if it detects devices that are known @emph{not} to work due to the lack of free firmware or free drivers."
msgstr "如果安装程序检测到已知因缺乏自由固件或自由驱动程序而@emph{无法}正常工作的设备,它会提前向您发出警告。"

msgid "RYF, Respects Your Freedom"
msgstr "RYF,尊重您的自由"

msgid "The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program for hardware products that respect your freedom and your privacy and ensure that you have control over your device.  We encourage you to check the list of RYF-certified devices."
msgstr "@uref{https://www.fsf.org/, 自由软件基金会} 运行 @uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}}(RYF,尊重您的自由),这是一项硬件产品认证计划,旨在尊重您的自由和隐私,确保您能控制自己的设备。我们鼓励您查看 RYF 认证设备的列表。"

msgid "Another useful resource is the @uref{https://www.h-node.org/, H-Node} web site.  It contains a catalog of hardware devices with information about their support in GNU/Linux."
msgstr "另一个有用的资源是 @uref{https://www.h-node.org/, H-Node} 网站。它包含了硬件设备的目录,并提供了关于它们在 GNU/Linux 中支持的信息。"

msgid "An ISO-9660 installation image that can be written to a USB stick or burnt to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso}, where you can replace @code{x86_64-linux} with one of:"
msgstr "可以从 @indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso} 下载一个可以写入 USB 闪存驱动器或刻录到 DVD 的 ISO-9660 安装映像,您可以将 @code{x86_64-linux} 替换为以下之一:"

msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
msgstr "用于在 Intel/AMD 兼容的 64 位 CPU 上运行的 GNU/Linux 系统;"

msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
msgstr "用于在 Intel 兼容 CPU 上运行的 32 位 GNU/Linux 系统。"

msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
msgstr "确保下载相关的 @file{.sig} 文件,并根据它验证映像的真实性,步骤如下:"

msgid ""
"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n"
"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n"
msgstr ""
"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n"
"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.sig\n"

msgid "If that command fails because you do not have the required public key, then run this command to import it:"
msgstr "如果那个命令因为缺少所需的公钥而失败了,那么用这个命令导入它:"

msgid ""
"$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
"      -qO - | gpg --import -\n"
msgstr ""
"$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
"      -qO - | gpg --import -\n"

msgid "and rerun the @code{gpg --verify} command."
msgstr "再次运行 @code{gpg --verify} 命令。"

msgid "This image contains the tools necessary for an installation.  It is meant to be copied @emph{as is} to a large-enough USB stick or DVD."
msgstr "此映像包含安装所需的工具。它可以@emph{原样}复制到足够大的 U 盘或 DVD 上。"

msgid "Copying to a USB Stick"
msgstr "复制到 USB 闪存驱动器"

msgid "Insert a USB stick of 1@tie{}GiB or more into your machine, and determine its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, copy the image with:"
msgstr "将一个 1@tie{}GiB 或更大的 USB 闪存驱动器插入您的机器,并确定其设备名称。假设 USB 闪存驱动器被称为 @file{/dev/sdX},可以使用以下命令复制映像:"

msgid ""
"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
"sync\n"
msgstr ""
"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
"sync\n"

msgid "Access to @file{/dev/sdX} usually requires root privileges."
msgstr "访问 @file{/dev/sdX} 通常需要 root 权限。"

msgid "Burning on a DVD"
msgstr "刻录到 DVD"

msgid "Insert a blank DVD into your machine, and determine its device name.  Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
msgstr "将一张空白 DVD 插入您的机器,并确定其设备名称。假设 DVD 驱动器被称为 @file{/dev/srX},可以使用以下命令复制映像:"

msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
msgstr "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"

msgid "Access to @file{/dev/srX} usually requires root privileges."
msgstr "访问 @file{/dev/srX} 通常需要 root 权限。"

msgid "Booting"
msgstr "启动"

msgid "Once this is done, you should be able to reboot the system and boot from the USB stick or DVD@.  The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick.  In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}."
msgstr "完成后,您应该能够重启系统并从 USB 闪存驱动器或 DVD 启动。后者通常需要您进入 BIOS 或 UEFI 启动菜单,在那里您可以选择从 USB 闪存驱动器启动。为了从 Libreboot 启动,请按 @kbd{c} 键切换到命令模式,并输入 @command{search_grub usb}."

msgid "Sadly, on some machines, the installation medium cannot be properly booted and you only see a black screen after booting even after you waited for ten minutes.  This may indicate that your machine cannot run Guix System; perhaps you instead want to install Guix on a foreign distro (@pxref{Binary Installation}).  But don't give up just yet; a possible workaround is pressing the @kbd{e} key in the GRUB boot menu and appending @option{nomodeset} to the Linux bootline.  Sometimes the black screen issue can also be resolved by connecting a different display."
msgstr "遗憾的是,在某些机器上,安装介质无法正确启动,您在启动后只看到黑屏,即使您等待了十分钟。这可能表明您的机器无法运行 Guix 系统;也许您想在其他发行版上安装 Guix (@pxref{Binary Installation})。但不要放弃;一个可能的解决方法是在 GRUB 启动菜单中按 @kbd{e} 键,并将 @option{nomodeset} 附加到 Linux 启动行。有时,黑屏问题也可以通过连接不同的显示器来解决。"

msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
msgstr "@xref{Installing Guix in a VM},如果您希望在虚拟机中安装 Guix 系统。"

msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}).  Alternatively, if you are already familiar with GNU/Linux and if you want more control than what the graphical installer provides, you can choose the ``manual'' installation process (@pxref{Manual Installation})."
msgstr "一旦您启动后,可以使用向导式图形安装程序,这使入门变得简单 (@pxref{Guided Graphical Installation})。另外,如果您已经熟悉 GNU/Linux,并且希望获得比图形安装程序更多的控制功能,也可以选择``手动''安装程序(@pxref{Manual Installation})."

msgid "The graphical installer is available on TTY1.  You can obtain root shells on TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  Documentation is browsable using the Info reader commands (@pxref{Top,,, info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM mouse daemon, which allows you to select text with the left mouse button and to paste it with the middle button."
msgstr "图形安装程序在 TTY1 上可用。您可以通过按 @kbd{ctrl-alt-f3}、@kbd{ctrl-alt-f4} 等在 TTY3 到 TTY6 上获取 root shell。TTY2 显示此文档,您可以通过 @kbd{ctrl-alt-f2} 访问它。文档可以使用 Info 阅读器命令浏览 (@pxref{Top,,, info-stnd, 独立的 GNU Info})。安装系统运行 GPM 鼠标守护进程,允许您使用左键选择文本,并使用中键粘贴。"

msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded.  See the ``Networking'' section below."
msgstr "安装需要访问互联网,以便下载系统配置中缺失的任何依赖项。请参见下面的``网络''部分。"

msgid "The graphical installer is a text-based user interface.  It will guide you, with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
msgstr "图形安装程序是基于文本的用户界面。它将通过对话框引导您完成安装 GNU@tie{}Guix 系统所需的步骤。"

msgid "The first dialog boxes allow you to set up the system as you use it during the installation: you can choose the language, keyboard layout, and set up networking, which will be used during the installation.  The image below shows the networking dialog."
msgstr "第一个对话框允许您在安装过程中设置系统:您可以选择语言、键盘布局,并设置网络,这将在安装过程中使用。下面的图像显示了网络对话框。"

msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
msgstr "@image{images/installer-network,5in,, 使用图形安装程序进行网络设置}"

msgid "Later steps allow you to partition your hard disk, as shown in the image below, to choose whether or not to use encrypted file systems, to enter the host name and root password, and to create an additional account, among other things."
msgstr "后续步骤允许您对硬盘进行分区,如下图所示,选择是否使用加密文件系统,输入主机名和 root 密码,以及创建其他帐户等。"

msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
msgstr "@image{images/installer-partitions,5in,, 使用图形安装程序进行分区}"

msgid "Note that, at any time, the installer allows you to exit the current installation step and resume at a previous step, as show in the image below."
msgstr "请注意,在任何时候,安装程序都允许您退出当前安装步骤并从先前步骤恢复,如下图所示。"

msgid "@image{images/installer-resume,5in,, resuming the installation process}"
msgstr "@image{images/installer-resume,5in,, 恢复安装过程}"

msgid "Once you're done, the installer produces an operating system configuration and displays it (@pxref{Using the Configuration System}).  At that point you can hit ``OK'' and installation will proceed.  On success, you can reboot into the new system and enjoy.  @xref{After System Installation}, for what's next!"
msgstr "完成后,安装程序会生成操作系统配置并显示出来(@pxref{Using the Configuration System})。此时,您可以点击``确定'',安装将继续。成功后,您可以重启进入新系统并享受。有关接下来的内容,请参见@ref{After System Installation}!"

msgid "This section describes how you would ``manually'' install GNU@tie{}Guix System on your machine.  This option requires familiarity with GNU/Linux, with the shell, and with common administration tools.  If you think this is not for you, consider using the guided graphical installer (@pxref{Guided Graphical Installation})."
msgstr "这个小节描述了如何在你的电脑上``手动地''安装 GNU@tie{}Guix System。这样做需要你熟悉 GNU/Linux,终端以及常用管理工具。若你对此不自信,建议使用向导式图形安装(@pxref{Guided Graphical Installation})。"

msgid "The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many common tools needed to install the system, but is also a full-blown Guix System.  This means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
msgstr "安装中系统提供 TTY 3 到 6 的 root shell;按@kbd{ctrl-alt-f3}、@kbd{ctrl-alt-f4}即可打开。很多常见的工具都在这个系统内,同时它也是一个完整的 Guix System。这意味着如果需要,使用@command{guix package} (@pxref{Invoking guix package}),你可以下载额外的包。"

msgid "Keyboard Layout, Networking, and Partitioning"
msgstr "键盘布局、网络与分区"

msgid "Before you can install the system, you may want to adjust the keyboard layout, set up networking, and partition your target hard disk.  This section will guide you through this."
msgstr "在您可以安装系统之前,您可能需要调整键盘布局、设置网络和分区目标硬盘。本节将指导您完成这些步骤。"

msgid "keyboard layout"
msgstr "键盘布局"

msgid "The installation image uses the US qwerty keyboard layout.  If you want to change it, you can use the @command{loadkeys} command.  For example, the following command selects the Dvorak keyboard layout:"
msgstr "安装镜像使用的是美式 qwerty 键盘布局,对于中国用户一般无须更改,如果想更改,可以使用 @command{loadkeys} 命令。例如,用以下命令选择 Dvorak 键盘布局:"

msgid "loadkeys dvorak\n"
msgstr "loadkeys dvorak\n"

msgid "See the files under @file{/run/current-system/profile/share/keymaps} for a list of available keyboard layouts.  Run @command{man loadkeys} for more information."
msgstr "请查看 @file{/run/current-system/profile/share/keymaps} 下的文件,以获取可用键盘布局的列表。运行 @command{man loadkeys} 以获取更多信息。"

msgid "manual-installation-networking"
msgstr "manual-installation-networking"

msgid "Networking"
msgstr "网络"

msgid "Run the following command to see what your network interfaces are called:"
msgstr "运行以下命令查看你的网络接口的名称:"

msgid "ifconfig -a\n"
msgstr "ifconfig -a\n"

msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
msgstr "@dots{} 或者,使用 GNU/Linux 特有的 @command{ip} 命令:"

msgid "ip address\n"
msgstr "ip address\n"

msgid "Wired interfaces have a name starting with @samp{e}; for example, the interface corresponding to the first on-board Ethernet controller is called @samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like @samp{w1p2s0}."
msgstr "有线接口的名称以 @samp{e} 开头;例如,第一块板载以太网控制器对应的接口称为 @samp{eno1}。无线接口的名称以 @samp{w} 开头,如 @samp{w1p2s0}。"

msgid "Wired connection"
msgstr "有线连接"

msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
msgstr "要配置有线网络,请运行以下命令,将@var{接口名}替换为您要使用的有线接口的名称。"

msgid "ifconfig @var{interface} up\n"
msgstr "ifconfig @var{接口名} up\n"

msgid "ip link set @var{interface} up\n"
msgstr "ip link set @var{接口名} up\n"

msgid "Wireless connection"
msgstr "无线连接"

msgid "wireless"
msgstr "无线"

msgid "WiFi"
msgstr "WiFi"

msgid "To configure wireless networking, you can create a configuration file for the @command{wpa_supplicant} configuration tool (its location is not important) using one of the available text editors such as @command{nano}:"
msgstr "要配置无线网络,您可以使用可用的文本编辑器(如 @command{nano})为 @command{wpa_supplicant} 配置工具创建一个配置文件(其位置不重要):"

msgid "nano wpa_supplicant.conf\n"
msgstr "nano wpa_supplicant.conf\n"

msgid "As an example, the following stanza can go to this file and will work for many wireless networks, provided you give the actual SSID and passphrase for the network you are connecting to:"
msgstr "作为示例,以下段落可以放入此文件,并且适用于许多无线网络,前提是您提供实际的 SSID 和连接网络的密码:"

msgid ""
"network=@{\n"
"  ssid=\"@var{my-ssid}\"\n"
"  key_mgmt=WPA-PSK\n"
"  psk=\"the network's secret passphrase\"\n"
"@}\n"
msgstr ""
"network=@{\n"
"  ssid=\"@var{我的 ssid}\"\n"
"  key_mgmt=WPA-PSK\n"
"  psk=\"网络密码\"\n"
"@}\n"

msgid "Start the wireless service and run it in the background with the following command (substitute @var{interface} with the name of the network interface you want to use):"
msgstr "启动无线服务并使用以下命令在后台运行(将@var{接口名}替换为您要使用的网络接口的名称):"

msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
msgstr "wpa_supplicant -c wpa_supplicant.conf -i @var{接口名} -B\n"

msgid "Run @command{man wpa_supplicant} for more information."
msgstr "运行 @command{man wpa_supplicant} 以获取更多信息。"

msgid "DHCP"
msgstr "DHCP"

msgid "At this point, you need to acquire an IP address.  On a network where IP addresses are automatically assigned @i{via} DHCP, you can run:"
msgstr "此时,您需要获取一个 IP 地址。在一个通过 DHCP 自动分配 IP 地址的网络上,您可以运行:"

msgid "dhclient -v @var{interface}\n"
msgstr "dhclient -v @var{接口名}\n"

msgid "Try to ping a server to see if networking is up and running:"
msgstr "尝试 ping 一个服务器以查看网络是否正常运行:"

msgid "ping -c 3 gnu.org\n"
msgstr "ping -c 3 gnu.org\n"

msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
msgstr "设置网络访问几乎总是必需的,因为映像不包含可能需要的所有软件和工具。"

msgid "proxy, during system installation"
msgstr "代理,在安装系统时"

msgid "If you need HTTP and HTTPS access to go through a proxy, run the following command:"
msgstr "如果您需要通过代理访问 HTTP 和 HTTPS,请运行以下命令:"

msgid "herd set-http-proxy guix-daemon @var{URL}\n"
msgstr "herd set-http-proxy guix-daemon @var{URL}\n"

msgid "where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
msgstr "其中 @var{URL} 是代理 URL,例如 @code{http://example.org:8118}。"

msgid "installing over SSH"
msgstr "通过 SSH 安装"

msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
msgstr "如果您愿意,可以通过启动 SSH 服务器继续远程安装:"

msgid "herd start ssh-daemon\n"
msgstr "herd start ssh-daemon\n"

msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
msgstr "确保在登录之前使用 @command{passwd} 设置密码,或配置 OpenSSH 公钥认证。"

msgid "Disk Partitioning"
msgstr "磁盘分区"

msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
msgstr "除非已经完成此操作,否则下一步是对目标分区进行分区,然后格式化。"

msgid "The installation image includes several partitioning tools, including Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with the partition layout you want:"
msgstr "安装映像包括几个分区工具,包括 Parted (@pxref{Overview,,, parted, GNU Parted User Manual})、@command{fdisk} 和 @command{cfdisk}。运行它并根据您想要的分区布局设置磁盘:"

msgid "cfdisk\n"
msgstr "cfdisk\n"

msgid "If your disk uses the GUID Partition Table (GPT) format and you plan to install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
msgstr "如果您的磁盘使用 GUID 分区表(GPT)格式,并且您计划安装基于 BIOS 的 GRUB(这是默认设置),请确保有一个 BIOS 引导分区可用 (@pxref{BIOS installation,,, grub, GNU GRUB manual})."

msgid "EFI, installation"
msgstr "EFI,安装"

msgid "UEFI, installation"
msgstr "UEFI,安装"

msgid "ESP, EFI system partition"
msgstr "ESP,EFI 系统分区"

msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition can be mounted at @file{/boot/efi} for instance and must have the @code{esp} flag set.  E.g., for @command{parted}:"
msgstr "如果您希望使用基于 EFI 的 GRUB,则需要一个 FAT32 @dfn{EFI 系统分区}(ESP)。例如,此分区可以挂载在 @file{/boot/efi},并且必须设置 @code{esp} 标志。例如,对于 @command{parted}:"

msgid "parted /dev/sda set 1 esp on\n"
msgstr "parted /dev/sda set 1 esp on\n"

msgid "grub-bootloader"
msgstr "grub-bootloader"

msgid "grub-efi-bootloader"
msgstr "grub-efi-bootloader"

msgid "Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/firmware/efi} exists in the installation image, then you should probably perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  @xref{Bootloader Configuration}, for more info on bootloaders."
msgstr "不确定使用 EFI 还是基于 BIOS 的 GRUB?如果安装映像中存在目录 @file{/sys/firmware/efi},那么您可能应该执行 EFI 安装,使用 @code{grub-efi-bootloader}。否则,您应该使用基于 BIOS 的 GRUB,称为 @code{grub-bootloader}。有关引导加载器的更多信息,请参见 @xref{Bootloader Configuration}。"

msgid "Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently Guix System only supports ext4, btrfs, JFS, F2FS, and XFS file systems.  In particular, code that reads file system UUIDs and labels only works for these file system types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, run:"
msgstr "完成目标硬盘驱动器的分区后,您必须在相关分区上创建文件系统@footnote{目前 Guix 系统仅支持 ext4、btrfs、JFS、F2FS 和 XFS 文件系统。特别是,读取文件系统 UUID 和标签的代码仅适用于这些文件系统类型。}。对于 ESP,如果您有一个,并假设它是 @file{/dev/sda1},请运行:"

msgid "mkfs.fat -F32 /dev/sda1\n"
msgstr "mkfs.fat -F32 /dev/sda1\n"

msgid "For the root file system, ext4 is the most widely used format.  Other file systems, such as Btrfs, support compression, which is reported to nicely complement file deduplication that the daemon performs independently of the file system (@pxref{Invoking guix-daemon, deduplication})."
msgstr "对于根文件系统,ext4 是最广泛使用的格式。其他文件系统,如 Btrfs,支持压缩,据报道与守护进程独立于文件系统执行的文件去重很好地互补 (@pxref{Invoking guix-daemon, 去重})。"

msgid "Preferably, assign file systems a label so that you can easily and reliably refer to them in @code{file-system} declarations (@pxref{File Systems}).  This is typically done using the @code{-L} option of @command{mkfs.ext4} and related commands.  So, assuming the target root partition lives at @file{/dev/sda2}, a file system with the label @code{my-root} can be created with:"
msgstr "最好为文件系统分配一个标签,以便您可以在 @code{file-system} 声明中轻松可靠地引用它们 (@pxref{File Systems})。这通常使用 @command{mkfs.ext4} 和相关命令的 @code{-L} 选项来完成。因此,假设目标根分区位于 @file{/dev/sda2},可以使用以下命令创建标签为 @code{my-root} 的文件系统:"

msgid "mkfs.ext4 -L my-root /dev/sda2\n"
msgstr "mkfs.ext4 -L my-root /dev/sda2\n"

msgid "encrypted disk"
msgstr "加密磁盘"

msgid "If you are instead planning to encrypt the root partition, you can use the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}} for more information)."
msgstr "如果您打算加密根分区,可以使用 Cryptsetup/LUKS 工具来实现(有关更多信息,请参见 @inlinefmtifelse{html, @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, @code{man cryptsetup}})."

msgid "Assuming you want to store the root partition on @file{/dev/sda2}, the command sequence to format it as a LUKS partition would be along these lines:"
msgstr "假设您想将根分区存储在 @file{/dev/sda2},将其格式化为 LUKS 分区的命令序列大致如下:"

msgid ""
"cryptsetup luksFormat /dev/sda2\n"
"cryptsetup open /dev/sda2 my-partition\n"
"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
msgstr ""
"cryptsetup luksFormat /dev/sda2\n"
"cryptsetup open /dev/sda2 my-partition\n"
"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"

msgid "Once that is done, mount the target file system under @file{/mnt} with a command like (again, assuming @code{my-root} is the label of the root file system):"
msgstr "完成后,使用类似的命令将目标文件系统挂载到 @file{/mnt} 下(同样,假设 @code{my-root} 是根文件系统的标签):"

msgid "mount LABEL=my-root /mnt\n"
msgstr "mount LABEL=my-root /mnt\n"

msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have opted for @file{/boot/efi} as an EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is found by @code{guix system init} afterwards."
msgstr "还要挂载您希望在目标系统上使用的任何其他文件系统。如果您选择将 @file{/boot/efi} 作为 EFI 挂载点,请现在将其挂载到 @file{/mnt/boot/efi},以便之后被 @code{guix system init} 找到。"

msgid "Finally, if you plan to use one or more swap partitions (@pxref{Swap Space}), make sure to initialize them with @command{mkswap}.  Assuming you have one swap partition on @file{/dev/sda3}, you would run:"
msgstr "最后,如果您计划使用一个或多个交换分区(@pxref{Swap Space}),请确保使用 @command{mkswap} 初始化它们。假设您在 @file{/dev/sda3} 上有一个交换分区,您可以运行:"

msgid ""
"mkswap /dev/sda3\n"
"swapon /dev/sda3\n"
msgstr ""
"mkswap /dev/sda3\n"
"swapon /dev/sda3\n"

msgid "Alternatively, you may use a swap file.  For example, assuming that in the new system you want to use the file @file{/swapfile} as a swap file, you would run@footnote{This example will work for many types of file systems (e.g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the required steps may be different.  For details, see the manual pages for @command{mkswap} and @command{swapon}.}:"
msgstr "另外,您可以使用交换文件。例如,假设在新系统中您想将文件 @file{/swapfile} 用作交换文件,您可以运行@footnote{此示例适用于许多类型的文件系统(例如,ext4)。但是,对于写时复制文件系统(例如,btrfs),所需的步骤可能会有所不同。有关详细信息,请参阅 @command{mkswap} 和 @command{swapon} 的手册页。}:"

msgid ""
"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
"# For security, make the file readable and writable only by root.\n"
"chmod 600 /mnt/swapfile\n"
"mkswap /mnt/swapfile\n"
"swapon /mnt/swapfile\n"
msgstr ""
"# 这是 10 GiB 的交换空间。调整“count”以更改大小。\n"
"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
"# 为了安全起见,使文件仅对 root 可读和可写。\n"
"chmod 600 /mnt/swapfile\n"
"mkswap /mnt/swapfile\n"
"swapon /mnt/swapfile\n"

msgid "Note that if you have encrypted the root partition and created a swap file in its file system as described above, then the encryption also protects the swap file, just like any other file in that file system."
msgstr "请注意,如果您加密了根分区并在其文件系统中创建了交换文件,如上所述,那么加密也会保护交换文件,就像该文件系统中的任何其他文件一样。"

msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
msgstr "目标分区准备就绪,目标根目录挂载在 @file{/mnt} 上,我们准备好了。首先,运行:"

msgid "herd start cow-store /mnt\n"
msgstr "herd start cow-store /mnt\n"

msgid "This makes @file{/gnu/store} copy-on-write, such that packages added to it during the installation phase are written to the target disk on @file{/mnt} rather than kept in memory.  This is necessary because the first phase of the @command{guix system init} command (see below) entails downloads or builds to @file{/gnu/store} which, initially, is an in-memory file system."
msgstr "这使得 @file{/gnu/store} 写时复制,这使得在下载阶段添加的包会被写入到 /mnt 挂载的硬盘上,而非将其保存在内存里。这是必要的,因为 @command{guix system init} 命令(见下)的第一阶段要求下载和编译在 @file{/gnu/store} 进行,而这个文件系统初始是在内存里。"

msgid "@xref{Using the Configuration System}, for an overview of the configuration file.  The example configurations discussed in that section are available under @file{/etc/configuration} in the installation image.  Thus, to get started with a system configuration providing a graphical display server (a ``desktop'' system), you can run something along these lines:"
msgstr "@xref{Using the Configuration System},即为配置文件的概述。该小节讨论的示例配置可以在安装映像的@file{/etc/configuration}下找到。因此,若要开始使用为显示图形的服务器(一个“桌面的”系统)提供的系统配置,您可以运行参考以下内容的命令:"

msgid ""
"# mkdir /mnt/etc\n"
"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
"# nano /mnt/etc/config.scm\n"
msgstr ""
"# mkdir /mnt/etc\n"
"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
"# nano /mnt/etc/config.scm\n"

msgid "guix system init /mnt/etc/config.scm /mnt\n"
msgstr "guix system init /mnt/etc/config.scm /mnt\n"

msgid ""
"guix pull\n"
"sudo guix system reconfigure /etc/config.scm\n"
msgstr ""
"guix pull\n"
"sudo guix system reconfigure /etc/config.scm\n"

msgid "Installing Guix in a Virtual Machine"
msgstr "在虚拟机中安装 Guix"

msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
msgstr "qemu-img create -f qcow2 guix-system.img 50G\n"

msgid ""
"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
"  -drive file=guix-system.img \\\n"
"  -drive media=cdrom,readonly=on,file=guix-system-install-@value{VERSION}.@var{system}.iso\n"
msgstr ""
"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
"  -drive file=guix-system.img \\\n"
"  -drive media=cdrom,readonly=on,file=guix-system-install-@value{VERSION}.@var{系统}.iso\n"

msgid "guix system image -t iso9660 gnu/system/install.scm\n"
msgstr "guix system image -t iso9660 gnu/system/install.scm\n"

msgid "guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
msgstr "guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"

msgid "guix search text editor\n"
msgstr "guix search text editor\n"

msgid "guix install emacs\n"
msgstr "guix install emacs\n"

msgid ""
"hint: Consider setting the necessary environment variables by running:\n"
"\n"
msgstr ""
"考虑通过运行以下命令设置必要的环境变量:\n"
"\n"

msgid ""
"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
"     . \"$GUIX_PROFILE/etc/profile\"\n"
"\n"
msgstr ""
"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
"     . \"$GUIX_PROFILE/etc/profile\"\n"
"\n"

msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
msgstr "或者,参见 `guix package --search-paths -p \"$HOME/.guix-profile\"'。\n"

msgid "guix package --list-installed\n"
msgstr "guix package --list-installed\n"

msgid "guix package --roll-back\n"
msgstr "guix package --roll-back\n"

msgid "guix package --list-generations\n"
msgstr "guix package --list-generations\n"

msgid "Now you know the basics of package management!"
msgstr "现在你知道包管理的基本知识了吧!"

msgid ""
"GUIX_PROFILE=\"$HOME/.config/guix/current\"\n"
". \"$GUIX_PROFILE/etc/profile\"\n"
msgstr ""
"GUIX_PROFILE=\"$HOME/.config/guix/current\"\n"
". \"$GUIX_PROFILE/etc/profile\"\n"

msgid "hash guix\n"
msgstr "hash guix\n"

msgid "guix upgrade\n"
msgstr "guix upgrade\n"

msgid "guix describe\n"
msgstr "guix describe\n"

msgid "sudo guix system reconfigure /etc/config.scm\n"
msgstr "sudo guix system reconfigure /etc/config.scm\n"

msgid "Resources"
msgstr "资源"

msgid "guix install emacs-guix\n"
msgstr "guix install emacs-guix\n"

msgid "Here we assume you've already made your first steps with Guix (@pxref{Getting Started}) and would like to get an overview about what's going on under the hood."
msgstr "本节假设您已完成 Guix 的初步使用(@pxref{入门}),并希望深入了解其底层实现原理。"

msgid "When using Guix, each package ends up in the @dfn{package store}, in its own directory---something that resembles @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string."
msgstr "使用 Guix 时,每个软件包最终将存于@dfn{软件包存储区}中,拥有独立目录——其路径形如 @file{/gnu/store/xxx-package-1.2},其中 @code{xxx} 为 Base32 字符串。"

msgid "Instead of referring to these directories, users have their own @dfn{profile}, which points to the packages that they actually want to use.  These profiles are stored within each user's home directory, at @code{$HOME/.guix-profile}."
msgstr "用户无需直接引用这些目录路径,而是通过专属@dfn{软件集}管理实际使用的软件包。这些软件集存储于各用户家目录下的 @code{$HOME/.guix-profile} 路径中。"

msgid "For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC 4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the same system without any interference."
msgstr "例如,@emph{李华}安装了 GCC 4.7.2 后,@file{/home/LiHua/.guix-profile/bin/gcc} 将指向 @file{/gnu/store/@dots{}-gcc-4.7.2/bin/gcc}。而同一台机器上,@emph{李明}已安装的 GCC 4.8.0 对应的软件集仍指向 @file{/gnu/store/@dots{}-gcc-4.8.0/bin/gcc}——两版 GCC 在系统中互不干扰地共存。"

msgid "The @command{guix package} command is the central tool to manage packages (@pxref{Invoking guix package}).  It operates on the per-user profiles, and can be used @emph{with normal user privileges}."
msgstr "@command{guix package} 是管理软件包的核心工具(@pxref{调用 guix package})。该命令操作用户专属的软件集,且@emph{支持普通用户权限执行}。"

msgid "transactions"
msgstr "事务"

msgid "The command provides the obvious install, remove, and upgrade operations.  Each invocation is actually a @emph{transaction}: either the specified operation succeeds, or nothing happens.  Thus, if the @command{guix package} process is terminated during the transaction, or if a power outage occurs during the transaction, then the user's profile remains in its previous state, and remains usable."
msgstr "此命令提供基础的安装、移除与升级操作。每次调用均为原子@emph{事务}:要么完整执行指定操作,要么维持原状。因此,若 @command{guix package} 进程在事务中意外终止,或遭遇断电故障,用户软件集仍将保持先前可用状态。"

msgid "In addition, any package transaction may be @emph{rolled back}.  So, if, for example, an upgrade installs a new version of a package that turns out to have a serious bug, users may roll back to the previous instance of their profile, which was known to work well.  Similarly, the global system configuration on Guix is subject to transactional upgrades and roll-back (@pxref{Getting Started with the System})."
msgstr "此外,任何软件包事务均可@emph{回滚}。例如:当升级安装的新版软件包存在严重缺陷时,用户可回滚至已知稳定的历史软件集版本。类似地,Guix 的全局系统配置同样支持事务式升级与回滚(@pxref{Getting Started with the System})。"

msgid "All packages in the package store may be @emph{garbage-collected}.  Guix can determine which packages are still referenced by user profiles, and remove those that are provably no longer referenced (@pxref{Invoking guix gc}).  Users may also explicitly remove old generations of their profile so that the packages they refer to can be collected."
msgstr "软件包存储区中的所有软件均可进行@emph{垃圾回收}。Guix 能识别仍被用户软件集引用的软件包,并移除可证明未被引用的软件(@pxref{Invoking guix gc})。用户亦可显式删除历史软件集代,使其引用的软件包可被回收。"

msgid "Guix takes a @dfn{purely functional} approach to package management, as described in the introduction (@pxref{Introduction}).  Each @file{/gnu/store} package directory name contains a hash of all the inputs that were used to build that package---compiler, libraries, build scripts, etc.  This direct correspondence allows users to make sure a given package installation matches the current state of their distribution.  It also helps maximize @dfn{build reproducibility}: thanks to the isolated build environments that are used, a given build is likely to yield bit-identical files when performed on different machines (@pxref{Invoking guix-daemon, container})."
msgstr "Guix 采用@dfn{纯函数式}包管理范式(详见导论参见@ref{Introduction})。每个 @file{/gnu/store} 软件包目录名包含构建该软件所有输入的哈希值——编译器、库、构建脚本等。这种直接对应关系确保软件包安装状态与系统当前分布一致,同时最大化提升@dfn{构建可复现性}:依托隔离构建环境,相同构建在不同设备上可生成比特级一致文件(@pxref{Invoking guix-daemon, container})。"

msgid "This foundation allows Guix to support @dfn{transparent binary/source deployment}.  When a pre-built binary for a @file{/gnu/store} item is available from an external source---a @dfn{substitute}, Guix just downloads it and unpacks it; otherwise, it builds the package from source, locally (@pxref{Substitutes}).  Because build results are usually bit-for-bit reproducible, users do not have to trust servers that provide substitutes: they can force a local build and @emph{challenge} providers (@pxref{Invoking guix challenge})."
msgstr "此基础架构支持@dfn{透明的二进制/源码混合部署}。当 @file{/gnu/store} 项存在预编译二进制@dfn{替代品}时,Guix 直接下载解压;否则执行本地源码构建(@pxref{Substitutes})。因构建结果通常具备比特级可复现性,用户无需信任替代源服务器:可强制本地构建并@emph{验证}@footnote{原文为 “challenge”,意为挑战。}提供者结果(@pxref{Invoking guix challenge})。"

msgid "Control over the build environment is a feature that is also useful for developers.  The @command{guix shell} command allows developers of a package to quickly set up the right development environment for their package, without having to manually install the dependencies of the package into their profile (@pxref{Invoking guix shell})."
msgstr "对构建环境的精准控制同样惠及开发者。@command{guix shell} 命令使软件包开发者能快速搭建专属开发环境,无需手动安装依赖至个人软件集(@pxref{Invoking guix shell})。"

msgid "replication, of software environments"
msgstr "软件环境复现"

msgid "provenance tracking, of software artifacts"
msgstr "制品来源追踪"

msgid "All of Guix and its package definitions is version-controlled, and @command{guix pull} allows you to ``travel in time'' on the history of Guix itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a Guix instance on a different machine or at a later point in time, which in turn allows you to @emph{replicate complete software environments}, while retaining precise @dfn{provenance tracking} of the software."
msgstr ""
"Guix 及其所有软件包定义均受版本控制,通过 @command{guix pull} 命令可在 Guix 自身的历史版本中进行“时间旅行”(@pxref{Invoking guix pull})。这使您能够在不同设备或未来时间点复现相同的 Guix 实例,进而实现 @emph{完整软件环境的精准复现},同时保持精确的软件 @dfn{来源追踪}。\n"
"\n"
"@unnumberedsec 关于“软件集”译法的说明\n"
"\n"
"亲爱的读者,本书将 Guix 核心概念“profile”统一译为@dfn{软件集},特此说明:\n"
"\n"
"该术语本质是@emph{由符号链接动态组成的软件环境容器}(如用户默认的 @file{~/.guix-profile}),其核心价值在于提供@emph{环境隔离、原子更新与精确复现}能力。我们选择“软件集”译法主要考量术语简洁性(三字)与认知普适性,但需坦诚此译法存在两点折损:1) 未充分体现“动态链接”物理本质;2) 弱化了“环境隔离”的功能维度。\n"
"\n"
"其他候选译法中,“配置文件”易与传统配置混淆,“环境配置集”过于冗长,“境链”虽精准但属新造词需额外解释。为保障行文连贯性不得已择此译法,对未能完全传递概念精妙之处深表歉意,恳请读者通过上下文理解其@emph{链接集合}与@emph{环境容器}双重属性。\n"
"\n"
"若有优化建议,敬请反馈翻译团队。"

msgid "Invoking @command{guix package}"
msgstr "调用 @command{guix package}"

msgid "installing packages"
msgstr "安装软件包"

msgid "removing packages"
msgstr "移除软件包"

msgid "package installation"
msgstr "软件包安装"

msgid "package removal"
msgstr "软件包移除"

msgid "guix package"
msgstr "guix package"

msgid "The @command{guix package} command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations.  These operations work on a user @dfn{profile}---a directory of installed packages.  Each user has a default profile in @file{$HOME/.guix-profile}.  The command operates only on the user's own profile, and works with normal user privileges (@pxref{Features}).  Its syntax is:"
msgstr "@command{guix package} 命令支持用户安装、升级、移除软件包及回滚至历史配置。这些操作作用于用户专属的@dfn{软件集}——即已安装软件包的目录。每位用户的默认软件集位于 @file{$HOME/.guix-profile},该命令仅操作用户自身软件集,且以普通用户权限运行(@pxref{功能})。其基本语法为:"

msgid "guix package @var{options}\n"
msgstr "guix package @var{选项}\n"

msgid "Primarily, @var{options} specifies the operations to be performed during the transaction.  Upon completion, a new profile is created, but previous @dfn{generations} of the profile remain available, should the user want to roll back."
msgstr "核心功能在于,@var{选项}指定事务处理期间执行的操作。完成后将创建新的软件集,而旧有软件集的@dfn{代}仍可访问——若用户需要执行回滚操作。"

msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
msgstr "例如,通过单次事务处理同时移除 @code{lua} 并安装 @code{guile} 与 @code{guile-cairo}:"

msgid "guix package -r lua -i guile guile-cairo\n"
msgstr "guix package -r lua -i guile guile-cairo\n"

msgid "aliases, for @command{guix package}"
msgstr "@command{guix package} 的别名"

msgid "For your convenience, we also provide the following aliases:"
msgstr "为提升操作便捷性,系统提供以下等效别名:"

msgid "@command{guix search} is an alias for @command{guix package -s},"
msgstr "@command{guix search} 等效于 @command{guix package -s},"

msgid "@command{guix install} is an alias for @command{guix package -i},"
msgstr "@command{guix install} 等效于 @command{guix package -i},"

msgid "@command{guix remove} is an alias for @command{guix package -r},"
msgstr "@command{guix remove} 等效于 @command{guix package -r},"

msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
msgstr "@command{guix upgrade} 等效于 @command{guix package -u},"

msgid "and @command{guix show} is an alias for @command{guix package --show=}."
msgstr "@command{guix show} 等效于 @command{guix package --show=}。"

msgid "These aliases are less expressive than @command{guix package} and provide fewer options, so in some cases you'll probably want to use @command{guix package} directly."
msgstr "这些别名的功能丰富性不及 @command{guix package} 且选项较少,故某些场景建议直接使用 @command{guix package}。"

msgid "@command{guix package} also supports a @dfn{declarative approach} whereby the user specifies the exact set of packages to be available and passes it @i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--manifest}})."
msgstr "@command{guix package} 同时支持@dfn{声明式配置方案}:用户可指定精确的软件包集合,并通过 @option{--manifest} 选项触发配置(@pxref{profile-manifest, @option{--manifest}})。"

msgid "For each user, a symlink to the user's default profile is automatically created in @file{$HOME/.guix-profile}.  This symlink always points to the current generation of the user's default profile.  Thus, users can add @file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and so on."
msgstr "系统在用户家目录下的 @file{$HOME/.guix-profile} 路径自动创建指向其默认软件集的符号链接。该链接始终指向当前软件集的最新代。用户因而可将 @file{$HOME/.guix-profile/bin} 加入 @env{PATH} 环境变量等设置中。"

msgid "search paths"
msgstr "搜索路径"

msgid "If you are not using Guix System, consider adding the following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all the right environment variable definitions:"
msgstr "若您未使用 Guix 系统,建议将以下配置添加至 @file{~/.bash_profile}(@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}),以确保新启动的 Shell 进程自动载入正确的环境变量:"

msgid ""
"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
"source \"$GUIX_PROFILE/etc/profile\"\n"
msgstr ""
"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
"source \"$GUIX_PROFILE/etc/profile\"\n"

msgid "In a multi-user setup, user profiles are stored in a place registered as a @dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}).  That directory is normally @code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where @var{localstatedir} is the value passed to @code{configure} as @option{--localstatedir}, and @var{user} is the user name.  The @file{per-user} directory is created when @command{guix-daemon} is started, and the @var{user} sub-directory is created by @command{guix package}."
msgstr "在多用户配置中,用户软件集存储于注册为 @dfn{垃圾回收根目录} 的位置(@file{$HOME/.guix-profile} 指向该位置,@pxref{Invoking guix gc})。该目录通常为 @code{@var{localstatedir}/guix/profiles/per-user/@var{user}},其中 @var{localstatedir} 是通过 @option{--localstatedir} 传递给 @command{configure} 的值,@var{user} 为用户名。@file{per-user} 目录在启动 @command{guix-daemon} 时创建,而 @var{user} 子目录由 @command{guix package} 命令生成。"

msgid "The @var{options} can be among the following:"
msgstr "@var{options} 可以是以下选项之一:"

msgid "--install=@var{package} @dots{}"
msgstr "--install=@var{软件包} @dots{}"

msgid "-i @var{package} @dots{}"
msgstr "-i @var{软件包} @dots{}"

msgid "Install the specified @var{package}s."
msgstr "安装指定@var{软件包}。"

msgid "Each @var{package} may specify a simple package name, such as @code{guile}, optionally followed by an at-sign and version number, such as @code{guile@@3.0.7} or simply @code{guile@@3.0}.  In the latter case, the newest version prefixed by @code{3.0} is selected."
msgstr "每个@var{软件包}标识符可采用基础命名格式(如 @code{guile}),或追加 @ 符号及版本号(如 @code{guile@@3.0.7} 或 @code{guile@@3.0})。后者将自动选择前缀为 @code{3.0} 的最新版本。"

msgid "If no version number is specified, the newest available version will be selected.  In addition, such a @var{package} specification may contain a colon, followed by the name of one of the outputs of the package, as in @code{gcc:doc} or @code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs})."
msgstr "若未指定版本号,系统将自动选择最新可用版本。此外,此类@var{软件包}标识符可包含冒号以指定软件包的特定输出,例如 @code{gcc:doc} 或 @code{binutils@@2.22:lib}(@pxref{Packages with Multiple Outputs})。"

msgid "Packages with a corresponding name (and optionally version) are searched for among the GNU distribution modules (@pxref{Package Modules})."
msgstr "在 GNU 发行版模块中搜索符合指定名称(及可选版本号)的软件包(@pxref{Package Modules})。"

msgid "@verbatiminclude package-hello.json\n"
msgstr "@verbatiminclude package-hello.json\n"

msgid "guix install emacs-next --with-branch=emacs-next=master\n"
msgstr "guix install emacs-next --with-branch=emacs-next=master\n"

msgid "guix install @var{package}\n"
msgstr "guix install @var{package}\n"

msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
msgstr "$ guix package --upgrade . --do-not-upgrade emacs\n"

msgid "profile-manifest"
msgstr "profile-manifest"

msgid "$ eval $(guix package --search-paths)\n"
msgstr "$ eval $(guix package --search-paths)\n"

msgid ""
"$ guix package -p foo -i guile\n"
"$ guix package -p bar -i guile-json\n"
"$ guix package -p foo -p bar --search-paths\n"
msgstr ""
"$ guix package -p foo -i guile\n"
"$ guix package -p bar -i guile-json\n"
"$ guix package -p foo -p bar --search-paths\n"

msgid ""
"$ guix install hello -p ~/code/my-profile\n"
"@dots{}\n"
"$ ~/code/my-profile/bin/hello\n"
"Hello, world!\n"
msgstr ""
"$ guix install hello -p ~/code/my-profile\n"
"@dots{}\n"
"$ ~/code/my-profile/bin/hello\n"
"世界你好!\n"

msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
msgstr "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"

msgid ""
"$ guix package --list-profiles\n"
"/home/charlie/.guix-profile\n"
"/home/charlie/code/my-profile\n"
"/home/charlie/code/devel-profile\n"
"/home/charlie/tmp/test\n"
msgstr ""
"$ guix package --list-profiles\n"
"/home/charlie/.guix-profile\n"
"/home/charlie/code/my-profile\n"
"/home/charlie/code/devel-profile\n"
"/home/charlie/tmp/test\n"

msgid ""
"$ guix package -s malloc | recsel -p name,version,relevance\n"
"name: jemalloc\n"
"version: 4.5.0\n"
"relevance: 6\n"
"\n"
msgstr ""
"$ guix package -s malloc | recsel -p name,version,relevance\n"
"name: jemalloc\n"
"version: 4.5.0\n"
"relevance: 6\n"
"\n"

msgid ""
"name: glibc\n"
"version: 2.25\n"
"relevance: 1\n"
"\n"
msgstr ""
"name: glibc\n"
"version: 2.25\n"
"relevance: 1\n"
"\n"

msgid ""
"name: libgc\n"
"version: 7.6.0\n"
"relevance: 1\n"
msgstr ""
"name: libgc\n"
"version: 7.6.0\n"
"relevance: 1\n"

msgid ""
"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
"name: elfutils\n"
"\n"
msgstr ""
"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
"name: elfutils\n"
"\n"

msgid ""
"name: gmp\n"
"@dots{}\n"
msgstr ""
"name: gmp\n"
"@dots{}\n"

msgid ""
"$ guix search '\\<board\\>' game | recsel -p name\n"
"name: gnubg\n"
"@dots{}\n"
msgstr ""
"$ guix search '\\<board\\>' game | recsel -p name\n"
"name: gnubg\n"
"@dots{}\n"

msgid ""
"$ guix search crypto library | \\\n"
"    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
msgstr ""
"$ guix search crypto library | \\\n"
"    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"

msgid ""
"$ guix package --show=guile | recsel -p name,version\n"
"name: guile\n"
"version: 3.0.5\n"
"\n"
msgstr ""
"$ guix package --show=guile | recsel -p name,version\n"
"name: guile\n"
"version: 3.0.5\n"
"\n"

msgid ""
"name: guile\n"
"version: 3.0.2\n"
"\n"
msgstr ""
"name: guile\n"
"version: 3.0.2\n"
"\n"

msgid ""
"name: guile\n"
"version: 2.2.7\n"
"@dots{}\n"
msgstr ""
"name: guile\n"
"version: 2.2.7\n"
"@dots{}\n"

msgid ""
"$ guix show guile@@3.0.5 | recsel -p name,version\n"
"name: guile\n"
"version: 3.0.5\n"
msgstr ""
"$ guix show guile@@3.0.5 | recsel -p name,version\n"
"name: guile\n"
"version: 3.0.5\n"

msgid "Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both.  We call these pre-built items @dfn{substitutes}---they are substitutes for local build results.  In many cases, downloading a substitute is much faster than building things locally."
msgstr "Guix 支持透明的二进制/源码混合部署,既能本地构建,亦可从服务器下载预构建项目,或二者并行。这些预构建项目称为@dfn{替代品}——即本地构建结果的等效替代。多数场景下下载替代品远快于本地构建。"

msgid "Substitutes can be anything resulting from a derivation build (@pxref{Derivations}).  Of course, in the common case, they are pre-built package binaries, but source tarballs, for instance, which also result from derivation builds, can be available as substitutes."
msgstr "替代品可来自任意派生项构建结果(@pxref{Derivations})。常见形式为预编译软件包二进制文件,但派生构建产生的源码压缩包等同样可作为替代品。"

msgid "build farm"
msgstr "构建集群"

msgid "@code{@value{SUBSTITUTE-SERVER-1}} and @code{@value{SUBSTITUTE-SERVER-2}} are both front-ends to official build farms that build packages from Guix continuously for some architectures, and make them available as substitutes.  These are the default source of substitutes; which can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools such as @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option})."
msgstr "@code{@value{SUBSTITUTE-SERVER-1}} 与 @code{@value{SUBSTITUTE-SERVER-2}} 是官方构建集群的前端,持续为特定架构构建 Guix 软件包并提供替代品。此为默认替代渠道,可通过向 @command{guix-daemon} 传递 @option{--substitute-urls} 选项(@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}})或客户端工具如 @command{guix package}(@pxref{client-substitute-urls,, 客户端 @option{--substitute-urls} 选项})覆盖默认设置。"

msgid "Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because communications are encrypted; conversely, using HTTP makes all communications visible to an eavesdropper, who could use the information gathered to determine, for instance, whether your system has unpatched security vulnerabilities."
msgstr "替代品 URL 支持 HTTP 或 HTTPS 协议。推荐使用 HTTPS(通信加密),HTTP 则会使通信内容暴露于窃听者,可能被用于推断系统存在未修补漏洞等敏感信息。"

msgid "Substitutes from the official build farms are enabled by default when using Guix System (@pxref{GNU Distribution}).  However, they are disabled by default when using Guix on a foreign distribution, unless you have explicitly enabled them via one of the recommended installation steps (@pxref{Installation}).  The following paragraphs describe how to enable or disable substitutes for the official build farm; the same procedure can also be used to enable substitutes for any other substitute server."
msgstr "官方构建集群的替代品在使用 Guix 系统时默认启用(@pxref{GNU Distribution})。但在外部发行版上使用 Guix 时默认禁用,除非已通过推荐安装步骤显式启用(@pxref{Installation})。以下段落描述如何启用或禁用官方构建集群的替代品;相同流程亦可用于其他替代服务器的配置。"

msgid "security"
msgstr "安全"

msgid ""
"# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n"
"# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n"
msgstr ""
"# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-1}.pub\n"
"# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER-2}.pub\n"

msgid ""
"$ guix build emacs --dry-run\n"
"The following derivations would be built:\n"
"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
"@dots{}\n"
msgstr ""
"$ guix build emacs --dry-run\n"
"将构建以下派生:\n"
"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
"@dots{}\n"

msgid ""
"$ guix build emacs --dry-run\n"
"112.3 MB would be downloaded:\n"
"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
"@dots{}\n"
msgstr ""
"$ guix build emacs --dry-run\n"
"将下载 112.3 MB:\n"
"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
"@dots{}\n"

msgid ""
"$ sudo guix system reconfigure /etc/config.scm\n"
"$ sudo herd restart guix-daemon\n"
msgstr ""
"$ sudo guix system reconfigure /etc/config.scm\n"
"$ sudo herd restart guix-daemon\n"

msgid "@dots{} --substitute-urls='https://guix.example.org @value{SUBSTITUTE-URLS}'\n"
msgstr "@dots{} --substitute-urls='https://guix.example.org @value{SUBSTITUTE-URLS}'\n"

msgid ""
"systemctl daemon-reload\n"
"systemctl restart guix-daemon.service\n"
msgstr ""
"systemctl daemon-reload\n"
"systemctl restart guix-daemon.service\n"

msgid "guix archive --authorize < key.pub\n"
msgstr "guix archive --authorize < key.pub\n"

msgid "guix weather coreutils\n"
msgstr "guix weather coreutils\n"

msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
msgstr "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"

msgid "guix install glib\n"
msgstr "guix install glib\n"

msgid "guix install glib:doc\n"
msgstr "guix install glib:doc\n"

msgid "Invoking @command{guix locate}"
msgstr "调用@command{guix locate}"

msgid "guix search video editor\n"
msgstr "guix search video editor\n"

msgid ""
"$ guix locate ls\n"
"coreutils@@9.1       /gnu/store/@dots{}-coreutils-9.1/bin/ls\n"
msgstr ""
"$ guix locate ls\n"
"coreutils@@9.1       /gnu/store/@dots{}-coreutils-9.1/bin/ls\n"

msgid ""
"$ guix locate unistr.h\n"
"icu4c@@71.1          /gnu/store/@dots{}/include/unicode/unistr.h\n"
"libunistring@@1.0    /gnu/store/@dots{}/include/unistr.h\n"
msgstr ""
"$ guix locate unistr.h\n"
"icu4c@@71.1          /gnu/store/@dots{}/include/unicode/unistr.h\n"
"libunistring@@1.0    /gnu/store/@dots{}/include/unistr.h\n"

msgid ""
"$ guix locate -g '*.service'\n"
"man-db@@2.11.1        @dots{}/lib/systemd/system/man-db.service\n"
"wpa-supplicant@@2.10  @dots{}/system-services/fi.w1.wpa_supplicant1.service\n"
msgstr ""
"$ guix locate -g '*.service'\n"
"man-db@@2.11.1        @dots{}/lib/systemd/system/man-db.service\n"
"wpa-supplicant@@2.10  @dots{}/system-services/fi.w1.wpa_supplicant1.service\n"

msgid "guix locate [@var{options}@dots{}] @var{file}@dots{}\n"
msgstr "guix locate [@var{options}@dots{}] @var{file}@dots{}\n"

msgid "Invoking @command{guix gc}"
msgstr "调用 @command{guix gc}"

msgid "guix gc"
msgstr "guix gc"

msgid "guix gc -F 5G\n"
msgstr "guix gc -F 5G\n"

msgid "guix gc -d 2m -F 10G\n"
msgstr "guix gc -d 2m -F 10G\n"

msgid "closure"
msgstr "closure"

msgid "derivation"
msgstr "derivation"

msgid "guix gc --derivers $(guix package -I ^emacs$ | cut -f4)\n"
msgstr "guix gc --derivers $(guix package -I ^emacs$ | cut -f4)\n"

msgid "Invoking @command{guix pull}"
msgstr "调用 @command{guix pull}"

msgid "Invoking @command{guix time-machine}"
msgstr "调用 @command{guix time-machine}"

msgid ""
"guix time-machine --commit=v1.2.0 -- \\\n"
"  environment -C --ad-hoc guile -- guile\n"
msgstr ""
"guix time-machine --commit=v1.2.0 -- \\\n"
"  environment -C --ad-hoc guile -- guile\n"

msgid "guix time-machine -q -- build hello\n"
msgstr "guix time-machine -q -- build hello\n"

msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
msgstr "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"

msgid "guix time-machine -C <(echo %default-channels) @dots{}\n"
msgstr "guix time-machine -C <(echo %default-channels) @dots{}\n"

msgid "Invoking @command{guix describe}"
msgstr "调用 @command{guix describe}"

msgid "guix describe"
msgstr "guix describe"

msgid ""
"$ guix describe\n"
"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
"  guix e0fa68c\n"
"    repository URL: https://git.guix.gnu.org/guix.git\n"
"    branch: master\n"
"    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
msgstr ""
"$ guix describe\n"
"第 10 代\t9月 03 2018 17:32:44\t(当前)\n"
"  guix e0fa68c\n"
"    仓库 URL:https://git.guix.gnu.org/guix.git\n"
"    分支:master\n"
"    提交:e0fa68c7718fffd33d81af415279d6ddb518f727\n"

msgid ""
"$ guix describe -f channels\n"
"(list (channel\n"
"        (name 'guix)\n"
"        (url \"https://git.guix.gnu.org/guix.git\")\n"
"        (commit\n"
"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
"        (introduction\n"
"          (make-channel-introduction\n"
"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
"            (openpgp-fingerprint\n"
"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
msgstr ""
"$ guix describe -f channels\n"
"(list (channel\n"
"        (name 'guix)\n"
"        (url \"https://git.guix.gnu.org/guix.git\")\n"
"        (commit\n"
"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
"        (introduction\n"
"          (make-channel-introduction\n"
"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
"            (openpgp-fingerprint\n"
"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"

msgid "Invoking @command{guix archive}"
msgstr "调用 @command{guix archive}"

msgid "archive"
msgstr "归档"

msgid "guix archive --export @var{options} @var{specifications}...\n"
msgstr "guix archive --export @var{options} @var{specifications}...\n"

msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
msgstr "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"

msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
msgstr "guix archive --export -r emacs | ssh the-machine guix archive --import\n"

msgid ""
"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
"  ssh the-machine guix archive --import\n"
msgstr ""
"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
"  ssh the-machine guix archive --import\n"

msgid ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER-1}/nar/gzip/@dots{}-emacs-24.5 \\\n"
"  | gunzip | guix archive -x /tmp/emacs\n"
msgstr ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER-1}/nar/gzip/@dots{}-emacs-24.5 \\\n"
"  | gunzip | guix archive -x /tmp/emacs\n"

msgid ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/@dots{}-emacs-26.3 \\\n"
"  | lzip -d | guix archive -t\n"
msgstr ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/@dots{}-emacs-26.3 \\\n"
"  | lzip -d | guix archive -t\n"

msgid "Guix and its package collection are updated by running @command{guix pull}.  By default @command{guix pull} downloads and deploys Guix itself from the official GNU@tie{}Guix repository.  This can be customized by providing a file specifying the set of @dfn{channels} to pull from (@pxref{Invoking guix pull}).  A channel specifies the URL and branch of a Git repository to be deployed, and @command{guix pull} can be instructed to pull from one or more channels.  In other words, channels can be used to @emph{customize} and to @emph{extend} Guix, as we will see below.  Guix is able to take into account security concerns and deal with authenticated updates."
msgstr "通过运行 @command{guix pull} 可更新 Guix 及其软件包集合。默认情况下,@command{guix pull} 从官方 GNU@tie{}Guix 代码库下载并部署 Guix 本体。用户可通过配置文件指定拉取的@dfn{频道}集合实现定制(@pxref{Invoking guix pull})。每个频道定义待部署 Git 代码库的 URL 与分支,@command{guix pull} 支持从单频道或多频道拉取。换言之,频道可用于@emph{定制}和@emph{扩展} Guix(详见下文)。Guix 具备安全机制保障认证更新的可靠性。"

msgid "extending the package collection (channels)"
msgstr "扩展软件包集合(频道)"

msgid "variant packages (channels)"
msgstr "变体软件包(频道)"

msgid "You can specify @emph{additional channels} to pull from.  To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s):"
msgstr "可通过指定@emph{额外频道}扩展拉取源。要启用某频道,需编写 @code{~/.config/guix/channels.scm} 文件,指示 @command{guix pull} 在默认频道基础上追加拉取该频道:"

msgid "%default-channels"
msgstr "%default-channels"

msgid ""
";; Add variant packages to those Guix provides.\n"
"(cons (channel\n"
"        (name 'variant-packages)\n"
"        (url \"https://example.org/variant-packages.git\"))\n"
"      %default-channels)\n"
msgstr ""
";; 添加变体软件包至 Guix 提供的基础包集。\n"
"(cons (channel\n"
"        (name 'variant-packages)\n"
"        (url \"https://example.org/variant-packages.git\"))\n"
"      %default-channels)\n"

msgid ""
"$ guix describe\n"
"Generation 19\tAug 27 2018 16:20:48\n"
"  guix d894ab8\n"
"    repository URL: https://git.guix.gnu.org/guix.git\n"
"    branch: master\n"
"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
"  variant-packages dd3df5e\n"
"    repository URL: https://example.org/variant-packages.git\n"
"    branch: master\n"
"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
msgstr ""
"$ guix describe\n"
"第 19 代\t8月 27 2018 16:20:48\n"
"  guix d894ab8\n"
"    仓库 URL:https://git.guix.gnu.org/guix.git\n"
"    分支:master\n"
"    提交:d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
"  variant-packages dd3df5e\n"
"    仓库 URL:https://example.org/variant-packages.git\n"
"    分支:master\n"
"    提交:dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"

msgid ""
"[safe]\n"
"        directory = /src/guix.git\n"
msgstr ""
"[safe]\n"
"        directory = /src/guix.git\n"

msgid ""
";; Deploy specific commits of my channels of interest.\n"
"(list (channel\n"
"       (name 'guix)\n"
"       (url \"https://git.guix.gnu.org/guix.git\")\n"
"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
"      (channel\n"
"       (name 'variant-packages)\n"
"       (url \"https://example.org/variant-packages.git\")\n"
"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
msgstr ""
";; 部署我感兴趣的频道的特定提交。\n"
"(list (channel\n"
"       (name 'guix)\n"
"       (url \"https://git.guix.gnu.org/guix.git\")\n"
"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
"      (channel\n"
"       (name 'variant-packages)\n"
"       (url \"https://example.org/variant-packages.git\")\n"
"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"

msgid "guix describe -f channels > channels.scm\n"
msgstr "guix describe -f channels > channels.scm\n"

msgid "guix time-machine -C channels.scm -- shell python -- python3\n"
msgstr "guix time-machine -C channels.scm -- shell python -- python3\n"

msgid ""
"(define my-channels\n"
"  ;; Channels that should be available to\n"
"  ;; /run/current-system/profile/bin/guix.\n"
"  (append\n"
"   (list (channel\n"
"          (name 'guix-science)\n"
"          (url \"https://codeberg.org/guix-science/guix-science\")\n"
"          (branch \"master\")))\n"
"   %default-channels))\n"
"\n"
msgstr ""
"(define my-channels\n"
"  ;; 应该对\n"
"  ;; /run/current-system/profile/bin/guix 可用的频道。\n"
"  (append\n"
"   (list (channel\n"
"          (name 'guix-science)\n"
"          (url \"https://codeberg.org/guix-science/guix-science\")\n"
"          (branch \"master\")))\n"
"   %default-channels))\n"
"\n"

msgid ""
"mkdir my-channel\n"
"cd my-channel\n"
"git init\n"
msgstr ""
"mkdir my-channel\n"
"cd my-channel\n"
"git init\n"

msgid ""
"mkdir -p alice/packages\n"
"$EDITOR alice/packages/greetings.scm\n"
"git add alice/packages/greetings.scm\n"
msgstr ""
"mkdir -p alice/packages\n"
"$EDITOR alice/packages/greetings.scm\n"
"git add alice/packages/greetings.scm\n"

msgid "guix build -L. hi-from-alice\n"
msgstr "guix build -L. hi-from-alice\n"

msgid "git commit\n"
msgstr "git commit\n"

msgid ""
"$EDITOR ~/.config/guix/channels.scm\n"
"guix pull\n"
msgstr ""
"$EDITOR ~/.config/guix/channels.scm\n"
"guix pull\n"

msgid "guix git authenticate @var{commit} @var{signer}\n"
msgstr "guix git authenticate @var{commit} @var{signer}\n"

msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
msgstr "xgettext -o news.po -l scheme -ken etc/news.txt\n"

msgid "Invoking @command{guix shell}"
msgstr "调用 @command{guix shell}"

msgid "guix shell"
msgstr "guix shell"

msgid "guix shell [@var{options}] [@var{package}@dots{}]\n"
msgstr "guix shell [@var{options}] [@var{package}@dots{}]\n"

msgid "guix shell python python-numpy -- python3\n"
msgstr "guix shell python python-numpy -- python3\n"

msgid ""
"#!/usr/bin/env -S guix shell python python-numpy -- python3\n"
"import numpy\n"
"print(\"This is numpy\", numpy.version.version)\n"
msgstr ""
"#!/usr/bin/env -S guix shell python python-numpy -- python3\n"
"import numpy\n"
"print(\"This is numpy\", numpy.version.version)\n"

msgid "guix shell --development inkscape\n"
msgstr "guix shell --development inkscape\n"

msgid "guix shell\n"
msgstr "guix shell\n"

msgid "guix shell --container emacs gcc-toolchain\n"
msgstr "guix shell --container emacs gcc-toolchain\n"

msgid ""
"guix shell --container --network --no-cwd ungoogled-chromium \\\n"
"  --preserve='^XAUTHORITY$' --expose=\"$@{XAUTHORITY@}\" \\\n"
"  --preserve='^DISPLAY$' -- chromium\n"
msgstr ""
"guix shell --container --network --no-cwd ungoogled-chromium \\\n"
"  --preserve='^XAUTHORITY$' --expose=\"$@{XAUTHORITY@}\" \\\n"
"  --preserve='^DISPLAY$' -- chromium\n"

msgid ""
"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
"then\n"
"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
"fi\n"
msgstr ""
"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
"then\n"
"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
"fi\n"

msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"

msgid "guix shell -D guile autoconf automake libtool\n"
msgstr "guix shell -D guile autoconf automake libtool\n"

msgid "guix shell -D -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
msgstr "guix shell -D -e '(@@ (gnu packages maths) petsc-openmpi)'\n"

msgid "guix shell -e '(@@ (gnu) %base-packages)'\n"
msgstr "guix shell -e '(@@ (gnu) %base-packages)'\n"

msgid "guix shell -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
msgstr "guix shell -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"

msgid "guix shell -D -f gdb-devel.scm\n"
msgstr "guix shell -D -f gdb-devel.scm\n"

msgid "guix shell -D guile git emacs emacs-geiser emacs-geiser-guile\n"
msgstr "guix shell -D guile git emacs emacs-geiser emacs-geiser-guile\n"

msgid ""
"guix shell --export-manifest \\\n"
"  -D guile git emacs emacs-geiser emacs-geiser-guile\n"
msgstr ""
"guix shell --export-manifest \\\n"
"  -D guile git emacs emacs-geiser emacs-geiser-guile\n"

msgid "guix shell -m manifest.scm\n"
msgstr "guix shell -m manifest.scm\n"

msgid ""
"guix shell --pure --preserve=^SLURM openmpi @dots{} \\\n"
"  -- mpirun @dots{}\n"
msgstr ""
"guix shell --pure --preserve=^SLURM openmpi @dots{} \\\n"
"  -- mpirun @dots{}\n"

msgid "container"
msgstr "container"

msgid ""
"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
"cd $HOME/wd\n"
"guix shell --container --user=foo \\\n"
"     --expose=$HOME/test \\\n"
"     --expose=/tmp/target=$HOME/target\n"
msgstr ""
"# 容器内将映射以下路径:/home/foo/wd、/home/foo/test、/home/foo/target \n"
"cd $HOME/wd\n"
"guix shell --container --user=foo \\\n"
"     --expose=$HOME/test \\\n"
"     --expose=/tmp/target=$HOME/target\n"

msgid "guix shell --container --expose=$HOME=/exchange guile -- guile\n"
msgstr "guix shell --container --expose=$HOME=/exchange guile -- guile\n"

msgid ""
"$ guix shell -CW coreutils\n"
"[env]$ guix shell -C guile -- guile -c '(display \"hello!\\n\")'\n"
"hello!\n"
"[env]$ exit\n"
msgstr ""
"$ guix shell -CW coreutils\n"
"[env]$ guix shell -C guile -- guile -c '(display \"hello!\\n\")'\n"
"hello!\n"
"[env]$ exit\n"

msgid "guix shell -CW -- guix build -f guix.scm\n"
msgstr "guix shell -CW -- guix build -f guix.scm\n"

msgid "Invoking @command{guix environment}"
msgstr "调用 @command{guix environment}"

msgid "guix environment @var{options} @var{package}@dots{}\n"
msgstr "guix environment @var{options} @var{package}@dots{}\n"

msgid "guix environment guile\n"
msgstr "guix environment guile\n"

msgid "guix environment guile emacs\n"
msgstr "guix environment guile emacs\n"

msgid "guix environment guile -- make -j4\n"
msgstr "guix environment guile -- make -j4\n"

msgid "guix environment --ad-hoc python-numpy python -- python3\n"
msgstr "guix environment --ad-hoc python-numpy python -- python3\n"

msgid "guix environment --pure guix --ad-hoc git strace\n"
msgstr "guix environment --pure guix --ad-hoc git strace\n"

msgid "guix environment --ad-hoc --container guile -- guile\n"
msgstr "guix environment --ad-hoc --container guile -- guile\n"

msgid ""
"guix environment --preserve='^DISPLAY$' --container --network \\\n"
"  --expose=/etc/machine-id \\\n"
"  --expose=/etc/ssl/certs/ \\\n"
"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
"  --ad-hoc eolie nss-certs dbus --  eolie\n"
msgstr ""
"guix environment --preserve='^DISPLAY$' --container --network \\\n"
"  --expose=/etc/machine-id \\\n"
"  --expose=/etc/ssl/certs/ \\\n"
"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
"  --ad-hoc eolie nss-certs dbus --  eolie\n"

msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"

msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"

msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"

msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"

msgid ""
"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
"  -- mpirun @dots{}\n"
msgstr ""
"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
"  -- mpirun @dots{}\n"

msgid ""
"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
"cd $HOME/wd\n"
"guix environment --container --user=foo \\\n"
"     --expose=$HOME/test \\\n"
"     --expose=/tmp/target=$HOME/target\n"
msgstr ""
"# 容器内将映射以下路径:/home/foo/wd、/home/foo/test、/home/foo/target \n"
"cd $HOME/wd\n"
"guix environment --container --user=foo \\\n"
"     --expose=$HOME/test \\\n"
"     --expose=/tmp/target=$HOME/target\n"

msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
msgstr "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"

msgid "Invoking @command{guix pack}"
msgstr "调用 @command{guix pack}"

msgid "guix pack"
msgstr "guix pack"

msgid ""
"$ guix pack guile emacs emacs-geiser\n"
"@dots{}\n"
"/gnu/store/@dots{}-pack.tar.gz\n"
msgstr ""
"$ guix pack guile emacs emacs-geiser\n"
"@dots{}\n"
"/gnu/store/@dots{}-pack.tar.gz\n"

msgid "guix pack -S /opt/gnu/bin=bin guile emacs emacs-geiser\n"
msgstr "guix pack -S /opt/gnu/bin=bin guile emacs emacs-geiser\n"

msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
msgstr "guix pack -f docker -S /bin=bin guile guile-readline\n"

msgid ""
"docker load < @var{file}\n"
"docker run -ti guile-guile-readline /bin/guile\n"
msgstr ""
"docker load < @var{file}\n"
"docker run -ti guile-guile-readline /bin/guile\n"

msgid "guix pack -f squashfs bash guile emacs emacs-geiser\n"
msgstr "guix pack -f squashfs bash guile emacs emacs-geiser\n"

msgid ""
"file=$(guix pack -f appimage --entry-point=bin/guile guile)\n"
"$file --help\n"
msgstr ""
"file=$(guix pack -f appimage --entry-point=bin/guile guile)\n"
"$file --help\n"

msgid "guix pack -f squashfs bash @dots{}\n"
msgstr "guix pack -f squashfs bash @dots{}\n"

msgid "guix pack -f deb -C xz -S /usr/bin/hello=bin/hello hello\n"
msgstr "guix pack -f deb -C xz -S /usr/bin/hello=bin/hello hello\n"

msgid "guix pack -f rpm -R -C xz -S /usr/bin/hello=bin/hello hello\n"
msgstr "guix pack -f rpm -R -C xz -S /usr/bin/hello=bin/hello hello\n"

msgid "sudo rpm --install --prefix=/opt /gnu/store/...-hello.rpm\n"
msgstr "sudo rpm --install --prefix=/opt /gnu/store/...-hello.rpm\n"

msgid "guix pack -f appimage --entry-point=bin/vlc vlc\n"
msgstr "guix pack -f appimage --entry-point=bin/vlc vlc\n"

msgid "guix pack -f appimage --entry-point=bin/hello --relocatable hello\n"
msgstr "guix pack -f appimage --entry-point=bin/hello --relocatable hello\n"

msgid "guix pack -RR -S /mybin=bin bash\n"
msgstr "guix pack -RR -S /mybin=bin bash\n"

msgid ""
"tar xf pack.tar.gz\n"
"./mybin/sh\n"
msgstr ""
"tar xf pack.tar.gz\n"
"./mybin/sh\n"

msgid "performance"
msgstr "performance"

msgid "userns"
msgstr "userns"

msgid "proot"
msgstr "proot"

msgid "fakechroot"
msgstr "fakechroot"

msgid "guix pack -f docker --entry-point=bin/guile guile\n"
msgstr "guix pack -f docker --entry-point=bin/guile guile\n"

msgid ""
"docker load -i pack.tar.gz\n"
"docker run @var{image-id}\n"
msgstr ""
"docker load -i pack.tar.gz\n"
"docker run @var{image-id}\n"

msgid "guix pack -f docker --entry-point=bin/guile --entry-point-argument=\"--help\" guile\n"
msgstr "guix pack -f docker --entry-point=bin/guile --entry-point-argument=\"--help\" guile\n"

msgid "guix pack -f docker --max-layers=100 guile\n"
msgstr "guix pack -f docker --max-layers=100 guile\n"

msgid "If you need a complete toolchain for compiling and linking C or C++ source code, use the @code{gcc-toolchain} package.  This package provides a complete GCC toolchain for C/C++ development, including GCC itself, the GNU C Library (headers and binaries, plus debugging symbols in the @code{debug} output), Binutils, and a linker wrapper."
msgstr "若需完整的 C/C++ 源码编译工具链,请使用 @code{gcc-toolchain} 软件包。该软件包提供完整的 C/C++ 开发 GCC 工具链,包含 GCC 本体、GNU C 语言运行库(含头文件与二进制文件,调试符号位于 @code{debug} 输出)、Binutils 工具集及链接器包装程序。"

msgid "The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches passed to the linker, add corresponding @code{-rpath} arguments, and invoke the actual linker with this new set of arguments.  You can instruct the wrapper to refuse to link against libraries not in the store by setting the @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
msgstr "链接器包装程序的功能是解析传递给链接器的 @code{-L} 和 @code{-l} 选项,添加对应的 @code{-rpath} 参数,并基于新参数集调用实际链接器。通过设置环境变量 @env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} 为 @code{no},可强制包装程序拒绝链接存储区外的库文件。"

msgid "The package @code{gfortran-toolchain} provides a complete GCC toolchain for Fortran development.  For other languages, please use @samp{guix search gcc toolchain} (@pxref{guix-search,, Invoking guix package})."
msgstr "@code{gfortran-toolchain} 软件包提供完整的 Fortran 开发 GCC 工具链。其他语言工具链请使用 @samp{guix search gcc toolchain}(@pxref{guix-search,, Invoking guix package})。"

msgid "Invoking @command{guix git authenticate}"
msgstr "调用 @command{guix git authenticate}"

msgid "guix git authenticate"
msgstr "guix git authenticate"

msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
msgstr "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"

msgid "guix git authenticate [@var{options}@dots{}]\n"
msgstr "guix git authenticate [@var{options}@dots{}]\n"

msgid "source"
msgstr "source"

msgid "build-system"
msgstr "build-system"

msgid "synopsis"
msgstr "synopsis"

msgid "description"
msgstr "description"

msgid "license"
msgstr "license"

msgid "home-page"
msgstr "home-page"

msgid "this-package"
msgstr "this-package"

msgid ""
"(git-reference\n"
"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
"  (commit \"v2.10\"))\n"
msgstr ""
"(git-reference\n"
"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
"  (commit \"v2.10\"))\n"

msgid "revision"
msgstr "revision"

msgid "module"
msgstr "module"

msgid "(append @var{package}@dots{})"
msgstr "(append @var{软件包}@dots{})"

msgid ""
"guix build guix \\\n"
"  --with-branch=guile-gcrypt=master \\\n"
"  --with-debug-info=zlib\n"
msgstr ""
"guix build guix \\\n"
"  --with-branch=guile-gcrypt=master \\\n"
"  --with-debug-info=zlib\n"

msgid "manifest"
msgstr "清单"

msgid "guix package -m manifest.scm\n"
msgstr "guix package -m manifest.scm\n"

msgid ""
"# Write to 'manifest.scm' a manifest corresponding to the\n"
"# default profile, ~/.guix-profile.\n"
"guix package --export-manifest > manifest.scm\n"
msgstr ""
"# 将默认软件集 ~/.guix-profile 对应的清单写入 'manifest.scm' \n"
"guix package --export-manifest > manifest.scm\n"

msgid ""
"# Write a manifest for the packages specified on the command line.\n"
"guix shell --export-manifest gcc-toolchain make git > manifest.scm\n"
msgstr ""
"# 为命令行指定的软件包生成清单。\n"
"guix shell --export-manifest gcc-toolchain make git > manifest.scm\n"

msgid ""
"(use-modules (gnu packages version-control))\n"
"\n"
msgstr ""
"(use-modules (gnu packages version-control))\n"
"\n"

msgid "build system"
msgstr "构建系统"

msgid "build"
msgstr "build"

msgid "cmake-build-system"
msgstr "cmake-build-system"

msgid "bootstrap"
msgstr "bootstrap"

msgid ""
"#!location/of/bin/bash\n"
"export PATH=\"/gnu/.../bar/bin\"\n"
"export CERT_PATH=\"$CERT_PATH$@{CERT_PATH:+:@}/gnu/.../baz/certs:/qux/certs\"\n"
"exec -a $0 location/of/.foo-real \"$@@\"\n"
msgstr ""
"#!location/of/bin/bash\n"
"export PATH=\"/gnu/.../bar/bin\"\n"
"export CERT_PATH=\"$CERT_PATH$@{CERT_PATH:+:@}/gnu/.../baz/certs:/qux/certs\"\n"
"exec -a $0 location/of/.foo-real \"$@@\"\n"

msgid ""
"$ guix shell python python-numpy --pure --search-paths\n"
"export PATH=\"/gnu/store/@dots{}-profile/bin\"\n"
"export GUIX_PYTHONPATH=\"/gnu/store/@dots{}-profile/lib/python3.9/site-packages\"\n"
msgstr ""
"$ guix shell python python-numpy --pure --search-paths\n"
"export PATH=\"/gnu/store/@dots{}-profile/bin\"\n"
"export GUIX_PYTHONPATH=\"/gnu/store/@dots{}-profile/lib/python3.9/site-packages\"\n"

msgid ""
"$ guix shell python python-numpy -- python3\n"
"Python 3.9.6 (default, Jan  1 1970, 00:00:01)\n"
"[GCC 10.3.0] on linux\n"
"Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n"
">>> import numpy\n"
">>> numpy.version.version\n"
"'1.20.3'\n"
msgstr ""
"$ guix shell python python-numpy -- python3\n"
"Python 3.9.6 (default, Jan  1 1970, 00:00:01)\n"
"[GCC 10.3.0] on linux\n"
"Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n"
">>> import numpy\n"
">>> numpy.version.version\n"
"'1.20.3'\n"

msgid ""
"$ guix shell python-numpy --search-paths --pure\n"
"export PATH=\"/gnu/store/@dots{}-profile/bin\"\n"
msgstr ""
"$ guix shell python-numpy --search-paths --pure\n"
"export PATH=\"/gnu/store/@dots{}-profile/bin\"\n"

msgid "guix://master.guix.example.org:1234\n"
msgstr "guix://master.guix.example.org:1234\n"

msgid "ssh://charlie@@guix.example.org:22\n"
msgstr "ssh://charlie@@guix.example.org:22\n"

msgid ""
"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
msgstr ""
"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"

msgid ""
"scheme@@(guile-user)> ,enter-store-monad\n"
"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
"$3 = \"/gnu/store/@dots{}-foo\"\n"
"store-monad@@(guile-user) [1]> ,q\n"
"scheme@@(guile-user)>\n"
msgstr ""
"scheme@@(guile-user)> ,enter-store-monad\n"
"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
"$3 = \"/gnu/store/@dots{}-foo\"\n"
"store-monad@@(guile-user) [1]> ,q\n"
"scheme@@(guile-user)>\n"

msgid "G-expression"
msgstr "G 表达式"

msgid ""
"(@var{file-name} @var{obj})\n"
"(@var{file-name} @var{obj} @var{output})\n"
"(@var{file-name} @var{gexp-input})\n"
"(@var{file-name} @var{store-item})\n"
msgstr ""
"(@var{file-name} @var{obj})\n"
"(@var{file-name} @var{obj} @var{output})\n"
"(@var{file-name} @var{gexp-input})\n"
"(@var{file-name} @var{store-item})\n"

msgid ""
"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
"!#\n"
"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
msgstr ""
"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
"!#\n"
"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"

msgid "Invoking @command{guix repl}"
msgstr "调用 @command{guix repl}"

msgid "guix repl"
msgstr "guix repl"

msgid "guix repl @var{options} [@var{file} @var{args}]\n"
msgstr "guix repl @var{options} [@var{file} @var{args}]\n"

msgid "guix repl my-script.scm\n"
msgstr "guix repl my-script.scm\n"

msgid "guix repl -- my-script.scm --input=foo.txt\n"
msgstr "guix repl -- my-script.scm --input=foo.txt\n"

msgid ""
"@code{#!/usr/bin/env -S guix repl --}\n"
"@code{!#}\n"
msgstr ""
"@code{#!/usr/bin/env -S guix repl --}\n"
"@code{!#}\n"

msgid ""
"@code{#!/usr/bin/env -S guix repl --interactive}\n"
"@code{!#}\n"
msgstr ""
"@code{#!/usr/bin/env -S guix repl --interactive}\n"
"@code{!#}\n"

msgid ""
"$ guix repl\n"
"scheme@@(guile-user)> ,use (gnu packages base)\n"
"scheme@@(guile-user)> coreutils\n"
"$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
msgstr ""
"$ guix repl\n"
"scheme@@(guile-user)> ,use (gnu packages base)\n"
"scheme@@(guile-user)> coreutils\n"
"$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"

msgid "guix install guile guile-readline guile-colorized\n"
msgstr "guix install guile guile-readline guile-colorized\n"

msgid ""
"$ guix repl\n"
"scheme@@(guix-user)> (+ 2 3)\n"
"$1 = 5\n"
"scheme@@(guix-user)> (string-append \"a\" \"b\")\n"
"$2 = \"ab\"\n"
msgstr ""
"$ guix repl\n"
"scheme@@(guix-user)> (+ 2 3)\n"
"$1 = 5\n"
"scheme@@(guix-user)> (string-append \"a\" \"b\")\n"
"$2 = \"ab\"\n"

msgid ""
"scheme@@(guix-user)> ,use (guix)\n"
"scheme@@(guix-user)> ,use (gnu packages base)\n"
msgstr ""
"scheme@@(guix-user)> ,use (guix)\n"
"scheme@@(guix-user)> ,use (gnu packages base)\n"

msgid ""
"scheme@@(guix-user)> ,build coreutils\n"
"$1 = \"/gnu/store/@dots{}-coreutils-8.32-debug\"\n"
"$2 = \"/gnu/store/@dots{}-coreutils-8.32\"\n"
"scheme@@(guix-user)> ,build grep\n"
"$3 = \"/gnu/store/@dots{}-grep-3.6\"\n"
"scheme@@(guix-user)> ,build (computed-file \"x\" #~(mkdir #$output))\n"
"building /gnu/store/@dots{}-x.drv...\n"
"$4 = \"/gnu/store/@dots{}-x\"\n"
"scheme@@(guix-user)> ,use(ice-9 ftw)\n"
"scheme@@(guix-user)> (scandir (string-append $3 \"/bin\"))\n"
"$5 = (\".\" \"..\" \"egrep\" \"fgrep\" \"grep\")\n"
msgstr ""
"scheme@@(guix-user)> ,build coreutils\n"
"$1 = \"/gnu/store/@dots{}-coreutils-8.32-debug\"\n"
"$2 = \"/gnu/store/@dots{}-coreutils-8.32\"\n"
"scheme@@(guix-user)> ,build grep\n"
"$3 = \"/gnu/store/@dots{}-grep-3.6\"\n"
"scheme@@(guix-user)> ,build (computed-file \"x\" #~(mkdir #$output))\n"
"building /gnu/store/@dots{}-x.drv...\n"
"$4 = \"/gnu/store/@dots{}-x\"\n"
"scheme@@(guix-user)> ,use(ice-9 ftw)\n"
"scheme@@(guix-user)> (scandir (string-append $3 \"/bin\"))\n"
"$5 = (\".\" \"..\" \"egrep\" \"fgrep\" \"grep\")\n"

msgid ""
"scheme@@(guix-user)> ,phases grep\n"
"$1 = (modify-phases %standard-phases\n"
"       (add-after 'install 'fix-egrep-and-fgrep\n"
"         (lambda* (#:key outputs #:allow-other-keys)\n"
"           (let* ((out (assoc-ref outputs \"out\"))\n"
"                  (bin (string-append out \"/bin\")))\n"
"             (substitute* (list (string-append bin \"/egrep\")\n"
"                                (string-append bin \"/fgrep\"))\n"
"               ((\"^exec grep\")\n"
"                (string-append \"exec \" bin \"/grep\")))))))\n"
"scheme@@(guix-user)> ,configure-flags findutils\n"
"$2 = (list \"--localstatedir=/var\")\n"
"scheme@@(guix-user)> ,make-flags binutils\n"
"$3 = '(\"MAKEINFO=true\")\n"
msgstr ""
"scheme@@(guix-user)> ,phases grep\n"
"$1 = (modify-phases %standard-phases\n"
"       (add-after 'install 'fix-egrep-and-fgrep\n"
"         (lambda* (#:key outputs #:allow-other-keys)\n"
"           (let* ((out (assoc-ref outputs \"out\"))\n"
"                  (bin (string-append out \"/bin\")))\n"
"             (substitute* (list (string-append bin \"/egrep\")\n"
"                                (string-append bin \"/fgrep\"))\n"
"               ((\"^exec grep\")\n"
"                (string-append \"exec \" bin \"/grep\")))))))\n"
"scheme@@(guix-user)> ,configure-flags findutils\n"
"$2 = (list \"--localstatedir=/var\")\n"
"scheme@@(guix-user)> ,make-flags binutils\n"
"$3 = '(\"MAKEINFO=true\")\n"

msgid ""
"scheme@@(guix-user)> ,lower grep\n"
"$6 = #<derivation /gnu/store/@dots{}-grep-3.6.drv => /gnu/store/@dots{}-grep-3.6 7f0e639115f0>\n"
"scheme@@(guix-user)> ,lower (plain-file \"x\" \"Hello!\")\n"
"$7 = \"/gnu/store/@dots{}-x\"\n"
msgstr ""
"scheme@@(guix-user)> ,lower grep\n"
"$6 = #<derivation /gnu/store/@dots{}-grep-3.6.drv => /gnu/store/@dots{}-grep-3.6 7f0e639115f0>\n"
"scheme@@(guix-user)> ,lower (plain-file \"x\" \"Hello!\")\n"
"$7 = \"/gnu/store/@dots{}-x\"\n"

msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
msgstr "guix build @var{options} @var{package-or-derivation}@dots{}\n"

msgid "guix build emacs guile\n"
msgstr "guix build emacs guile\n"

msgid ""
"guix build --quiet --keep-going \\\n"
"  $(guix package -A | awk '@{ print $1 \"@@\" $2 @}')\n"
msgstr ""
"guix build --quiet --keep-going \\\n"
"  $(guix package -A | awk '@{ print $1 \"@@\" $2 @}')\n"

msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"

msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.4.tar.gz\n"
msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.4.tar.gz\n"

msgid "guix build elogind --with-source=@dots{}/shepherd-0.9.0rc1.tar.gz\n"
msgstr "guix build elogind --with-source=@dots{}/shepherd-0.9.0rc1.tar.gz\n"

msgid ""
"$ git clone git://git.sv.gnu.org/guix.git\n"
"$ guix build guix --with-source=guix@@1.0=./guix\n"
msgstr ""
"$ git clone git://git.sv.gnu.org/guix.git\n"
"$ guix build guix --with-source=guix@@1.0=./guix\n"

msgid "guix build --with-input=guile=guile@@2.2 guix\n"
msgstr "guix build --with-input=guile=guile@@2.2 guix\n"

msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"

msgid "guix install inkscape --with-debug-info=glib\n"
msgstr "guix install inkscape --with-debug-info=glib\n"

msgid ""
"guix build octave-cli \\\n"
"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
msgstr ""
"guix build octave-cli \\\n"
"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"

msgid ""
"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
"           intel-mpi-benchmarks\n"
msgstr ""
"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
"           intel-mpi-benchmarks\n"

msgid ""
"guix build python-numpy \\\n"
"  --with-git-url=python=https://github.com/python/cpython\n"
msgstr ""
"guix build python-numpy \\\n"
"  --with-git-url=python=https://github.com/python/cpython\n"

msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
msgstr "guix build --with-branch=guile-sqlite3=master cuirass\n"

msgid "guix build coreutils --with-patch=glibc=./glibc-frob.patch\n"
msgstr "guix build coreutils --with-patch=glibc=./glibc-frob.patch\n"

msgid "guix build hello --with-configure-flag=hello=--disable-nls\n"
msgstr "guix build hello --with-configure-flag=hello=--disable-nls\n"

msgid ""
"guix build lapack \\\n"
"  --with-configure-flag=lapack=-DBUILD_SHARED_LIBS=OFF\n"
msgstr ""
"guix build lapack \\\n"
"  --with-configure-flag=lapack=-DBUILD_SHARED_LIBS=OFF\n"

msgid "guix build guix --with-latest=guile-json\n"
msgstr "guix build guix --with-latest=guile-json\n"

msgid "guix shell python python-scipy --with-version=python-numpy=1.22.4\n"
msgstr "guix shell python python-scipy --with-version=python-numpy=1.22.4\n"

msgid "guix install --without-tests=python python-notebook\n"
msgstr "guix install --without-tests=python python-notebook\n"

msgid "guix build -D hello guile\n"
msgstr "guix build -D hello guile\n"

msgid "guix build --dependents libgit2\n"
msgstr "guix build --dependents libgit2\n"

msgid "guix build -P1 python-numpy\n"
msgstr "guix build -P1 python-numpy\n"

msgid "package"
msgstr "package"

msgid ""
"$ guix build --sources tzdata\n"
"The following derivations will be built:\n"
"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
msgstr ""
"$ guix build --sources tzdata\n"
"将构建以下派生:\n"
"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"

msgid ""
"$ guix build --sources=transitive tzdata\n"
"The following derivations will be built:\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
"@dots{}\n"
msgstr ""
"$ guix build --sources=transitive tzdata\n"
"将构建以下派生:\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
"@dots{}\n"

msgid ""
"guix build --log-file $(guix build -d guile)\n"
"guix build --log-file $(guix build guile)\n"
"guix build --log-file guile\n"
"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
msgstr ""
"—guix build --log-file $(guix build -d guile)\n"
"guix build --log-file $(guix build guile)\n"
"guix build --log-file guile\n"
"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"

msgid ""
"$ guix build --log-file gdb -s aarch64-linux\n"
"https://@value{SUBSTITUTE-SERVER-1}/log/@dots{}-gdb-7.10\n"
msgstr ""
"$ guix build --log-file gdb -s aarch64-linux\n"
"https://@value{SUBSTITUTE-SERVER-1}/log/@dots{}-gdb-7.10\n"

msgid ""
"$ guix build foo -K\n"
"@dots{} @i{build fails}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ source ./environment-variables\n"
"$ cd foo-1.2\n"
msgstr ""
"$ guix build foo -K\n"
"@dots{} @i{构建失败}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ source ./environment-variables\n"
"$ cd foo-1.2\n"

msgid ""
"$ guix build -K foo\n"
"@dots{}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ guix shell --no-grafts -C -D foo strace gdb\n"
"[env]# source ./environment-variables\n"
"[env]# cd foo-1.2\n"
msgstr ""
"$ guix build -K foo\n"
"@dots{}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ guix shell --no-grafts -C -D foo strace gdb\n"
"[env]# source ./environment-variables\n"
"[env]# cd foo-1.2\n"

msgid "[env]# rm /bin/sh\n"
msgstr "[env]# rm /bin/sh\n"

msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"

msgid "Invoking @command{guix edit}"
msgstr "调用 @command{guix edit}"

msgid "So many packages, so many source files! The @command{guix edit} command facilitates the life of users and packagers by pointing their editor at the source file containing the definition of the specified packages.  For instance:"
msgstr "包山包海!@command{guix edit} 命令为您开启绿色通道——只需指定软件包名,编辑器将直达其定义源码。例如:"

msgid "guix edit gcc@@4.9 vim\n"
msgstr "guix edit gcc@@4.9 vim\n"

msgid "launches the program specified in the @env{VISUAL} or in the @env{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
msgstr "启动 @env{VISUAL} 或 @env{EDITOR} 环境变量指定的编辑器,直接查看 GCC@tie{}4.9.3 与 Vim 的构建配方。"

msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package Modules}), you will be able to edit the package recipes.  In other cases, you will be able to examine the read-only recipes for packages currently in the store."
msgstr "若您使用 Guix Git 代码库(@pxref{Building from Git})或在 @env{GUIX_PACKAGE_PATH} 创建自定义包(@pxref{Package Modules}),即可编辑这些配方。其他情况下仅可查阅软件包存储区中的只读配方。"

msgid "Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-path=@var{directory}} (or in short @option{-L @var{directory}}) allows you to add @var{directory} to the front of the package module search path and so make your own packages visible."
msgstr "命令行选项 @option{--load-path=@var{目录}}(简写 @option{-L @var{目录}})可替代 @env{GUIX_PACKAGE_PATH},将指定目录添加至软件包模块搜索路径前端,使自定义包可见。"

msgid "Invoking @command{guix download}"
msgstr "调用 @command{guix download}"

msgid "guix download"
msgstr "guix download"

msgid "When writing a package definition, developers typically need to download a source tarball, compute its SHA256 hash, and write that hash in the package definition (@pxref{Defining Packages}).  The @command{guix download} tool helps with this task: it downloads a file from the given URI, adds it to the store, and prints both its file name in the store and its SHA256 hash."
msgstr "在软件包定义编写中,开发者通常需下载源码压缩包、计算其 SHA256 哈希值,并将哈希值写入定义文件(@pxref{Defining Packages})。@command{guix download} 工具为此提供支持:从指定 URI 下载文件,将其暂存至存储区,并输出该文件在存储区的路径及 SHA256 哈希值。"

msgid "The fact that the downloaded file is added to the store saves bandwidth: when the developer eventually tries to build the newly defined package with @command{guix build}, the source tarball will not have to be downloaded again because it is already in the store.  It is also a convenient way to temporarily stash files, which may be deleted eventually (@pxref{Invoking guix gc})."
msgstr "文件存入存储区的机制可节省带宽:当开发者最终使用 @command{guix build} 构建新定义包时,源码压缩包无需重复下载,因其已存在于存储区。此机制亦为临时存储文件提供便利,这些文件最终可被垃圾回收(@pxref{Invoking guix gc})。"

msgid "The @command{guix download} command supports the same URIs as used in package definitions.  In particular, it supports @code{mirror://} URIs.  @code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile bindings for GnuTLS are available in the user's environment; when they are not available, an error is raised.  @xref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more information."
msgstr "@command{guix download} 支持包定义中使用的所有 URI 类型,尤其兼容 @code{mirror://} URI。该命令支持 @code{https} URI(基于 TLS 的 HTTP),需满足用户环境中已安装 Guile 的 GnuTLS 绑定库;若未安装将报错(完整安装指南参见 @pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile})。"

msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
msgstr "默认情况下,@command{guix download} 通过 @env{SSL_CERT_DIR} 环境变量指定目录加载 X.509 证书颁发机构的证书以验证 HTTPS 服务器凭证(@pxref{X.509 Certificates}),除非使用 @option{--no-check-certificate} 选项。"

msgid "Alternatively, @command{guix download} can also retrieve a Git repository, possibly a specific commit, tag, or branch."
msgstr "此外,@command{guix download} 亦可获取 Git 仓库,支持指定提交记录、标签或分支。"

msgid "The following options are available:"
msgstr "以下选项可用:"

msgid "--hash=@var{algorithm}"
msgstr "--hash=@var{algorithm}"

msgid "-H @var{algorithm}"
msgstr "-H @var{algorithm}"

msgid "Invoking @command{guix hash}"
msgstr "调用 @command{guix hash}"

msgid "guix hash @var{option} @var{file} ...\n"
msgstr "guix hash @var{option} @var{file} ...\n"

msgid ""
"$ git clone http://example.org/foo.git\n"
"$ cd foo\n"
"$ guix hash -x --serializer=nar .\n"
msgstr ""
"$ git clone http://example.org/foo.git\n"
"$ cd foo\n"
"$ guix hash -x --serializer=nar .\n"

msgid "guix import [@var{global-options}@dots{}] @var{importer} @var{package} [@var{options}@dots{}]\n"
msgstr "guix import [@var{global-options}@dots{}] @var{importer} @var{package} [@var{options}@dots{}]\n"

msgid "guix import gnu hello\n"
msgstr "guix import gnu hello\n"

msgid "guix import pypi itsdangerous\n"
msgstr "guix import pypi itsdangerous\n"

msgid "guix import pypi itsdangerous@@1.1.0\n"
msgstr "guix import pypi itsdangerous@@1.1.0\n"

msgid "guix import gem rails\n"
msgstr "guix import gem rails\n"

msgid "guix import gem rails@@7.0.4\n"
msgstr "guix import gem rails@@7.0.4\n"

msgid "guix import minetest Jeija/mesecons\n"
msgstr "guix import minetest Jeija/mesecons\n"

msgid "guix import minetest mesecons\n"
msgstr "guix import minetest mesecons\n"

msgid "guix import cpan Acme::Boolean\n"
msgstr "guix import cpan Acme::Boolean\n"

msgid "guix import cran Cairo\n"
msgstr "guix import cran Cairo\n"

msgid "guix import cran rasterVis@@0.50.3\n"
msgstr "guix import cran rasterVis@@0.50.3\n"

msgid "guix import cran --archive=bioconductor GenomicRanges\n"
msgstr "guix import cran --archive=bioconductor GenomicRanges\n"

msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
msgstr "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"

msgid "guix import texlive fontspec\n"
msgstr "guix import texlive fontspec\n"

msgid ""
"@{\n"
"  \"name\": \"hello\",\n"
"  \"version\": \"2.10\",\n"
"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"  \"build-system\": \"gnu\",\n"
"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
"  \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
"  \"description\": \"GNU Hello prints a greeting.\",\n"
"  \"license\": \"GPL-3.0+\",\n"
"  \"native-inputs\": [\"gettext\"]\n"
"@}\n"
msgstr ""
"@{\n"
"  \"name\": \"hello\",\n"
"  \"version\": \"2.10\",\n"
"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"  \"build-system\": \"gnu\",\n"
"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
"  \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
"  \"description\": \"GNU Hello prints a greeting.\",\n"
"  \"license\": \"GPL-3.0+\",\n"
"  \"native-inputs\": [\"gettext\"]\n"
"@}\n"

msgid ""
"@{\n"
"  @dots{}\n"
"  \"source\": @{\n"
"    \"method\": \"url-fetch\",\n"
"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"    \"sha256\": @{\n"
"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
"    @}\n"
"  @}\n"
"  @dots{}\n"
"@}\n"
msgstr ""
"@{\n"
"  @dots{}\n"
"  \"source\": @{\n"
"    \"method\": \"url-fetch\",\n"
"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"    \"sha256\": @{\n"
"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
"    @}\n"
"  @}\n"
"  @dots{}\n"
"@}\n"

msgid "guix import json hello.json\n"
msgstr "guix import json hello.json\n"

msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
msgstr "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"

msgid "guix import hackage mtl@@2.1.3.1\n"
msgstr "guix import hackage mtl@@2.1.3.1\n"

msgid "guix import stackage --lts-version=7.18 HTTP\n"
msgstr "guix import stackage --lts-version=7.18 HTTP\n"

msgid "guix import crate blake2-rfc\n"
msgstr "guix import crate blake2-rfc\n"

msgid "guix import crate constant-time-eq@@0.1.0\n"
msgstr "guix import crate constant-time-eq@@0.1.0\n"

msgid "guix import elm elm-explorations/webgl\n"
msgstr "guix import elm elm-explorations/webgl\n"

msgid "guix import elm elm-explorations/webgl@@1.1.3\n"
msgstr "guix import elm elm-explorations/webgl@@1.1.3\n"

msgid "guix import npm-binary buffer-crc32\n"
msgstr "guix import npm-binary buffer-crc32\n"

msgid "guix import npm-binary buffer-crc32@@1.0.0\n"
msgstr "guix import npm-binary buffer-crc32@@1.0.0\n"

msgid "guix import composer phpunit/phpunit\n"
msgstr "guix import composer phpunit/phpunit\n"

msgid "guix import go gopkg.in/yaml.v2\n"
msgstr "guix import go gopkg.in/yaml.v2\n"

msgid "guix import egg sourcehut\n"
msgstr "guix import egg sourcehut\n"

msgid "guix import egg arrays@@1.0\n"
msgstr "guix import egg arrays@@1.0\n"

msgid "guix import hexpm stun\n"
msgstr "guix import hexpm stun\n"

msgid "guix import hexpm cf@@0.3.0\n"
msgstr "guix import hexpm cf@@0.3.0\n"

msgid "Invoking @command{guix refresh}"
msgstr "调用 @command{guix refresh}"

msgid ""
"$ guix refresh\n"
"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
msgstr ""
"$ guix refresh\n"
"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"

msgid ""
"$ guix refresh coreutils guile guile-ssh\n"
"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
msgstr ""
"$ guix refresh coreutils guile guile-ssh\n"
"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"

msgid "partial target version, guix refresh"
msgstr "部分目标版本,guix refresh"

msgid "The @option{--target-version} option accepts partial version prefixes, which can be useful to update to the latest major or major-minor prefixed version:"
msgstr "@option{--target-version} 选项接受部分版本前缀,这在更新到最新的主版本或主次版本时非常有用:"

msgid ""
"$ ./pre-inst-env guix refresh -u \\\n"
"       $(guix package --list-installed | cut -f1)\n"
msgstr ""
"$ ./pre-inst-env guix refresh -u \\\n"
"       $(guix package --list-installed | cut -f1)\n"

msgid ""
"$ guix refresh --recursive coreutils\n"
"gnu/packages/acl.scm:40:13: acl would be upgraded from 2.2.53 to 2.3.1\n"
"gnu/packages/m4.scm:30:12: 1.4.18 is already the latest version of m4\n"
"gnu/packages/xml.scm:68:2: warning: no updater for expat\n"
"gnu/packages/multiprecision.scm:40:12: 6.1.2 is already the latest version of gmp\n"
"@dots{}\n"
msgstr ""
"$ guix refresh --recursive coreutils\n"
"gnu/packages/acl.scm:40:13: acl would be upgraded from 2.2.53 to 2.3.1\n"
"gnu/packages/m4.scm:30:12: 1.4.18 is already the latest version of m4\n"
"gnu/packages/xml.scm:68:2: warning: no updater for expat\n"
"gnu/packages/multiprecision.scm:40:12: 6.1.2 is already the latest version of gmp\n"
"@dots{}\n"

msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
msgstr "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"

msgid "./pre-inst-env guix refresh -s non-core -u\n"
msgstr "./pre-inst-env guix refresh -s non-core -u\n"

msgid "guix refresh -L /path/to/channel -u @var{package}\n"
msgstr "guix refresh -L /path/to/channel -u @var{package}\n"

msgid ""
"$ guix refresh --type=elpa,cran\n"
"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
msgstr ""
"$ guix refresh --type=elpa,cran\n"
"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"

msgid ""
"$ guix refresh --list-dependent flex\n"
"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
"hop@@2.4.0 emacs-geiser@@0.13 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
msgstr ""
"$ guix refresh --list-dependent flex\n"
"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
"hop@@2.4.0 emacs-geiser@@0.13 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"

msgid ""
"$ guix refresh --list-transitive flex\n"
"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
"bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n"
msgstr ""
"$ guix refresh --list-transitive flex\n"
"flex@@2.6.4 依赖以下 25 个软件包:perl@@5.28.0 help2man@@1.47.6\n"
"bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n"

msgid "You can fetch keys to a specific keybox file like this:"
msgstr "您可这样将密钥提取到特定的 keybox 文件:"

msgid ""
"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
msgstr ""
"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"

msgid "When a package signed with an unknown OpenPGP key is encountered, ask the user whether to download it or not."
msgstr "当遇到使用未知 OpenPGP 密钥签名的软件包时,询问用户是否下载。"

msgid "auto"
msgstr "auto"

msgid "Automatically selects the @code{interactive} policy when the standard input is connected to a pseudo terminal (TTY), else @code{always}.  This is the default behavior."
msgstr "当标准输入连接到伪终端(TTY)时,自动选择 @code{interactive} 策略,否则选择 @code{always}。这是默认行为。"

msgid "Invoking @command{guix style}"
msgstr "调用 @command{guix style}"

msgid "guix style"
msgstr "guix style"

msgid "guix style [@var{options}] @var{package}@dots{}\n"
msgstr "guix style [@var{options}] @var{package}@dots{}\n"

msgid "guix style --whole-file @var{file}@dots{}\n"
msgstr "guix style --whole-file @var{file}@dots{}\n"

msgid "guix style -f /etc/config.scm\n"
msgstr "guix style -f /etc/config.scm\n"

msgid "./pre-inst-env guix style coreutils\n"
msgstr "./pre-inst-env guix style coreutils\n"

msgid "inputs"
msgstr "inputs"

msgid "guix style -L ~/my/channel -S inputs whatnot\n"
msgstr "guix style -L ~/my/channel -S inputs whatnot\n"

msgid "guix style -e '(@@ (gnu packages gcc) gcc-5)'\n"
msgstr "guix style -e '(@@ (gnu packages gcc) gcc-5)'\n"

msgid "Invoking @command{guix lint}"
msgstr "调用 @command{guix lint}"

msgid "guix lint @var{options} @var{package}@dots{}\n"
msgstr "guix lint @var{options} @var{package}@dots{}\n"

msgid "guix lint -c archival -e '(@@ (gnu packages guile) guile-3.0)'\n"
msgstr "guix lint -c archival -e '(@@ (gnu packages guile) guile-3.0)'\n"

msgid "Invoking @command{guix size}"
msgstr "调用 @command{guix size}"

msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"

msgid "guix size $(guix system build config.scm)\n"
msgstr "guix size $(guix system build config.scm)\n"

msgid "self"
msgstr "self"

msgid "Invoking @command{guix graph}"
msgstr "调用 @command{guix graph}"

msgid "guix graph @var{options} @var{package}@dots{}\n"
msgstr "guix graph @var{options} @var{package}@dots{}\n"

msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
msgstr "guix graph coreutils | dot -Tpdf > dag.pdf\n"

msgid "guix graph coreutils | xdot -\n"
msgstr "guix graph coreutils | xdot -\n"

msgid "guix graph --type=reverse-package ocaml\n"
msgstr "guix graph --type=reverse-package ocaml\n"

msgid "guix graph --type=bag-emerged coreutils\n"
msgstr "guix graph --type=bag-emerged coreutils\n"

msgid "guix graph -t reverse-bag dune\n"
msgstr "guix graph -t reverse-bag dune\n"

msgid "guix graph -t derivation $(guix system build -d my-config.scm)\n"
msgstr "guix graph -t derivation $(guix system build -d my-config.scm)\n"

msgid "guix graph -t module guile | xdot -\n"
msgstr "guix graph -t module guile | xdot -\n"

msgid "guix graph -t references $(readlink -f ~/.guix-profile)\n"
msgstr "guix graph -t references $(readlink -f ~/.guix-profile)\n"

msgid ""
"$ guix graph --path emacs libunistring\n"
"emacs@@26.3\n"
"mailutils@@3.9\n"
"libunistring@@0.9.10\n"
"$ guix graph --path -t derivation emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3.drv\n"
"/gnu/store/@dots{}-mailutils-3.9.drv\n"
"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
"$ guix graph --path -t references emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3\n"
"/gnu/store/@dots{}-libidn2-2.2.0\n"
"/gnu/store/@dots{}-libunistring-0.9.10\n"
msgstr ""
"$ guix graph --path emacs libunistring\n"
"emacs@@26.3\n"
"mailutils@@3.9\n"
"libunistring@@0.9.10\n"
"$ guix graph --path -t derivation emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3.drv\n"
"/gnu/store/@dots{}-mailutils-3.9.drv\n"
"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
"$ guix graph --path -t references emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3\n"
"/gnu/store/@dots{}-libidn2-2.2.0\n"
"/gnu/store/@dots{}-libunistring-0.9.10\n"

msgid "guix graph -M 2 libreoffice | xdot -f fdp -\n"
msgstr "guix graph -M 2 libreoffice | xdot -f fdp -\n"

msgid ""
"$ guix graph --path -t references libreoffice llvm\n"
"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
"/gnu/store/@dots{}-libepoxy-1.5.4\n"
"/gnu/store/@dots{}-mesa-19.3.4\n"
"/gnu/store/@dots{}-llvm-9.0.1\n"
msgstr ""
"$ guix graph --path -t references libreoffice llvm\n"
"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
"/gnu/store/@dots{}-libepoxy-1.5.4\n"
"/gnu/store/@dots{}-mesa-19.3.4\n"
"/gnu/store/@dots{}-llvm-9.0.1\n"

msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
msgstr "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"

msgid "guix graph git --with-input=openssl=libressl\n"
msgstr "guix graph git --with-input=openssl=libressl\n"

msgid "Invoking @command{guix publish}"
msgstr "调用 @command{guix publish}"

msgid "guix publish @var{options}@dots{}\n"
msgstr "guix publish @var{options}@dots{}\n"

msgid "guix publish\n"
msgstr "guix publish\n"

msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"

msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
msgstr "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"

msgid ""
"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
"        /etc/systemd/system/\n"
"# systemctl start guix-publish && systemctl enable guix-publish\n"
msgstr ""
"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
"        /etc/systemd/system/\n"
"# systemctl start guix-publish && systemctl enable guix-publish\n"

msgid "If your host distro uses the Upstart init system:"
msgstr "如果你的主机的发行版使用 Upstart init 系统:"

msgid ""
"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
"# start guix-publish\n"
msgstr ""
"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
"# start guix-publish\n"

msgid "Invoking @command{guix challenge}"
msgstr "调用 @command{guix challenge}"

msgid ""
"@dots{}\n"
"\n"
msgstr ""
"@dots{}\n"
"\n"

msgid ""
"guix challenge git \\\n"
"  --diff=diffoscope \\\n"
"  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org\"\n"
msgstr ""
"guix challenge git \\\n"
"  --diff=diffoscope \\\n"
"  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org\"\n"

msgid ""
"$ wget -q -O - https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/@dots{}-git-2.5.0 \\\n"
"   | lzip -d | guix archive -x /tmp/git\n"
"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
msgstr ""
"$ wget -q -O - https://@value{SUBSTITUTE-SERVER-1}/nar/lzip/@dots{}-git-2.5.0 \\\n"
"   | lzip -d | guix archive -x /tmp/git\n"
"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"

msgid "guix challenge @var{package}\n"
msgstr "guix challenge @var{package}\n"

msgid "guix challenge @var{options} @var{argument}@dots{}\n"
msgstr "guix challenge @var{options} @var{argument}@dots{}\n"

msgid "Invoking @command{guix copy}"
msgstr "调用 @command{guix copy}"

msgid "guix copy"
msgstr "guix copy"

msgid ""
"guix copy --to=@var{user}@@@var{host} \\\n"
"          coreutils $(readlink -f ~/.guix-profile)\n"
msgstr ""
"guix copy --to=@var{user}@@@var{host} \\\n"
"          coreutils $(readlink -f ~/.guix-profile)\n"

msgid "guix copy --from=@var{host} libreoffice gimp\n"
msgstr "guix copy --from=@var{host} libreoffice gimp\n"

msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
msgstr "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"

msgid "Invoking @command{guix container}"
msgstr "调用 @command{guix container}"

msgid "guix container @var{action} @var{options}@dots{}\n"
msgstr "guix container @var{action} @var{options}@dots{}\n"

msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
msgstr "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"

msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
msgstr "—guix container exec 9001 /run/current-system/profile/bin/bash --login\n"

msgid "Invoking @command{guix weather}"
msgstr "调用 @command{guix weather}"

msgid "guix weather"
msgstr "guix weather"

msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
msgstr "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"

msgid "guix weather -e '(@@@@ (gnu packages rust) rust-bootstrap)'\n"
msgstr "guix weather -e '(@@@@ (gnu packages rust) rust-bootstrap)'\n"

msgid "Invoking @command{guix processes}"
msgstr "调用 @command{guix processes}"

msgid "guix processes"
msgstr "guix processes"

msgid ""
"$ guix processes --format=normalized | \\\n"
"    recsel \\\n"
"    -j Session \\\n"
"    -t ChildProcess \\\n"
"    -p Session.PID,PID \\\n"
"    -e 'Session.ClientCommand ~ \"guix build\"'\n"
"PID: 4435\n"
"Session_PID: 4278\n"
"\n"
msgstr ""
"$ guix processes --format=normalized | \\\n"
"    recsel \\\n"
"    -j Session \\\n"
"    -t ChildProcess \\\n"
"    -p Session.PID,PID \\\n"
"    -e 'Session.ClientCommand ~ \"guix build\"'\n"
"PID: 4435\n"
"Session_PID: 4278\n"
"\n"

msgid ""
"PID: 4554\n"
"Session_PID: 4278\n"
"\n"
msgstr ""
"PID: 4554\n"
"Session_PID: 4278\n"
"\n"

msgid ""
"PID: 4646\n"
"Session_PID: 4278\n"
msgstr ""
"PID: 4646\n"
"Session_PID: 4278\n"

msgid ""
"$ guix build --list-targets\n"
"The available targets are:\n"
"\n"
msgstr ""
"$ guix build --list-targets\n"
"可用的目标有:\n"
"\n"

msgid ""
"   - aarch64-linux-gnu\n"
"   - arm-linux-gnueabihf\n"
"   - avr\n"
"   - i586-pc-gnu\n"
"   - i686-linux-gnu\n"
"   - i686-w64-mingw32\n"
"   - loongarch64-linux-gnu\n"
"   - mips64el-linux-gnu\n"
"   - or1k-elf\n"
"   - powerpc-linux-gnu\n"
"   - powerpc64le-linux-gnu\n"
"   - riscv64-linux-gnu\n"
"   - x86_64-linux-gnu\n"
"   - x86_64-linux-gnux32\n"
"   - x86_64-w64-mingw32\n"
"   - xtensa-ath9k-elf\n"
msgstr ""
"   - aarch64-linux-gnu\n"
"   - arm-linux-gnueabihf\n"
"   - avr\n"
"   - i586-pc-gnu\n"
"   - i686-linux-gnu\n"
"   - i686-w64-mingw32\n"
"   - loongarch64-linux-gnu\n"
"   - mips64el-linux-gnu\n"
"   - or1k-elf\n"
"   - powerpc-linux-gnu\n"
"   - powerpc64le-linux-gnu\n"
"   - riscv64-linux-gnu\n"
"   - x86_64-linux-gnu\n"
"   - x86_64-linux-gnux32\n"
"   - x86_64-w64-mingw32\n"
"   - xtensa-ath9k-elf\n"

msgid ""
"$ guix build --target=aarch64-linux-gnu hello\n"
"/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12\n"
"\n"
msgstr ""
"$ guix build --target=aarch64-linux-gnu hello\n"
"/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12\n"
"\n"

msgid ""
"$ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello\n"
"/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello: ELF\n"
"64-bit LSB executable, ARM aarch64 @dots{}\n"
msgstr ""
"$ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello\n"
"/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello: ELF\n"
"64-bit LSB executable, ARM aarch64 @dots{}\n"

msgid ""
"$ guix build --list-systems\n"
"The available systems are:\n"
"\n"
msgstr ""
"$ guix build --list-systems\n"
"可用的系统有:\n"
"\n"

msgid ""
"   - x86_64-linux [current]\n"
"   - aarch64-linux\n"
"   - armhf-linux\n"
"   - i586-gnu\n"
"   - i686-linux\n"
"   - mips64el-linux\n"
"   - powerpc-linux\n"
"   - powerpc64le-linux\n"
"   - riscv64-linux\n"
"\n"
msgstr ""
"   - x86_64-linux [current]\n"
"   - aarch64-linux\n"
"   - armhf-linux\n"
"   - i586-gnu\n"
"   - i686-linux\n"
"   - mips64el-linux\n"
"   - powerpc-linux\n"
"   - powerpc64le-linux\n"
"   - riscv64-linux\n"
"\n"

msgid ""
"$ guix build --system=i686-linux hello\n"
"/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12\n"
"\n"
msgstr ""
"$ guix build --system=i686-linux hello\n"
"/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12\n"
"\n"

msgid ""
"$ file /gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello\n"
"/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello: ELF\n"
"32-bit LSB executable, Intel 80386 @dots{}\n"
msgstr ""
"$ file /gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello\n"
"/gnu/store/cc0km35s8x2z4pmwkrqqjx46i8b1i3gm-hello-2.12/bin/hello: ELF\n"
"32-bit LSB executable, Intel 80386 @dots{}\n"

msgid ""
"$ guix build --system=armhf-linux hello --check\n"
"/gnu/store/13xz4nghg39wpymivlwghy08yzj97hlj-hello-2.12\n"
msgstr ""
"$ guix build --system=armhf-linux hello --check\n"
"/gnu/store/13xz4nghg39wpymivlwghy08yzj97hlj-hello-2.12\n"

msgid "guix system vm /etc/config.scm\n"
msgstr "guix system vm /etc/config.scm\n"

msgid "/gnu/store/@dots{}-run-vm.sh\n"
msgstr "/gnu/store/@dots{}-run-vm.sh\n"

msgid "sudo herd restart sshd\n"
msgstr "sudo herd restart sshd\n"

msgid "sudo herd status\n"
msgstr "sudo herd status\n"

msgid "sudo herd status sshd\n"
msgstr "sudo herd status sshd\n"

msgid "guix system describe\n"
msgstr "guix system describe\n"

msgid "guix system list-generations\n"
msgstr "guix system list-generations\n"

msgid "sudo guix system roll-back\n"
msgstr "sudo guix system roll-back\n"

msgid "sudo guix system delete-generations 4m\n"
msgstr "sudo guix system delete-generations 4m\n"

msgid "The previous section showed the overall workflow you would follow when administering a Guix System machine (@pxref{Getting Started with the System}).  Let's now see in more detail what goes into the system configuration file."
msgstr "前文概述了管理 Guix 系统设备的基本流程(@pxref{入门})。接下来我们将详述系统配置文件的具体配置内容。"

msgid "The operating system is configured by providing an @code{operating-system} declaration in a file that can then be passed to the @command{guix system} command (@pxref{Invoking guix system}), as we've seen before.  A simple setup, with the default Linux-Libre kernel, initial RAM disk, and a couple of system services added to those provided by default looks like this:"
msgstr "系统配置通过在某文件中定义 @code{operating-system} 声明实现,该文件可传递给 @command{guix system} 命令(@pxref{调用 guix system}),如前所述。一个采用默认 Linux-libre 内核及初始内存盘的基础配置示例,在默认服务基础上增添若干系统服务后,由以下代码构成:"

msgid "operating-system"
msgstr "operating-system"

msgid "os-config-bare-bones.texi"
msgstr "os-config-bare-bones.texi"

msgid "The configuration is declarative.  It is code in the Scheme programming language; the whole @code{(operating-system @dots{})} expression produces a @dfn{record} with a number of @dfn{fields}.  Some of the fields defined above, such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value.  @xref{operating-system Reference}, for details about all the available fields."
msgstr "配置过程采用声明式语法。该代码基于 Scheme 编程语言,整个 @code{(operating-system @dots{})} 表达式将生成包含若干@dfn{字段}的@dfn{记录}(record)。上文定义的部分字段(如 @code{host-name} 与 @code{bootloader})为必填项;而 @code{packages} 和 @code{services} 等字段可省略,此时系统将自动采用默认值。所有可用字段的完整说明详见 @xref{operating-system Reference}。"

msgid "Below we discuss the meaning of some of the most important fields."
msgstr "下文将阐释部分核心字段的深层含义。"

msgid "The configuration file is a Scheme program and you might get the syntax or semantics wrong as you get started.  Syntactic issues such as misplaced parentheses can often be identified by reformatting your file:"
msgstr "配置文件本质上是 Scheme 程序,初学者常会遇到语法或语义错误。诸如括号配对不当等语法问题,通常可通过重新排版文件定位:"

msgid "guix style -f config.scm\n"
msgstr "guix style -f config.scm\n"

msgid "The Cookbook has a short section to get started with the Scheme programming language that explains the fundamentals, which you will find helpful when hacking your configuration.  @xref{A Scheme Crash Course,,, guix-cookbook, GNU Guix Cookbook}."
msgstr "《烹饪书》提供 Scheme 编程语言入门精要,阐述其基础原理。这些知识在配置开发过程中将大有裨益。@xref{Scheme 急就,,, guix-cookbook.zh_CN, GNU Guix 烹饪书}。"

msgid "Bootloader"
msgstr "引导加载器"

msgid "legacy boot, on Intel machines"
msgstr "传统引导, Intel 平台"

msgid "BIOS boot, on Intel machines"
msgstr "BIOS 引导, Intel 平台"

msgid "UEFI boot"
msgstr "UEFI 引导"

msgid "EFI boot"
msgstr "EFI 引导"

msgid "The @code{bootloader} field describes the method that will be used to boot your system.  Machines based on Intel processors can boot in ``legacy'' BIOS mode, as in the example above.  However, more recent machines rely instead on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that case, the @code{bootloader} field should contain something along these lines:"
msgstr "@code{bootloader} 字段定义系统引导方式。基于 Intel 处理器的设备可采用“传统” BIOS 模式引导(如上例所示),而现代设备通常依赖 @dfn{统一可扩展固件接口}(Unified Extensible Firmware Interface,UEFI)实现引导。此时,@code{bootloader} 字段需采用类似以下结构:"

msgid ""
"(bootloader-configuration\n"
"  (bootloader grub-efi-bootloader)\n"
"  (targets '(\"/boot/efi\")))\n"
msgstr ""
"(bootloader-configuration\n"
"  (bootloader grub-efi-bootloader)\n"
"  (targets '(\"/boot/efi\")))\n"

msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
msgstr "@xref{Bootloader Configuration},获取完整配置选项。"

msgid "Globally-Visible Packages"
msgstr "全局可见软件包"

msgid "%base-packages"
msgstr "%base-packages"

msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @env{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}).  The @code{%base-packages} variable provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the @command{mg} lightweight text editor, @command{find}, @command{grep}, etc.  The example above adds GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module (@pxref{Package Modules}).  The @code{(list package output)} syntax can be used to add a specific output of a package:"
msgstr "@code{packages} 字段定义系统中全局可见的软件包,除各用户专属软件集外(@pxref{调用 guix package}),所有账户均可访问——即每个用户的 @env{PATH} 环境变量均包含这些软件。@code{%base-packages} 变量提供基础用户及管理任务所需的全部工具,含 GNU 核心工具集、网络工具集、轻量文本编辑器 @command{mg}、@command{find}、@command{grep} 等。上例通过 @code{(gnu packages screen)} 模块(@pxref{软件包模块})额外添加了 GNU@tie{}Screen。采用 @code{(list package output)} 语法可添加软件包的特定输出:"

msgid ""
"(use-modules (gnu packages))\n"
"(use-modules (gnu packages dns))\n"
"\n"
msgstr ""
"(use-modules (gnu packages))\n"
"(use-modules (gnu packages dns))\n"
"\n"

msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (cons (list isc-bind \"utils\")\n"
"                  %base-packages)))\n"
msgstr ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (cons (list isc-bind \"utils\")\n"
"                  %base-packages)))\n"

msgid "specification->package"
msgstr "specification->package"

msgid "Referring to packages by variable name, like @code{isc-bind} above, has the advantage of being unambiguous; it also allows typos and such to be diagnosed right away as ``unbound variables''.  The downside is that one needs to know which module defines which package, and to augment the @code{use-package-modules} line accordingly.  To avoid that, one can use the @code{specification->package} procedure of the @code{(gnu packages)} module, which returns the best package for a given name or name and version:"
msgstr "通过变量名引用软件包(如上文的 @code{isc-bind})优势在于明确无歧义,同时拼写错误等问题可即时诊断为“未绑定变量”。其局限在于需知晓定义各软件包的对应模块,并需相应扩展 @code{use-package-modules} 声明。若需规避此限制,可调用 @code{(gnu packages)} 模块的 @code{specification->package} 过程,该函数将根据给定名称(或名称加版本号)返回最优匹配的软件包:"

msgid ""
"(use-modules (gnu packages))\n"
"\n"
msgstr ""
"(use-modules (gnu packages))\n"
"\n"

msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (append (map specification->package\n"
"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
"                    %base-packages)))\n"
msgstr ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (append (map specification->package\n"
"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
"                    %base-packages)))\n"

msgid "specifications->packages"
msgstr "specifications->packages"

msgid "When a package has more than one output it can be a challenge to refer to a specific output instead of just to the standard @code{out} output.  For these situations one can use the @code{specifications->packages} procedure from the @code{(gnu packages)} module.  For example:"
msgstr "当软件包存在多输出时,精确引用特定输出(而非标准 @code{out} 输出)颇具挑战性。此类场景可借助 @code{(gnu packages)} 模块的 @code{specifications->packages} 过程实现,例如:"

msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (append (specifications->packages\n"
"                      '(\"git\" \"git:send-email\"))\n"
"                    %base-packages)))\n"
"\n"
msgstr ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (append (specifications->packages\n"
"                      '(\"git\" \"git:send-email\"))\n"
"                    %base-packages)))\n"
"\n"

msgid "System Services"
msgstr "系统服务"

msgid "services"
msgstr "服务"

msgid "%base-services"
msgstr "%base-services"

msgid "The @code{services} field lists @dfn{system services} to be made available when the system starts (@pxref{Services}).  The @code{operating-system} declaration above specifies that, in addition to the basic services, we want the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-service-type} arranges so that @command{sshd} is started with the right command-line options, possibly with supporting configuration files generated as needed (@pxref{Defining Services})."
msgstr "@code{services} 字段定义系统启动时启用的 @dfn{系统服务}(@pxref{服务})。上例的 operating-system 声明表明:除基础服务外,系统需在 2222 端口监听 OpenSSH 安全 Shell 守护进程(@pxref{网络服务, @code{openssh-service-type}})。底层实现中,@code{openssh-service-type} 确保以正确的命令行参数启动 @command{sshd},并按需生成辅助配置文件(@pxref{定义服务})。"

msgid "customization, of services"
msgstr "服务之自定义"

msgid "modify-services"
msgstr "modify-services"

msgid "Occasionally, instead of using the base services as is, you will want to customize them.  To do this, use @code{modify-services} (@pxref{Service Reference, @code{modify-services}}) to modify the list."
msgstr "有时您需定制而非直接使用基础服务。此时请通过 @code{modify-services} 调整服务列表(@pxref{服务参考, @code{modify-services}})。"

msgid "auto-login to TTY"
msgstr "自动登录到 TTY"

msgid ""
"guix system shepherd-graph /etc/config.scm | \\\n"
"  guix shell xdot -- xdot -\n"
msgstr ""
"guix system shepherd-graph /etc/config.scm | \\\n"
"  guix shell xdot -- xdot -\n"

msgid ""
"guix system extension-graph /etc/config.scm | \\\n"
"  guix shell xdot -- xdot -\n"
msgstr ""
"guix system extension-graph /etc/config.scm | \\\n"
"  guix shell xdot -- xdot -\n"

msgid ""
"$ guix repl\n"
"scheme@@(guix-user)> ,use (gnu)\n"
"scheme@@(guix-user)> (define os (load \"config.scm\"))\n"
"scheme@@(guix-user)> ,pp (map service-kind (operating-system-services os))\n"
"$1 = (#<service-type localed cabba93>\n"
"      @dots{})\n"
msgstr ""
"$ guix repl\n"
"scheme@@(guix-user)> ,use (gnu)\n"
"scheme@@(guix-user)> (define os (load \"config.scm\"))\n"
"scheme@@(guix-user)> ,pp (map service-kind (operating-system-services os))\n"
"$1 = (#<service-type localed cabba93>\n"
"      @dots{})\n"

msgid "@code{operating-system} Reference"
msgstr "@code{operating-system} 参考"

msgid "bootloader"
msgstr "bootloader"

msgid "List of user accounts and groups.  @xref{User Accounts}."
msgstr "用户账户与用户组列表。 @xref{User Accounts}。"

msgid "operating-system-essential-services"
msgstr "operating-system-essential-services"

msgid "this-operating-system"
msgstr "this-operating-system"

msgid "The Btrfs has special features, such as subvolumes, that merit being explained in more details.  The following section attempts to cover basic as well as complex uses of a Btrfs file system with the Guix System."
msgstr "Btrfs 具备子卷等特殊功能,值得详细阐述。下文将涵盖 Guix 系统中 Btrfs 文件系统的基础应用与复杂场景。"

msgid "In its simplest usage, a Btrfs file system can be described, for example, by:"
msgstr "最简配置中,Btrfs 文件系统可通过如下形式定义:"

msgid ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (type \"btrfs\")\n"
"  (device (file-system-label \"my-home\")))\n"
msgstr ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (type \"btrfs\")\n"
"  (device (file-system-label \"my-home\")))\n"

msgid "The example below is more complex, as it makes use of a Btrfs subvolume, named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-pool}, and is located on an encrypted device (hence the dependency on @code{mapped-devices}):"
msgstr "以下示例更为复杂,因其使用了名为 @code{rootfs} 的 Btrfs 子卷。父级 Btrfs 文件系统标签为 @code{my-btrfs-pool},且位于加密设备上(故需依赖 @code{mapped-devices}):"

msgid ""
"(file-system\n"
"  (device (file-system-label \"my-btrfs-pool\"))\n"
"  (mount-point \"/\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=rootfs\")\n"
"  (dependencies mapped-devices))\n"
msgstr ""
"(file-system\n"
"  (device (file-system-label \"my-btrfs-pool\"))\n"
"  (mount-point \"/\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=rootfs\")\n"
"  (dependencies mapped-devices))\n"

msgid "Some bootloaders, for example GRUB, only mount a Btrfs partition at its top level during the early boot, and rely on their configuration to refer to the correct subvolume path within that top level.  The bootloaders operating in this way typically produce their configuration on a running system where the Btrfs partitions are already mounted and where the subvolume information is readily available.  As an example, @command{grub-mkconfig}, the configuration generator command shipped with GRUB, reads @file{/proc/self/mountinfo} to determine the top-level path of a subvolume."
msgstr "部分引导加载器(如 GRUB)在早期启动阶段仅挂载 Btrfs 分区的顶级目录,并依赖其配置指向该层级内的正确子卷路径。此类引导程序通常在已挂载 Btrfs 分区且子卷信息可用的运行中系统上生成配置。例如,GRUB 附带的配置生成命令 @command{grub-mkconfig} 会读取 @file{/proc/self/mountinfo} 以确定子卷的顶级路径。"

msgid "The Guix System produces a bootloader configuration using the operating system configuration as its sole input; it is therefore necessary to extract the subvolume name on which @file{/gnu/store} lives (if any)  from that operating system configuration.  To better illustrate, consider a subvolume named 'rootfs' which contains the root file system data.  In such situation, the GRUB bootloader would only see the top level of the root Btrfs partition, e.g.:"
msgstr "Guix 系统完全基于操作系统配置@footnote{原文为 “operating system configuration”。}生成引导加载器配置,因此必须从该配置中提取 @file{/gnu/store} 所在的子卷名称(若存在)。为清晰说明,假设包含根文件系统数据的子卷名为 “rootfs”。此场景中,GRUB 引导加载器仅能访问根 Btrfs 分区的顶级目录,例如:"

msgid ""
"/                   (top level)\n"
"├── rootfs          (subvolume directory)\n"
"    ├── gnu         (normal directory)\n"
"        ├── store   (normal directory)\n"
"[...]\n"
msgstr ""
"/                   (顶层)\n"
"├── rootfs(子卷目录)\n"
"    ├── gnu(普通目录)\n"
"        ├── store(普通目录)\n"
"[...]\n"

msgid "Thus, the subvolume name must be prepended to the @file{/gnu/store} path of the kernel, initrd binaries and any other files referred to in the GRUB configuration that must be found during the early boot."
msgstr "因此,必须将子卷名添加至 GRUB 配置中所有需在早期启动阶段访问的文件路径前,包括内核的 @file{/gnu/store} 路径、初始化内存盘二进制文件及其他相关文件。"

msgid "The next example shows a nested hierarchy of subvolumes and directories:"
msgstr "下例展示子卷与目录的嵌套层级结构:"

msgid ""
"/                   (top level)\n"
"├── rootfs          (subvolume)\n"
"    ├── gnu         (normal directory)\n"
"        ├── store   (subvolume)\n"
"[...]\n"
msgstr ""
"/                   (顶层)\n"
"├── rootfs(子卷)\n"
"    ├── gnu(普通目录)\n"
"        ├── store(子卷)\n"
"[...]\n"

msgid "This scenario would work without mounting the 'store' subvolume.  Mounting 'rootfs' is sufficient, since the subvolume name matches its intended mount point in the file system hierarchy.  Alternatively, the 'store' subvolume could be referred to by setting the @code{subvol} option to either @code{/rootfs/gnu/store} or @code{rootfs/gnu/store}."
msgstr "此场景无需挂载 “store” 子卷。挂载 “rootfs” 即可满足需求,因子卷名称与其在文件系统层级中的目标挂载点匹配。或者,可通过将 @code{subvol} 选项设为 @code{/rootfs/gnu/store} 或 @code{rootfs/gnu/store} 来引用 “store” 子卷。"

msgid "Finally, a more contrived example of nested subvolumes:"
msgstr "最后展示一个更复杂的嵌套子卷示例:"

msgid ""
"/                           (top level)\n"
"├── root-snapshots          (subvolume)\n"
"    ├── root-current        (subvolume)\n"
"        ├── guix-store      (subvolume)\n"
"[...]\n"
msgstr ""
"/                           (顶层)\n"
"├── root-snapshots(子卷)\n"
"    ├── root-current(子卷)\n"
"        ├── guix-store(子卷)\n"
"[...]\n"

msgid "Here, the 'guix-store' subvolume doesn't match its intended mount point, so it is necessary to mount it.  The subvolume must be fully specified, by passing its file name to the @code{subvol} option.  To illustrate, the 'guix-store' subvolume could be mounted on @file{/gnu/store} by using a file system declaration such as:"
msgstr "此处 “guix-store” 子卷与其预期挂载点不匹配,故必须显式挂载。需通过向 @code{subvol} 选项传递完整文件名来指定该子卷。例如,可通过如下文件系统声明将 “guix-store” 子卷挂载至 @file{/gnu/store}:"

msgid ""
"(file-system\n"
"  (device (file-system-label \"btrfs-pool-1\"))\n"
"  (mount-point \"/gnu/store\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
"compress-force=zstd,space_cache=v2\"))\n"
msgstr ""
"(file-system\n"
"  (device (file-system-label \"btrfs-pool-1\"))\n"
"  (mount-point \"/gnu/store\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
"compress-force=zstd,space_cache=v2\"))\n"

msgid "cryptsetup luksUUID /dev/sda3\n"
msgstr "cryptsetup luksUUID /dev/sda3\n"

msgid ""
"(kernel-arguments\n"
"  (cons* \"resume=/dev/mapper/my-swap\"\n"
"         %default-kernel-arguments))\n"
msgstr ""
"(kernel-arguments\n"
"  (cons* \"resume=/dev/mapper/my-swap\"\n"
"         %default-kernel-arguments))\n"

msgid "User accounts and groups are entirely managed through the @code{operating-system} declaration.  They are specified with the @code{user-account} and @code{user-group} forms:"
msgstr "用户账户与组完全通过 @code{operating-system} 声明管理,通过 @code{user-account} 和 @code{user-group} 形式指定:"

msgid ""
"(user-account\n"
"  (name \"alice\")\n"
"  (group \"users\")\n"
"  (supplementary-groups '(\"wheel\"   ;allow use of sudo, etc.\n"
"                          \"audio\"   ;sound card\n"
"                          \"video\"   ;video devices such as webcams\n"
"                          \"cdrom\")) ;the good ol' CD-ROM\n"
"  (comment \"Bob's sister\"))\n"
msgstr ""
"(user-account\n"
"  (name \"HanMeimei\")\n"
"  (group \"users\")\n"
"  (supplementary-groups '(\"wheel\"   ;允许使用 sudo 等\n"
"                          \"audio\"   ;声卡\n"
"                          \"video\"   ;视频设备,如网络摄像头\n"
"                          \"cdrom\")) ;老式 CD-ROM\n"
"  (comment \"李华的同学\"))\n"

msgid "Here's a user account that uses a different shell and a custom home directory (the default would be @file{\"/home/bob\"}):"
msgstr "以下账户使用不同 Shell 和自定义主目录(默认应为 @file{“/home/LiHua”}):"

msgid ""
"(user-account\n"
"  (name \"bob\")\n"
"  (group \"users\")\n"
"  (comment \"Alice's bro\")\n"
"  (shell (file-append zsh \"/bin/zsh\"))\n"
"  (home-directory \"/home/robert\"))\n"
msgstr ""
"(user-account\n"
"  (name \"LiHua\")\n"
"  (group \"users\")\n"
"  (comment \"韩梅梅的同学\")\n"
"  (shell (file-append zsh \"/bin/zsh\"))\n"
"  (home-directory \"/home/XiaoHua\"))\n"

msgid "When booting or upon completion of @command{guix system reconfigure}, the system ensures that only the user accounts and groups specified in the @code{operating-system} declaration exist, and with the specified properties.  Thus, account or group creations or modifications made by directly invoking commands such as @command{useradd} are lost upon reconfiguration or reboot.  This ensures that the system remains exactly as declared."
msgstr "系统在启动或执行 @command{guix system reconfigure} 后,会确保仅存在 @code{operating-system} 声明中指定的用户账户和组,且属性完全匹配。因此,直接调用如 @command{useradd} 等命令创建的账户或组将在重构或重启后失效,从而确保系统状态与声明严格一致。"

msgid "{Data Type} user-account"
msgstr "{数据类型} user-account"

msgid "Objects of this type represent user accounts.  The following members may be specified:"
msgstr "该类型对象表示用户账户,可指定以下成员属性:"

msgid "The name of the user account."
msgstr "用户帐户之名称。"

msgid "group"
msgstr "group"

msgid "groups"
msgstr "用户组"

msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
msgstr "此字段指定账户所属主用户组的名称(字符串)或标识符(数字)。"

msgid "@code{supplementary-groups} (default: @code{'()})"
msgstr "@code{supplementary-groups}(默认值:@code{'()})"

msgid "Optionally, this can be defined as a list of group names that this account belongs to."
msgstr "可选,定义为该账户所属的附加用户组名称列表。"

msgid "@code{uid} (default: @code{#f})"
msgstr "@code{uid}(默认值:@code{#f})"

msgid "This is the user ID for this account (a number), or @code{#f}.  In the latter case, a number is automatically chosen by the system when the account is created."
msgstr "此表示账户的用户 ID(数字),或设为 @code{#f}。若为后者,系统将在创建账户时自动分配数字 ID。"

msgid "@code{comment} (default: @code{\"\"})"
msgstr "@code{comment}(默认值:@code{\"\"})"

msgid "A comment about the account, such as the account owner's full name."
msgstr "账户备注信息(如账户持有者全名)。"

msgid "Note that, for non-system accounts, users are free to change their real name as it appears in @file{/etc/passwd} using the @command{chfn} command.  When they do, their choice prevails over the system administrator's choice; reconfiguring does @emph{not} change their name."
msgstr "需注意:对于非系统账户,用户可通过 @command{chfn} 命令自由修改 @file{/etc/passwd} 中显示的全名。用户修改后,其选择将覆盖系统管理员设置;系统重配置@emph{不会}修改该名称。"

msgid "home-directory"
msgstr "home-directory"

msgid "This is the name of the home directory for the account."
msgstr "此乃是该帐户家目录名称。"

msgid "@code{create-home-directory?} (default: @code{#t})"
msgstr "@code{create-home-directory?}(默认值:@code{#t})"

msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
msgstr "指示如果该帐户家目录尚不存在,是否应创建该家目录。"

msgid "@code{shell} (default: Bash)"
msgstr "@code{shell}(默认值:Bash)"

msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions}).  For example, you would refer to the Bash executable like this:"
msgstr "此为 G 表达式,指向用作 Shell 的程序文件名(@pxref{G-Expressions})。例如引用 Bash 可执行文件如下:"

msgid "(file-append bash \"/bin/bash\")\n"
msgstr "(file-append bash \"/bin/bash\")\n"

msgid "... and to the Zsh executable like that:"
msgstr "……引用 Zsh 可执行文件如下:"

msgid "(file-append zsh \"/bin/zsh\")\n"
msgstr "(file-append zsh \"/bin/zsh\")\n"

msgid "@code{system?} (default: @code{#f})"
msgstr "@code{system?}(默认值:@code{#f})"

msgid "This Boolean value indicates whether the account is a ``system'' account.  System accounts are sometimes treated specially; for instance, graphical login managers do not list them."
msgstr "此布尔值表示账户是否为“系统”@footnote{原词为 “system”。}账户。系统账户通常被特殊处理:例如图形登录管理器不会显示此类账户。"

msgid "user-account-password"
msgstr "user-account-password"

msgid "password, for user accounts"
msgstr "用户账户之密码"

msgid "You would normally leave this field to @code{#f}, initialize user passwords as @code{root} with the @command{passwd} command, and then let users change it with @command{passwd}.  Passwords set with @command{passwd} are of course preserved across reboot and reconfiguration."
msgstr "通常应将此字段设为 @code{#f},由管理员通过 @command{passwd} 初始化用户密码,随后用户可自行使用 @command{passwd} 修改。通过 @command{passwd} 设置的密码在重启或重配置后永久保留。"

msgid "If you @emph{do} want to set an initial password for an account, then this field must contain the encrypted password, as a string.  You can use the @code{crypt} procedure for this purpose:"
msgstr "若@emph{需}为账户设置初始密码,该字段必须包含加密后的密码字符串。可使用 @code{crypt} 过程生成:"

msgid ""
"(user-account\n"
"  (name \"charlie\")\n"
"  (group \"users\")\n"
"\n"
msgstr ""
"(user-account\n"
"  (name \"LiMing\")\n"
"  (group \"users\")\n"
"\n"

msgid ""
"  ;; Specify a SHA-512-hashed initial password.\n"
"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
msgstr ""
"  ;; 指定一个 SHA-512 哈希的初始密码。\n"
"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"

msgid "The hash of this initial password will be available in a file in @file{/gnu/store}, readable by all the users, so this method must be used with care."
msgstr "此初始密码的哈希值将存储于 @file{/gnu/store} 的公开(所有用户均可读取)可读文件中,故使用时需谨慎。"

msgid "@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for more information on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
msgstr "密码加密机制详见 @xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual},@code{crypt} 过程说明参见 @ref{Encryption,,, guile, GNU Guile Reference Manual}。"

msgid "User group declarations are even simpler:"
msgstr "用户组声明甚至更简单:"

msgid "(user-group (name \"students\"))\n"
msgstr "(user-group (name \"students\"))\n"

msgid "{Data Type} user-group"
msgstr "{数据类型} user-group"

msgid "This type is for, well, user groups.  There are just a few fields:"
msgstr "这类型嘛,专管用户组那点事儿。字段不多,就这几个:"

msgid "The name of the group."
msgstr "用户组之名称。"

msgid "@code{id} (default: @code{#f})"
msgstr "@code{id} (默认值:@code{#f})"

msgid "The group identifier (a number).  If @code{#f}, a new number is automatically allocated when the group is created."
msgstr "组标识符(数字)。若设为 @code{#f},创建组时将自动分配数字标识符。"

msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
msgstr "布尔值,表示是否为“系统”组。系统组具有较小的数字标识符。"

msgid "What, user groups can have a password? Well, apparently yes.  Unless @code{#f}, this field specifies the password of the group."
msgstr "啥玩意儿?用户组还能设密码?对的呢!除非填 @code{#f},否则此字段指定该组的密码。"

msgid "For convenience, a variable lists all the basic user groups one may expect:"
msgstr "为图方便,此变量列出用户可能期望的所有基础用户组:"

msgid "%base-groups"
msgstr "%base-groups"

msgid "This is the list of basic user groups that users and/or packages expect to be present on the system.  This includes groups such as ``root'', ``wheel'', and ``users'', as well as groups used to control access to specific devices such as ``audio'', ``disk'', and ``cdrom''."
msgstr "此列表包含用户和(或)软件包要求系统必须存在的基础用户组。具体涵盖 “root”“wheel”“users” 等账户管理组,以及用于控制特定设备访问权限的组,如 “audio”“disk” 与 “cdrom”。"

msgid "%base-user-accounts"
msgstr "%base-user-accounts"

msgid "setxkbmap us dvorak\n"
msgstr "setxkbmap us dvorak\n"

msgid "loadkeys fr-bepo\n"
msgstr "loadkeys fr-bepo\n"

msgid "# herd status\n"
msgstr "# herd status\n"

msgid ""
"# herd doc nscd\n"
"Run libc's name service cache daemon (nscd).\n"
"\n"
msgstr ""
"# herd doc nscd\n"
"Run libc's name service cache daemon (nscd).\n"
"\n"

msgid ""
"# herd configuration sshd\n"
"/gnu/store/@dots{}-sshd_config\n"
msgstr ""
"# herd configuration sshd\n"
"/gnu/store/@dots{}-sshd_config\n"

msgid ""
"127.0.0.1 localhost @var{host-name}\n"
"::1       localhost @var{host-name}\n"
msgstr ""
"127.0.0.1 localhost @var{host-name}\n"
"::1       localhost @var{host-name}\n"

msgid "herd invalidate nscd hosts\n"
msgstr "herd invalidate nscd hosts\n"

msgid "syslog, with external syslogd"
msgstr "syslog,以及额外的 syslogd"

msgid "# herd reload syslog\n"
msgstr "# herd reload syslog\n"

msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
msgstr "herd set-http-proxy guix-daemon http://localhost:8118\n"

msgid "herd set-http-proxy guix-daemon\n"
msgstr "herd set-http-proxy guix-daemon\n"

msgid "Command to be started by @command{agreety} on successful login."
msgstr "成功登录时由 @command{agreety} 启动的命令。"

msgid "herd trigger garbage-collection\n"
msgstr "herd trigger garbage-collection\n"

msgid "# herd schedule mcron\n"
msgstr "# herd schedule mcron\n"

msgid "# herd schedule mcron 10\n"
msgstr "# herd schedule mcron 10\n"

msgid "directory"
msgstr "directory"

msgid "input"
msgstr "input"

msgid "debug?"
msgstr "debug?"

msgid "Increment the IP address by the given number.  By default this is zero."
msgstr "通过给定的数字递增 IP 地址。默认情况下,这个值为零。"

msgid ""
"ip address add 10.0.2.15/24 dev eno1\n"
"ip address add 2001:123:4567:101::1/64 dev eno1\n"
"ip route add default via inet 10.0.2.2\n"
"ip route add default via inet6 2020:321:4567:42::1\n"
msgstr ""
"ip address add 10.0.2.15/24 dev eno1\n"
"ip address add 2001:123:4567:101::1/64 dev eno1\n"
"ip route add default via inet 10.0.2.2\n"
"ip route add default via inet6 2020:321:4567:42::1\n"

msgid "destination"
msgstr "destination"

msgid ""
"nmcli connection add type tun \\\n"
" connection.interface-name tap0 \\\n"
" tun.mode tap tun.owner $(id -u) \\\n"
" ipv4.method shared \\\n"
" ipv4.addresses 172.28.112.1/24\n"
msgstr ""
"nmcli connection add type tun \\\n"
" connection.interface-name tap0 \\\n"
" tun.mode tap tun.owner $(id -u) \\\n"
" ipv4.method shared \\\n"
" ipv4.addresses 172.28.112.1/24\n"

msgid "This is the service type to set up a nftables configuration.  nftables is a netfilter project that aims to replace the iptables, ip6tables, arptables and ebtables framework.  It provides a new packet filtering framework, a new user-space utility @command{nft}, and a compatibility layer for iptables.  This service comes with a default ruleset, @code{%default-nftables-ruleset}, that rejects all incoming connections except those to the SSH port 22 (TCP).  To use it, simply write:"
msgstr "这是设置 nftables 配置的服务类型。nftables 是一个 netfilter 项目,旨在替代现有的iptables、ip6tables、arptables 和 ebtables 框架。它提供了一个新的数据包过滤框架,一个新的用户空间工具@command{nft},以及 iptables 的兼容层。该服务附带默认规则集@code{%default-nftables-ruleset},拒绝所有传入连接,除了 SSH 端口 22(TCP)的连接。要使用它,只需写:"

msgid ""
"(ntp-server\n"
" (type 'server)\n"
" (address \"some.ntp.server.org\")\n"
" (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
msgstr ""
"(ntp-server\n"
" (type 'server)\n"
" (address \"some.ntp.server.org\")\n"
" (options `(iburst (version 3) (maxpoll 16) prefer))))\n"

msgid "XMLLINT_INDENT=\"    \" xmllint --format /path/to/new/config.xml | diff /path/to/old/config.xml -\n"
msgstr "XMLLINT_INDENT=\"    \" xmllint --format /path/to/new/config.xml | diff /path/to/old/config.xml -\n"

msgid "path"
msgstr "path"

msgid ""
"(service dropbear-service-type (dropbear-configuration\n"
"                                 (port-number 1234)))\n"
msgstr ""
"(service dropbear-service-type (dropbear-configuration\n"
"                                 (port-number 1234)))\n"

msgid "avahi-browse _workstation._tcp\n"
msgstr "avahi-browse _workstation._tcp\n"

msgid ""
"(service keepalived-service-type\n"
"         (keepalived-configuration\n"
"           (config-file (local-file \"keepalived-master.conf\"))))\n"
msgstr ""
"(service keepalived-service-type\n"
"         (keepalived-configuration\n"
"           (config-file (local-file \"keepalived-master.conf\"))))\n"

msgid ""
"vrrp_instance my-group @{\n"
"  state MASTER\n"
"  interface enp9s0\n"
"  virtual_router_id 100\n"
"  priority 100\n"
"  unicast_peer @{ 10.0.0.2 @}\n"
"  virtual_ipaddress @{\n"
"    10.0.0.4/24\n"
"  @}\n"
"@}\n"
msgstr ""
"vrrp_instance my-group @{\n"
"  state MASTER\n"
"  interface enp9s0\n"
"  virtual_router_id 100\n"
"  priority 100\n"
"  unicast_peer @{ 10.0.0.2 @}\n"
"  virtual_ipaddress @{\n"
"    10.0.0.4/24\n"
"  @}\n"
"@}\n"

msgid ""
"(service keepalived-service-type\n"
"         (keepalived-configuration\n"
"          (config-file (local-file \"keepalived-backup.conf\"))))\n"
msgstr ""
"(service keepalived-service-type\n"
"         (keepalived-configuration\n"
"          (config-file (local-file \"keepalived-backup.conf\"))))\n"

msgid ""
"vrrp_instance my-group @{\n"
"  state BACKUP\n"
"  interface enp9s0\n"
"  virtual_router_id 100\n"
"  priority 99\n"
"  unicast_peer @{ 10.0.0.3 @}\n"
"  virtual_ipaddress @{\n"
"    10.0.0.4/24\n"
"  @}\n"
"@}\n"
msgstr ""
"vrrp_instance my-group @{\n"
"  state BACKUP\n"
"  interface enp9s0\n"
"  virtual_router_id 100\n"
"  priority 99\n"
"  unicast_peer @{ 10.0.0.3 @}\n"
"  virtual_ipaddress @{\n"
"    10.0.0.4/24\n"
"  @}\n"
"@}\n"

msgid "@code{display} (default @code{\":0\"})"
msgstr "@code{display}(默认值:@code{\":0\"})"

msgid "@code{vt} (default @code{\"vt7\"})"
msgstr "@code{vt}(默认值:@code{\"vt7\"})"

msgid "sddm has Qt6 enabled by default. If you want to still use a Qt5 theme, you need to set it to @code{sddm-qt5}."
msgstr "SDDM 默认启用 Qt6。如果您还想使用 Qt5 主题,需要将字段设置为 @code{sddm-qt5}."

msgid "This is a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-libinput}, and so on."
msgstr "这是 Xorg 服务器加载的 @dfn{模块包} 列表——例如 @code{xf86-video-vesa}、@code{xf86-input-libinput} 等。"

msgid "log"
msgstr "log"

msgid "@code{xfce} (default: @code{xfce})"
msgstr "@code{xfce}(默认值:@code{xfce})"

msgid "@code{mate} (default: @code{mate})"
msgstr "@code{mate}(默认值:@code{mate})"

msgid "@code{enlightenment} (default: @code{enlightenment})"
msgstr "@code{enlightenment}(默认值:@code{enlightenment})"

msgid ""
"(user-account\n"
"  (name \"alice\")\n"
"  (group \"users\")\n"
"  (supplementary-groups '(\"wheel\"   ; allow use of sudo, etc.\n"
"                          \"seat\"    ; seat management\n"
"                          \"audio\"   ; sound card\n"
"                          \"video\"   ; video devices such as webcams\n"
"                          \"cdrom\")) ; the good ol' CD-ROM\n"
"  (comment \"Bob's sister\"))\n"
msgstr ""
"(user-account\n"
"  (name \"XiaoHong\")\n"
"  (group \"users\")\n"
"  (supplementary-groups '(\"wheel\"   ; 允许使用 sudo 等\n"
"                          \"seat\"    ; seat 管理\n"
"                          \"audio\"   ; 声卡\n"
"                          \"video\"   ; 视频设备比如网络摄像头\n"
"                          \"cdrom\")) ; 老式 CD-ROM\n"
"  (comment \"小明的同学\"))\n"

msgid ""
"  capture_ports @{\n"
"    0 system:capture_1\n"
"    1 system:capture_2\n"
"  @}\n"
"@}\n"
"\n"
msgstr ""
"  capture_ports @{\n"
"    0 system:capture_1\n"
"    1 system:capture_2\n"
"  @}\n"
"@}\n"
"\n"

msgid ""
"pcm.!default @{\n"
"  type plug\n"
"  slave @{\n"
"    pcm \"rawjack\"\n"
"  @}\n"
"@}\n"
msgstr ""
"pcm.!default @{\n"
"  type plug\n"
"  slave @{\n"
"    pcm \"rawjack\"\n"
"  @}\n"
"@}\n"

msgid "locate important-notes.txt\n"
msgstr "locate important-notes.txt\n"

msgid ""
"sudo -u postgres -s /bin/sh\n"
"createuser --interactive\n"
"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
msgstr ""
"sudo -u postgres -s /bin/sh\n"
"createuser --interactive\n"
"createdb $MY_USER_LOGIN      # 适当替换。\n"

msgid ""
"psql -U postgres\n"
"> create database postgistest;\n"
"> \\connect postgistest;\n"
"> create extension postgis;\n"
"> create extension postgis_topology;\n"
msgstr ""
"psql -U postgres\n"
"> create database postgistest;\n"
"> \\connect postgistest;\n"
"> create extension postgis;\n"
"> create extension postgis_topology;\n"

msgid ""
"(service dovecot-service-type\n"
"         (dovecot-configuration\n"
"           (mail-location \"maildir:~/.mail\")))\n"
msgstr ""
"(service dovecot-service-type\n"
"         (dovecot-configuration\n"
"           (mail-location \"maildir:~/.mail\")))\n"

msgid "(extensions (list dovecot-pigeonhole))\n"
msgstr "(extensions (list dovecot-pigeonhole))\n"

msgid "home directory"
msgstr "家目录"

msgid "prosodyctl --root cert import /etc/certs\n"
msgstr "prosodyctl --root cert import /etc/certs\n"

msgid ""
"# herd doc jami list-actions\n"
"(list-accounts\n"
" list-account-details\n"
" list-banned-contacts\n"
" list-contacts\n"
" list-moderators\n"
" add-moderator\n"
" ban-contact\n"
" enable-account\n"
" disable-account)\n"
msgstr ""
"# herd doc jami list-actions\n"
"(list-accounts\n"
" list-account-details\n"
" list-banned-contacts\n"
" list-contacts\n"
" list-moderators\n"
" add-moderator\n"
" ban-contact\n"
" enable-account\n"
" disable-account)\n"

msgid ""
"# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \\\n"
"  f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"
"\n"
msgstr ""
"# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \\\n"
"  f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"
"\n"

msgid ""
"# herd list-moderators jami\n"
"Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:\n"
"  - 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"
msgstr ""
"# herd list-moderators jami\n"
"Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:\n"
"  - 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"

msgid ""
"# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"
msgstr ""
"# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"

msgid ""
"# herd list-banned-contacts jami\n"
"Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:\n"
"  - 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"
msgstr ""
"# herd list-banned-contacts jami\n"
"Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:\n"
"  - 1dbcb0f5f37324228235564b79f2b9737e9a008f\n"
"\n"

msgid ""
"# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"
"\n"
msgstr ""
"# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"
"\n"

msgid ""
"# herd list-accounts jami\n"
"The following Jami accounts are available:\n"
"  - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]\n"
"\n"
msgstr ""
"# herd list-accounts jami\n"
"The following Jami accounts are available:\n"
"  - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]\n"
"\n"

msgid ""
"# herd list-account-details jami | \\\n"
"  recsel -p Account.username -e 'Account.rendezVous ~ \"true\"'\n"
"Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"
msgstr ""
"# herd list-account-details jami | \\\n"
"  recsel -p Account.username -e 'Account.rendezVous ~ \"true\"'\n"
"Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199\n"

msgid ""
"$ guix repl\n"
"scheme@@(guix-user)> ,use (gnu services file-sharing)\n"
"scheme@@(guix-user)> (transmission-random-salt)\n"
"$1 = \"uKd1uMs9\"\n"
msgstr ""
"$ guix repl\n"
"scheme@@(guix-user)> ,use (gnu services file-sharing)\n"
"scheme@@(guix-user)> (transmission-random-salt)\n"
"$1 = \"uKd1uMs9\"\n"

msgid ""
"scheme@@(guix-user)> (transmission-password-hash \"transmission\"\n"
"(transmission-random-salt))\n"
"$2 = \"@{c8bbc6d1740cd8dc819a6e25563b67812c1c19c9VtFPfdsX\"\n"
msgstr ""
"scheme@@(guix-user)> (transmission-password-hash \"transmission\"\n"
"(transmission-random-salt))\n"
"$2 = \"@{c8bbc6d1740cd8dc819a6e25563b67812c1c19c9VtFPfdsX\"\n"

msgid "# herd reload transmission-daemon\n"
msgstr "# herd reload transmission-daemon\n"

msgid "@uref{https://codeberg.org/guix/mumi, Mumi} is a Web interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu.org, the GNU instance}.  Mumi is a Web server, but it also fetches and indexes mail retrieved from Debbugs."
msgstr "@uref{https://codeberg.org/guix/mumi, Mumi} 是一个 Web 界面,用于 Debbugs 缺陷跟踪器,默认情况下用于 @uref{https://bugs.gnu.org, GNU 实例}。Mumi 是一个 Web 服务器,但它还会获取和索引从 Debbugs 检索的邮件。"

msgid ""
"openssl genpkey -out key.der -outform DER -algorithm RSA \\\n"
"    -pkeyopt rsa_keygen_bits:4096\n"
"openssl req -x509 -key key.der -outform DER -days 3650 -out cert.der \\\n"
"    -subj \"/CN=example.com\"\n"
msgstr ""
"openssl genpkey -out key.der -outform DER -algorithm RSA \\\n"
"    -pkeyopt rsa_keygen_bits:4096\n"
"openssl req -x509 -key key.der -outform DER -days 3650 -out cert.der \\\n"
"    -subj \"/CN=example.com\"\n"

msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v02.api.letsencrypt.org/directory}."
msgstr "使用此服务即表示您同意 ACME 订阅者协议,协议可以在此找到:@url{https://acme-v02.api.letsencrypt.org/directory}."

msgid "@code{challenge} (default: @code{#f})"
msgstr "@code{challenge}(默认值:@code{#f})"

msgid "@code{authentication-hook} (default: @code{#f})"
msgstr "@code{authentication-hook}(默认值:@code{#f})"

msgid "@code{cleanup-hook} (default: @code{#f})"
msgstr "@code{cleanup-hook}(默认值:@code{#f})"

msgid "@code{zonefile-load} (default: @code{#f})"
msgstr "@code{zonefile-load}(默认值:@code{#f})"

msgid "@code{journal-content} (default: @code{#f})"
msgstr "@code{journal-content}(默认值:@code{#f})"

msgid "@code{max-journal-usage} (default: @code{#f})"
msgstr "@code{max-journal-usage}(默认值:@code{#f})"

msgid "@code{max-journal-depth} (default: @code{#f})"
msgstr "@code{max-journal-depth}(默认值:@code{#f})"

msgid "@code{max-zone-size} (default: @code{#f})"
msgstr "@code{max-zone-size}(默认值:@code{#f})"

msgid "@code{dnssec-policy} (default: @code{#f})"
msgstr "@code{dnssec-policy}(默认值:@code{#f})"

msgid "@code{includes} (default: @code{'()})"
msgstr "@code{includes}(默认值:@code{'()})"

msgid "secrets, Knot service"
msgstr "秘密,Knot 服务。"

msgid ""
"keymgr -t mysecret > /etc/knot/secrets.conf\n"
"chmod 600 /etc/knot/secrets.conf\n"
msgstr ""
"keymgr -t mysecret > /etc/knot/secrets.conf\n"
"chmod 600 /etc/knot/secrets.conf\n"

msgid "herd reload dnsmasq\n"
msgstr "herd reload dnsmasq\n"

msgid "herd stats dnsmasq\n"
msgstr "herd stats dnsmasq\n"

msgid ""
"(service xvnc-service-type\n"
"         (xvnc-configuration (display-number 10)))\n"
msgstr ""
"(service xvnc-service-type\n"
"         (xvnc-configuration (display-number 10)))\n"

msgid "vncviewer remote-host:5905\n"
msgstr "vncviewer remote-host:5905\n"

msgid "Bitmask"
msgstr "Bitmask"

msgid ""
"[public]\n"
"browsable = yes\n"
"path = /public\n"
"read only = no\n"
"guest ok = yes\n"
"guest only = yes\\n\"))))\n"
msgstr ""
"[public]\n"
"browsable = yes\n"
"path = /public\n"
"read only = no\n"
"guest ok = yes\n"
"guest only = yes\\n\"))))\n"

msgid "Web Service Discovery Daemon"
msgstr "Web 服务发现守护进程"

msgid "herd register forgejo-runner @var{url} @var{token}\n"
msgstr "herd register forgejo-runner @var{url} @var{token}\n"

msgid ""
"herd enable forgejo-runner\n"
"herd start forgejo-runner\n"
msgstr ""
"herd enable forgejo-runner\n"
"herd start forgejo-runner\n"

msgid "Most new UPSes are an USB."
msgstr "大多数新的 UPS 是一个 USB。"

msgid "Set to the appropriate @file{/dev/tty**} device."
msgstr "设置为合适的@file{/dev/tty**}设备。"

msgid "Set to @code{@var{hostname}:@var{port}}."
msgstr "设置为@code{@var{hostname}:@var{port}}。"

msgid "The logging facility for the syslog."
msgstr "syslog 的日志功能。"

msgid "Handlers for events produced by apcupsd."
msgstr "apcupsd 生成的事件把柄。"

msgid "(err @var{fmt} @var{args...})"
msgstr "(err @var{fmt} @var{args...})"

msgid "(wall @var{fmt} @var{args...})"
msgstr "(wall @var{fmt} @var{args...})"

msgid "The handler for the killpower event."
msgstr "关闭电源事件的把柄。"

msgid "The handler for the onbattery event."
msgstr "电源开启事件的把柄。"

msgid "herd update mpd\n"
msgstr "herd update mpd\n"

msgid "Port for accepting secure TLS connections This can be a port number, or service name."
msgstr "用于接受安全 TLS 连接的端口。这可以是端口号或服务名称。"

msgid "Port for accepting insecure TCP connections This can be a port number, or service name."
msgstr "用于接受不安全 TCP 连接的端口。这可以是端口号或服务名称。"

msgid "UNIX domain socket group ownership.  This can be used to allow a trusted set of users access to management capabilities without becoming root."
msgstr "UNIX 域套接字组所有权。这可以用于允许一组受信任的用户在不成为 root 的情况下访问管理功能。"

msgid "UNIX socket permissions for the R/W socket.  Default allows only root.  If PolicyKit is enabled on the socket, the default will change to allow everyone (e.g., @code{\"0777\"})."
msgstr "读写套接字的 UNIX 套接字权限。默认仅允许 root。如果在套接字上启用了 PolicyKit,默认将更改为允许所有人(例如,@code{\"0777\"})。"

msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect."
msgstr "UNIX 只读套接字的身份验证方案。默认情况下,套接字权限允许任何人连接。"

msgid "Authentication scheme for TCP sockets.  If you don't enable SASL, then all TCP traffic is cleartext.  Don't do this outside of a development/test scenario."
msgstr "TCP 套接字的身份验证方案。如果您不启用 SASL,则所有 TCP 流量都是明文。不要在开发/测试场景之外这样做。"

msgid "Host UUID.  UUID must not have all digits be the same."
msgstr "主机 UUID。UUID 不能全部是相同的数字。"

msgid ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
msgstr ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"

msgid ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\"))))\n"
msgstr ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\"))))\n"

msgid "guix build -s armhf-linux inkscape\n"
msgstr "guix build -s armhf-linux inkscape\n"

msgid ""
"qemu-system-x86_64 \\\n"
"\t-chardev socket,path=/tmp/qga.sock,server=on,wait=off,id=qga0 \\\n"
"\t-device virtio-serial \\\n"
"\t-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \\\n"
"\t...\n"
msgstr ""
"qemu-system-x86_64 \\\n"
"\t-chardev socket,path=/tmp/qga.sock,server=on,wait=off,id=qga0 \\\n"
"\t-device virtio-serial \\\n"
"\t-device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \\\n"
"\t...\n"

msgid ""
"$ guix shell socat -- socat unix-connect:/tmp/qga.sock stdio\n"
"@{\"execute\": \"guest-get-host-name\"@}\n"
"@{\"return\": @{\"host-name\": \"guix\"@}@}\n"
msgstr ""
"$ guix shell socat -- socat unix-connect:/tmp/qga.sock stdio\n"
"@{\"execute\": \"guest-get-host-name\"@}\n"
"@{\"return\": @{\"host-name\": \"guix\"@}@}\n"

msgid "herd start build-vm\n"
msgstr "herd start build-vm\n"

msgid "herd configuration build-vm\n"
msgstr "herd configuration build-vm\n"

msgid "image"
msgstr "image"

msgid "qemu-system-x86_64 -cpu help\n"
msgstr "qemu-system-x86_64 -cpu help\n"

msgid ""
"herd start hurd-vm\n"
"herd stop childhurd\n"
msgstr ""
"herd start hurd-vm\n"
"herd stop childhurd\n"

msgid "guix shell tigervnc-client -- vncviewer localhost:5900\n"
msgstr "guix shell tigervnc-client -- vncviewer localhost:5900\n"

msgid "guix build emacs-minimal -s i586-gnu\n"
msgstr "guix build emacs-minimal -s i586-gnu\n"

msgid ""
"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
msgstr ""
"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"

msgid "guix build coreutils -s i586-gnu\n"
msgstr "guix build coreutils -s i586-gnu\n"

msgid ""
"/etc/childhurd/etc/guix/acl\n"
"/etc/childhurd/etc/guix/signing-key.pub\n"
"/etc/childhurd/etc/guix/signing-key.sec\n"
"/etc/childhurd/etc/ssh/authorized_keys.d/offloading\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
msgstr ""
"/etc/childhurd/etc/guix/acl\n"
"/etc/childhurd/etc/guix/signing-key.pub\n"
"/etc/childhurd/etc/guix/signing-key.sec\n"
"/etc/childhurd/etc/ssh/authorized_keys.d/offloading\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"

msgid "configuration"
msgstr "configuration"

msgid "git clone git@@example.com:gitolite-admin\n"
msgstr "git clone git@@example.com:gitolite-admin\n"

msgid ""
"(use-modules (gnu packages databases)\n"
"             (gnu packages haskell-apps)\n"
"             (gnu packages version-control))\n"
"(make-gitolite (list redis git-annex))\n"
msgstr ""
"(use-modules (gnu packages databases)\n"
"             (gnu packages haskell-apps)\n"
"             (gnu packages version-control))\n"
"(make-gitolite (list redis git-annex))\n"

msgid "admin-pubkey"
msgstr "admin-pubkey"

msgid ""
"repo foo\n"
"    R = daemon\n"
msgstr ""
"repo foo\n"
"    R = daemon\n"

msgid ""
"repo foo\n"
"    R = daemon\n"
"    desc = A long description, optionally with <i>HTML</i>, shown on the index page\n"
"    config gitweb.name = The Foo Project\n"
"    config gitweb.synopsis = A short description, shown on the main page of the project\n"
msgstr ""
"repo foo\n"
"    R = daemon\n"
"    desc = A long description, optionally with <i>HTML</i>, shown on the index page\n"
"    config gitweb.name = The Foo Project\n"
"    config gitweb.synopsis = A short description, shown on the main page of the project\n"

msgid "rules"
msgstr "rules"

msgid ""
"(list\n"
" #:build\n"
" (list\n"
"  (build-from-guix-data-service\n"
"   (data-service-url \"https://data.guix.gnu.org\")\n"
"   (build-coordinator-url \"http://127.0.0.1:8746\")\n"
"   (branches '(\"master\"))\n"
"   (systems '(\"x86_64-linux\" \"i686-linux\"))\n"
"   (systems-and-targets\n"
"    (map (lambda (target)\n"
"           (cons \"x86_64-linux\" target))\n"
"         '(\"aarch64-linux-gnu\"\n"
"           \"i586-pc-gnu\")))))\n"
" #:web-server-args\n"
" '(#:event-source \"https://example.com\"\n"
"   #:controller-args\n"
"   (#:title \"example.com build farm\")))\n"
msgstr ""
"(list\n"
" #:build\n"
" (list\n"
"  (build-from-guix-data-service\n"
"   (data-service-url \"https://data.guix.gnu.org\")\n"
"   (build-coordinator-url \"http://127.0.0.1:8746\")\n"
"   (branches '(\"master\"))\n"
"   (systems '(\"x86_64-linux\" \"i686-linux\"))\n"
"   (systems-and-targets\n"
"    (map (lambda (target)\n"
"           (cons \"x86_64-linux\" target))\n"
"         '(\"aarch64-linux-gnu\"\n"
"           \"i586-pc-gnu\")))))\n"
" #:web-server-args\n"
" '(#:event-source \"https://example.com\"\n"
"   #:controller-args\n"
"   (#:title \"example.com build farm\")))\n"

msgid "authentication"
msgstr "authentication"

msgid "This service is also available for Guix Home, where it runs directly with your user privileges (@pxref{Miscellaneous Home Services, @code{home-dicod-service-type}})."
msgstr "此服务也可用于 Guix Home,在那里它直接以您的用户权限运行(@pxref{Miscellaneous Home Services, @code{home-dicod-service-type}})."

msgid "{Procedure} dicod-freedict-database dictionary-name"
msgstr "{过程} dicod-freedict-database dictionary-name"

msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (users (cons (user-account\n"
"                (name \"alice\")\n"
"                (comment \"Bob's sister\")\n"
"                (group \"users\")\n"
"\n"
msgstr ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (users (cons (user-account\n"
"                (name \"Xiaohong\")\n"
"                (comment \"小明的同学\")\n"
"                (group \"users\")\n"
"\n"

msgid ""
"$ podman run -it --rm docker.io/alpine cat /etc/*release*\n"
"NAME=\"Alpine Linux\"\n"
"ID=alpine\n"
"VERSION_ID=3.20.2\n"
"PRETTY_NAME=\"Alpine Linux v3.20\"\n"
"HOME_URL=\"https://alpinelinux.org/\"\n"
"BUG_REPORT_URL=\"https://gitlab.alpinelinux.org/alpine/aports/-/issues\"\n"
msgstr ""
"$ podman run -it --rm docker.io/alpine cat /etc/*release*\n"
"NAME=\"Alpine Linux\"\n"
"ID=alpine\n"
"VERSION_ID=3.20.2\n"
"PRETTY_NAME=\"Alpine Linux v3.20\"\n"
"HOME_URL=\"https://alpinelinux.org/\"\n"
"BUG_REPORT_URL=\"https://gitlab.alpinelinux.org/alpine/aports/-/issues\"\n"

msgid ""
"# cat /etc/subgid\n"
"root:100000:65536\n"
"alice:165536:65536\n"
"# cat /etc/subuid\n"
"root:100000:700\n"
"bob:100700:65536\n"
"alice:166236:65536\n"
msgstr ""
"# cat /etc/subgid\n"
"root:100000:65536\n"
"alice:165536:65536\n"
"# cat /etc/subuid\n"
"root:100000:700\n"
"bob:100700:65536\n"
"alice:166236:65536\n"

msgid ""
"$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable\n"
"$ nix-channel --update\n"
msgstr ""
"$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable\n"
"$ nix-channel --update\n"

msgid ""
"$ sudo mkdir -p /nix/var/nix/profiles/per-user/$USER\n"
"$ sudo chown $USER:root /nix/var/nix/profiles/per-user/$USER\n"
msgstr ""
"$ sudo mkdir -p /nix/var/nix/profiles/per-user/$USER\n"
"$ sudo chown $USER:root /nix/var/nix/profiles/per-user/$USER\n"

msgid ""
"$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
"$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
msgstr ""
"$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
"$ source /run/current-system/profile/etc/profile.d/nix.sh\n"

msgid "sudo herd trigger remote-ftp\n"
msgstr "sudo herd trigger remote-ftp\n"

msgid "This service is also available for Guix Home, where it runs directly with your user privileges (@pxref{Miscellaneous Home Services, @code{home-readymedia-service-type}})."
msgstr "此服务也可用于 Guix Home,在那里它直接以您的用户权限运行(@pxref{Miscellaneous Home Services, @code{home-readymedia-service-type}})."

msgid ""
"guix install nss-certs\n"
"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
msgstr ""
"guix install nss-certs\n"
"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"

msgid ""
"guix install nss-certs\n"
"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
msgstr ""
"guix install nss-certs\n"
"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"

msgid "For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system as well as an initialization script.  The latter is responsible for mounting the real root file system, and for loading any kernel modules that may be needed to achieve that."
msgstr "为实现引导初始化,Linux-Libre 内核需加载@dfn{初始化内存盘}(Initial RAM Disk,或称 @dfn{initrd})。该内存盘包含临时根文件系统及初始化脚本,其核心职责包括挂载真实根文件系统,并加载必要的内核模块。"

msgid "The @code{initrd-modules} field of an @code{operating-system} declaration allows you to specify Linux-libre kernel modules that must be available in the initrd.  In particular, this is where you would list modules needed to actually drive the hard disk where your root partition is---although the default value of @code{initrd-modules} should cover most use cases.  For example, assuming you need the @code{megaraid_sas} module in addition to the default modules to be able to access your root file system, you would write:"
msgstr "在 @code{operating-system} 系统声明中,通过 @code{initrd-modules} 字段可指定 initrd 必须包含的 Linux-libre 内核模块。特别要注意:此处应列出驱动根分区所在硬盘所需模块——尽管 @code{initrd-modules} 的默认值已覆盖多数场景。例如,若除默认模块外还需 @code{megaraid_sas} 模块访问根文件系统,则声明如下:"

msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
msgstr ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"

msgid "%base-initrd-modules"
msgstr "%base-initrd-modules"

msgid "This is the list of kernel modules included in the initrd by default."
msgstr "此乃是默认包含于 initrd 的内核模块列表。"

msgid "Furthermore, if you need lower-level customization, the @code{initrd} field of an @code{operating-system} declaration allows you to specify which initrd you would like to use.  The @code{(gnu system linux-initrd)} module provides three ways to build an initrd: the high-level @code{base-initrd} procedure and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
msgstr "若需更深层定制,可通过 @code{operating-system} 声明的 @code{initrd} 字段指定自定义 initrd。@code{(gnu system linux-initrd)} 模块提供三种 initrd 构建方式:高级过程 @code{base-initrd};底层过程 @code{raw-initrd} 与 @code{expression->initrd}。"

msgid "The @code{base-initrd} procedure is intended to cover most common uses.  For example, if you want to add a bunch of kernel modules to be loaded at boot time, you can define the @code{initrd} field of the operating system declaration like this:"
msgstr "@code{base-initrd} 过程覆盖多数常见需求。例如,若需在启动时加载额外内核模块,可在系统声明中如下定义 @code{initrd} 字段:"

msgid ""
"(initrd (lambda (file-systems . rest)\n"
"          ;; Create a standard initrd but set up networking\n"
"          ;; with the parameters QEMU expects by default.\n"
"          (apply base-initrd file-systems\n"
"                 #:qemu-networking? #t\n"
"                 rest)))\n"
msgstr ""
"(initrd (lambda (file-systems . rest)\n"
"          ;; 创建标准 initrd 但默认采用 QEMU 所需的网络参数配置\n"
"          (apply base-initrd file-systems\n"
"                 #:qemu-networking? #t\n"
"                 rest)))\n"

msgid "The @code{base-initrd} procedure also handles common use cases that involves using the system as a QEMU guest, or as a ``live'' system with volatile root file system."
msgstr "@code{base-initrd} 过程同时支持两种常见场景:作为 QEMU 访客系统运行;或作为根文件系统易失的“临时”系统。"

msgid "The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included to the initrd.  An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available."
msgstr "@code{base-initrd} 过程基于 @code{raw-initrd} 构建。与前者不同,@code{raw-initrd} 不执行高级操作(如自动推断需包含的内核模块和软件包)。典型用例:当用户使用自定义 Linux 内核配置且 @code{base-initrd} 默认包含的内核模块不可用时。"

msgid "The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} honors several options passed on the Linux kernel command line (that is, arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-append} option of QEMU), notably:"
msgstr "由 @code{base-initrd} 或 @code{raw-initrd} 生成的初始化内存盘支持通过 Linux 内核命令行传递的若干选项(即通过 GRUB 的 @code{linux} 命令或 QEMU 的 @code{-append} 选项传递的参数),特别是:"

msgid "gnu.load=@var{boot}"
msgstr "gnu.load=@var{boot}"

msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
msgstr "指示初始化内存盘在挂载根文件系统后加载包含 Scheme 程序的文件 @var{boot}。"

msgid "Guix uses this option to yield control to a boot program that runs the service activation programs and then spawns the GNU@tie{}Shepherd, the initialization system."
msgstr "Guix 利用此选项将控制权移交至引导程序,该程序执行服务激活流程后启动初始化系统 GNU@tie{}Shepherd。"

msgid "root=@var{root}"
msgstr "root=@var{root}"

msgid "Mount @var{root} as the root file system.  @var{root} can be a device name like @code{/dev/sda1}, a file system label, or a file system UUID.  When unspecified, the device name from the root file system of the operating system declaration is used."
msgstr "将 @var{root} 挂载为根文件系统。@var{root} 可以是设备名(如 @code{/dev/sda1})、文件系统标签或文件系统 UUID。若未指定,则使用操作系统声明中根文件系统的设备名。"

msgid "rootfstype=@var{type}"
msgstr "rootfstype=@var{type}"

msgid "rootflags=@var{options}"
msgstr "rootflags=@var{options}"

msgid ""
"echo /key-file.bin | cpio -oH newc >/key-file.cpio\n"
"chmod 0000 /key-file.cpio\n"
msgstr ""
"echo /key-file.bin | cpio -oH newc >/key-file.cpio\n"
"chmod 0000 /key-file.cpio\n"

msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"

msgid "Invoking @command{guix system}"
msgstr "调用 @command{guix system}"

msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
msgstr "guix system @var{options}@dots{} @var{action} @var{file}\n"

msgid ""
"$ guix system search console\n"
"name: console-fonts\n"
"location: gnu/services/base.scm:806:2\n"
"extends: shepherd-root\n"
"description: Install the given fonts on the specified ttys (fonts are per\n"
"+ virtual console on GNU/Linux).  The value of this service is a list of\n"
"+ tty/font pairs.  The font can be the name of a font provided by the `kbd'\n"
"+ package or any valid argument to `setfont', as in this example:\n"
"+\n"
"+      '((\"tty1\" . \"LatGrkCyr-8x16\")\n"
"+        (\"tty2\" . (file-append\n"
"+                      font-tamzen\n"
"+                      \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
"+        (\"tty3\" . (file-append\n"
"+                      font-terminus\n"
"+                      \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
"relevance: 9\n"
"\n"
msgstr ""
"$ guix system search console\n"
"name: console-fonts\n"
"location: gnu/services/base.scm:806:2\n"
"extends: shepherd-root\n"
"description: 在指定的 tty 上安装给定的字体(字体是 GNU/Linux 每个虚拟控制台的字体)。 此服务的值是一个由\n"
"+ tty/font 对构成的列表。 字体可以是 `kbd' 软件包提供的字体名称,也可以是 `setfont' 的任何有效参数,如本例所示:\n"
"+ \n"
"+      `((\"tty1\" . \"LatGrkCyr-8x16\")\n"
"+        (\"tty2\" . ,(file-append\n"
"+                       font-tamzen\n"
"+                       \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
"+        (\"tty3\" . ,(file-append\n"
"+                       font-terminus\n"
"+                       \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
"relevance: 9\n"
"\n"

msgid "@dots{}\n"
msgstr "@dots{}\n"

msgid "guix system edit openssh\n"
msgstr "guix system edit openssh\n"

msgid ""
"guix time-machine \\\n"
"  -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \\\n"
"  system reconfigure \\\n"
"  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
msgstr ""
"guix time-machine \\\n"
"  -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \\\n"
"  system reconfigure \\\n"
"  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"

msgid "guix system switch-generation 7\n"
msgstr "guix system switch-generation 7\n"

msgid "guix system switch-generation -- -1\n"
msgstr "guix system switch-generation -- -1\n"

msgid "guix system delete-generations\n"
msgstr "guix system delete-generations\n"

msgid "guix system delete-generations 2m\n"
msgstr "guix system delete-generations 2m\n"

msgid "guix system init my-os-config.scm /mnt\n"
msgstr "guix system init my-os-config.scm /mnt\n"

msgid "guix system installer --dry-run\n"
msgstr "guix system installer --dry-run\n"

msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -nic user,model=virtio-net-pci\n"
msgstr "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -nic user,model=virtio-net-pci\n"

msgid "$ $(guix system vm my-config.scm) -m 1024 -smp 2 -nic user,model=virtio-net-pci\n"
msgstr "$ $(guix system vm my-config.scm) -m 1024 -smp 2 -nic user,model=virtio-net-pci\n"

msgid ""
"guix system vm my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
msgstr ""
"guix system vm my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"

msgid ""
"image=$(guix system image --image-type=qcow2 \\\n"
"        gnu/system/examples/lightweight-desktop.tmpl)\n"
"cp $image /tmp/my-image.qcow2\n"
"chmod +w /tmp/my-image.qcow2\n"
"qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \\\n"
"                   -bios $(guix build ovmf-x86-64)/share/firmware/ovmf_x64.bin\n"
msgstr ""
"image=$(guix system image --image-type=qcow2 \\\n"
"        gnu/system/examples/lightweight-desktop.tmpl)\n"
"cp $image /tmp/my-image.qcow2\n"
"chmod +w /tmp/my-image.qcow2\n"
"qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \\\n"
"                   -bios $(guix build ovmf-x86-64)/share/firmware/ovmf_x64.bin\n"

msgid "# dd if=$(guix system image my-os.scm) of=/dev/sdc status=progress\n"
msgstr "# dd if=$(guix system image my-os.scm) of=/dev/sdc status=progress\n"

msgid ""
"image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
"container_id=\"$(docker create $image_id)\"\n"
"docker start $container_id\n"
msgstr ""
"image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
"container_id=\"$(docker create $image_id)\"\n"
"docker start $container_id\n"

msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
msgstr "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"

msgid ""
"guix system container my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
msgstr ""
"guix system container my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"

msgid "guix system image -t qcow2 --save-provenance config.scm\n"
msgstr "guix system image -t qcow2 --save-provenance config.scm\n"

msgid "$ guix system list-generations 10d\n"
msgstr "$ guix system list-generations 10d\n"

msgid "$ guix system extension-graph @var{file} | xdot -\n"
msgstr "$ guix system extension-graph @var{file} | xdot -\n"

msgid "Invoking @command{guix deploy}"
msgstr "调用 @command{guix deploy}"

msgid "guix deploy"
msgstr "guix deploy"

msgid "guix deploy @var{file}\n"
msgstr "guix deploy @var{file}\n"

msgid "# guix archive --authorize < coordinator-public-key.txt\n"
msgstr "# guix archive --authorize < coordinator-public-key.txt\n"

msgid "guix deploy @var{file} -x -- uname -a\n"
msgstr "guix deploy @var{file} -x -- uname -a\n"

msgid "guix deploy @var{file} -x -- herd restart @var{service}\n"
msgstr "guix deploy @var{file} -x -- herd restart @var{service}\n"

msgid "guix deploy --roll-back @var{file}\n"
msgstr "guix deploy --roll-back @var{file}\n"

msgid "environment"
msgstr "environment"

msgid "system"
msgstr "system"

msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
msgstr "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"

msgid "ssh-key"
msgstr "ssh-key"

msgid "Running Guix in a Virtual Machine"
msgstr "在虚拟机中运行 Guix"

msgid ""
"$ qemu-system-x86_64 \\\n"
"   -nic user,model=virtio-net-pci \\\n"
"   -enable-kvm -m 2048 \\\n"
"   -device virtio-blk,drive=myhd \\\n"
"   -drive if=none,file=guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2,id=myhd\n"
msgstr ""
"$ qemu-system-x86_64 \\\n"
"   -nic user,model=virtio-net-pci \\\n"
"   -enable-kvm -m 2048 \\\n"
"   -device virtio-blk,drive=myhd \\\n"
"   -drive if=none,file=guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2,id=myhd\n"

msgid "$(guix system vm config.scm) -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
msgstr "$(guix system vm config.scm) -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"

msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 localhost\n"
msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 localhost\n"

msgid ""
"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
"-chardev spicevmc,name=vdagent,id=vdagent\n"
"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\\\n"
"name=com.redhat.spice.0\n"
msgstr ""
"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
"-chardev spicevmc,name=vdagent,id=vdagent\n"
"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\\\n"
"name=com.redhat.spice.0\n"

msgid "(@var{type} @var{variable} => @var{body})\n"
msgstr "(@var{type} @var{variable} => @var{body})\n"

msgid "(delete @var{type})\n"
msgstr "(delete @var{type})\n"

msgid ""
"(simple-service 'my-important-profile-file etc-profile-d-service-type\n"
"                (list (plain-file \"youppi.sh\" \"HOW_IMPORTANT=very\")))\n"
msgstr ""
"(simple-service 'my-important-profile-file etc-profile-d-service-type\n"
"                (list (plain-file \"youppi.sh\" \"HOW_IMPORTANT=very\")))\n"

msgid ""
"(use-package-modules gnome)     ;for the `vte' package\n"
"\n"
msgstr ""
"(use-package-modules gnome)     ;for the `vte' package\n"
"\n"

msgid ""
"(simple-service 'vte-integration etc-bashrc-d-service-type\n"
"                (list (file-append vte \"/etc/profile.d/vte.sh\")))\n"
msgstr ""
"(simple-service 'vte-integration etc-bashrc-d-service-type\n"
"                (list (file-append vte \"/etc/profile.d/vte.sh\")))\n"

msgid "(service vte-integration-service-type vte)\n"
msgstr "(service vte-integration-service-type vte)\n"

msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
msgstr "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"

msgid "herd doc @var{service-name}\n"
msgstr "herd doc @var{service-name}\n"

msgid ""
"(let ((config (plain-file \"syslogd.conf\" \"@dots{}\")))\n"
"  (shepherd-service\n"
"    (documentation \"Run the syslog daemon (syslogd).\")\n"
"    (provision '(syslogd))\n"
"    (requirement '(user-processes))\n"
"    (start #~(make-forkexec-constructor\n"
"               (list #$(file-append inetutils \"/libexec/syslogd\")\n"
"                     \"--rcfile\" #$config)\n"
"               #:pid-file \"/var/run/syslog.pid\"))\n"
"    (stop #~(make-kill-destructor))))\n"
msgstr ""
"(let ((config (plain-file \"syslogd.conf\" \"@dots{}\")))\n"
"  (shepherd-service\n"
"    (documentation \"Run the syslog daemon (syslogd).\")\n"
"    (provision '(syslogd))\n"
"    (requirement '(user-processes))\n"
"    (start #~(make-forkexec-constructor\n"
"               (list #$(file-append inetutils \"/libexec/syslogd\")\n"
"                     \"--rcfile\" #$config)\n"
"               #:pid-file \"/var/run/syslog.pid\"))\n"
"    (stop #~(make-kill-destructor))))\n"

msgid "herd doc @var{service} action @var{action}\n"
msgstr "herd doc @var{service} action @var{action}\n"

msgid ""
"# herd say-hello example\n"
"Hello, friend! arguments: ()\n"
"# herd say-hello example a b c\n"
"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
msgstr ""
"# herd say-hello example\n"
"Hello, friend! arguments: ()\n"
"# herd say-hello example a b c\n"
"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"

msgid "cat $(herd configuration tor)\n"
msgstr "cat $(herd configuration tor)\n"

msgid ""
"herd spawn transient -E SSH_AUTH_SOCK=$SSH_AUTH_SOCK -- \\\n"
"  rsync -e ssh -vur . backup.example.org:\n"
msgstr ""
"herd spawn transient -E SSH_AUTH_SOCK=$SSH_AUTH_SOCK -- \\\n"
"  rsync -e ssh -vur . backup.example.org:\n"

msgid "herd schedule timer at 07:00 -- mpg123 Music/alarm.mp3\n"
msgstr "herd schedule timer at 07:00 -- mpg123 Music/alarm.mp3\n"

msgid ""
"(@var{field-name}\n"
" @var{type-decl}\n"
" @var{documentation}\n"
" @var{option*}\n"
" @dots{})\n"
msgstr ""
"(@var{field-name}\n"
" @var{type-decl}\n"
" @var{documentation}\n"
" @var{option*}\n"
" @dots{})\n"

msgid ""
"(define my-contacts\n"
"  (contacts-list-configuration\n"
"   (name \"Alice\")\n"
"   (email \"alice@@example.org\")\n"
"   (contacts\n"
"    (list (contact-configuration\n"
"           (name \"Bob\")\n"
"           (phone-number 1234)\n"
"           (email \"bob@@gnu.org\")\n"
"           (married? #f))\n"
"          (contact-configuration\n"
"           (name \"Charlie\")\n"
"           (phone-number 0000)\n"
"           (married? #t))))))\n"
msgstr ""
"(define my-contacts\n"
"  (contacts-list-configuration\n"
"   (name \"XiaoHong\")\n"
"   (email \"xiaohong@@example.org\")\n"
"   (contacts\n"
"    (list (contact-configuration\n"
"           (name \"XiaoMing\")\n"
"           (phone-number 1234)\n"
"           (email \"xiaoming@@gnu.org\")\n"
"           (married? #f))\n"
"          (contact-configuration\n"
"           (name \"LiHua\")\n"
"           (phone-number 0000)\n"
"           (married? #t))))))\n"

msgid ""
"[owner]\n"
"name = Alice\n"
"email = alice@@example.org\n"
"\n"
msgstr ""
"[owner]\n"
"name = Alice\n"
"email = alice@@example.org\n"
"\n"

msgid ""
"[Bob]\n"
"phone-number = 1234\n"
"email = bob@@gnu.org\n"
"is-married = false\n"
"\n"
msgstr ""
"[Bob]\n"
"phone-number = 1234\n"
"email = bob@@gnu.org\n"
"is-married = false\n"
"\n"

msgid ""
"[Charlie]\n"
"phone-number = 0\n"
"is-married = true\n"
msgstr ""
"[Charlie]\n"
"phone-number = 0\n"
"is-married = true\n"

msgid ""
"mount --rbind /proc /mnt/proc\n"
"mount --rbind /sys /mnt/sys\n"
"mount --rbind /dev /mnt/dev\n"
msgstr ""
"mount --rbind /proc /mnt/proc\n"
"mount --rbind /sys /mnt/sys\n"
"mount --rbind /dev /mnt/dev\n"

msgid "mount /dev/sda1 /mnt/boot/efi\n"
msgstr "mount /dev/sda1 /mnt/boot/efi\n"

msgid "chroot /mnt /bin/sh\n"
msgstr "chroot /mnt /bin/sh\n"

msgid ""
"source /var/guix/profiles/system/profile/etc/profile\n"
"source /home/@var{user}/.guix-profile/etc/profile\n"
msgstr ""
"source /var/guix/profiles/system/profile/etc/profile\n"
"source /home/@var{user}/.guix-profile/etc/profile\n"

msgid "source /home/@var{user}/.config/guix/current/etc/profile\n"
msgstr "source /home/@var{user}/.config/guix/current/etc/profile\n"

msgid "guix-daemon --build-users-group=guixbuild --disable-chroot &\n"
msgstr "guix-daemon --build-users-group=guixbuild --disable-chroot &\n"

msgid "guix system reconfigure your-config.scm\n"
msgstr "guix system reconfigure your-config.scm\n"

msgid "home configuration"
msgstr "家目录配置"

msgid "Guix supports declarative configuration of @dfn{home environments} by utilizing the configuration mechanism described in the previous chapter (@pxref{Defining Services}), but for user's dotfiles and packages.  It works both on Guix System and foreign distros and allows users to declare all the packages and services that should be installed and configured for the user.  Once a user has written a file containing a @code{home-environment} record, such a configuration can be @dfn{instantiated} by an unprivileged user with the @command{guix home} command (@pxref{Invoking guix home})."
msgstr "Guix 支持通过声明式方案配置@dfn{家环境},其机制沿用了前文所述(@pxref{Defining Services})的配置体系,但专用于用户的点文件及软件包管理。该方案兼容 Guix 系统与外部发行版,允许用户声明需安装配置的全部软件包及服务。用户编写包含 @code{home-environment} 记录的配置文件后,可通过非特权用户身份执行 @command{guix home} 命令实现配置的@dfn{实例化}(@pxref{Invoking guix home})。"

msgid "The user's home environment usually consists of three basic parts: software, configuration, and state.  Software in mainstream distros are usually installed system-wide, but with GNU Guix most software packages can be installed on a per-user basis without needing root privileges, and are thus considered part of the user’s @dfn{home environment}.  Packages on their own are not very useful in many cases, because often they require some additional configuration, usually config files that reside in @env{XDG_CONFIG_HOME} (@file{~/.config} by default) or other directories.  Everything else can be considered state, like media files, application databases, and logs."
msgstr "家环境通常包含三个基础部分:软件、配置与状态(State)。主流发行版中软件通常需系统级安装,而 GNU Guix 支持多数软件包@dfn{按用户独立安装}(无需根用户权限),此类软件即构成用户的家环境。孤立软件包往往实用性有限,因其常需额外配置——通常体现为存放于 @env{XDG_CONFIG_HOME}(默认为 @file{~/.config})或其他目录的配置文件。其余如媒体文件、应用数据库及日志等则归类为状态数据(State)。"

msgid "Using Guix for managing home environments provides a number of advantages:"
msgstr "采用 Guix 管理家环境的优势如下:"

msgid "All software can be configured in one language (Guile Scheme),"
msgstr "所有软件均可通过单一语言(Guile Scheme)配置,"

msgid "this gives users the ability to share values between configurations of different programs."
msgstr "支持跨程序配置共享数据。"

msgid "A well-defined home environment is self-contained and can be"
msgstr "定义完善的家环境具备自包含性,"

msgid "created in a declarative and reproducible way---there is no need to grab external binaries or manually edit some configuration file."
msgstr "可通过声明式方案实现完全可复现——无需获取外部二进制文件或手动编辑配置文件。"

msgid "After every @command{guix home reconfigure} invocation, a new home"
msgstr "每次执行 @command{guix home reconfigure} 命令后,"

msgid "environment generation will be created.  This means that users can rollback to a previous home environment generation so they don’t have to worry about breaking their configuration."
msgstr "系统将创建新的家环境代,用户可随时回滚至历史代,彻底规避配置损坏风险。"

msgid "It is possible to manage stateful data with Guix Home, this"
msgstr "Guix Home 支持管理状态数据,"

msgid "includes the ability to automatically clone Git repositories on the initial setup of the machine, and periodically running commands like @command{rsync} to sync data with another host.  This functionality is still in an experimental stage, though."
msgstr "包括设备初始设置时自动克隆 Git 仓库,以及周期性执行 @command{rsync} 等命令实现跨主机同步。此功能目前仍属实验性阶段。"

msgid "The home environment is configured by providing a @code{home-environment} declaration in a file that can be passed to the @command{guix home} command (@pxref{Invoking guix home}).  The easiest way to get started is by generating an initial configuration with @command{guix home import}:"
msgstr "家环境通过在文件中定义 @code{home-environment} 声明实现,该文件可传递给 @command{guix home} 命令(@pxref{调用 guix home})。最简入门方式是执行 @command{guix home import} 生成初始配置模板。"

msgid "guix home import ~/src/guix-config\n"
msgstr "guix home import ~/src/guix-config\n"

msgid "The @command{guix home import} command reads some of the ``dot files'' such as @file{~/.bashrc} found in your home directory and copies them to the given directory, @file{~/src/guix-config} in this case; it also reads the contents of your profile, @file{~/.guix-profile}, and, based on that, it populates @file{~/src/guix-config/home-configuration.scm} with a Home configuration that resembles your current configuration."
msgstr "@command{guix home import} 命令会读取家目录中的点文件(如 @file{~/.bashrc}),将其复制至指定目录(本例为 @file{~/src/guix-config});同时解析您的软件集 @file{~/.guix-profile} 内容,据此生成与当前配置相符的 @file{~/src/guix-config/home-configuration.scm} 家目录配置文件。"

msgid "A simple setup can include Bash and a custom text configuration, like in the example below.  Don't be afraid to declare home environment parts, which overlaps with your current dot files: before installing any configuration files, Guix Home will back up existing config files to a separate place in the home directory."
msgstr "基础配置可包含 Bash 及自定义文本配置,如下例所示。无需顾虑家环境配置与现有点文件的重叠:Guix Home 在安装配置文件前,会自动将现有配置备份至家目录独立存储区。"

msgid "It is highly recommended that you manage your shell or shells with Guix Home, because it will make sure that all the necessary scripts are sourced by the shell configuration file.  Otherwise you will need to do it manually. (@pxref{Configuring the Shell})."
msgstr "强烈建议通过 Guix Home 管理您的 shell 环境,因其可确保 shell 配置文件自动加载所有必要脚本,否则需手动配置(@pxref{Configuring the Shell})。"

msgid "home-environment"
msgstr "home-environment"

msgid "%base-home-services"
msgstr "%base-home-services"

msgid "he-config-bare-bones.scm"
msgstr "he-config-bare-bones.scm"

msgid "The @code{packages} field should be self-explanatory, it will install the list of packages into the user's profile.  The most important field is @code{services}, it contains a list of @dfn{home services}, which are the basic building blocks of a home environment."
msgstr "@code{packages} 字段的作用不言而喻,其将在用户软件集中安装指定软件包列表。核心字段当属 @code{services},它包含构成家环境基础单元的@dfn{家服务}(home service)列表。"

msgid "There is no daemon (at least not necessarily) related to a home service, a home service is just an element that is used to declare part of home environment and extend other parts of it.  The extension mechanism discussed in the previous chapter (@pxref{Defining Services}) should not be confused with Shepherd services (@pxref{Shepherd Services}).  Using this extension mechanism and some Scheme code that glues things together gives the user the freedom to declare their own, very custom, home environments."
msgstr "家服务(社区习惯称 home 服务)无需关联守护进程(至少非必需),其本质是用于声明并扩展家环境组件的元素。前文所述扩展机制(@pxref{Defining Services})切勿与 Shepherd 服务(@pxref{Shepherd Services})混淆。通过该扩展机制及协同处理的 Scheme 代码,用户可自由声明高度定制化的家环境。"

msgid "container, for @command{guix home}"
msgstr "@command{guix home} 的容器"

msgid "Once the configuration looks good, you can first test it in a throw-away ``container'':"
msgstr "当配置完善后,可先在临时“容器”中测试:"

msgid "guix home container config.scm\n"
msgstr "guix home container config.scm\n"

msgid "The command above spawns a shell where your home environment is running.  The shell runs in a container, meaning it's isolated from the rest of the system, so it's a good way to try out your configuration---you can see if configuration bits are missing or misbehaving, if daemons get started, and so on.  Once you exit that shell, you're back to the prompt of your original shell ``in the real world''."
msgstr "上述命令将在隔离容器中启动包含您家环境的 Shell。容器化环境确保与主系统完全隔离,是测试配置的理想方式——可验证配置完整性、检测守护进程启动状态等。退出该 Shell 后即返回“现实世界”的原始终端环境。"

msgid "Once you have a configuration file that suits your needs, you can reconfigure your home by running:"
msgstr "当配置文件满足需求后,执行以下命令完成家目录的重新配置:"

msgid "guix home reconfigure config.scm\n"
msgstr "guix home reconfigure config.scm\n"

msgid "This ``builds'' your home environment and creates @file{~/.guix-home} pointing to it.  Voilà!"
msgstr "此操作将构建您的家环境,并创建指向该环境的 @file{~/.guix-home}。大功告成!"

msgid "Make sure the operating system has elogind, systemd, or a similar mechanism to create the XDG run-time directory and has the @env{XDG_RUNTIME_DIR} variable set.  Failing that, the @file{on-first-login} script will not execute anything, and processes like user Shepherd and its descendants will not start."
msgstr "请确保操作系统具备 elogind、systemd 或类似机制以创建 XDG 运行时目录,且已设置 @env{XDG_RUNTIME_DIR} 环境变量。若未满足此条件,@file{on-first-login} 脚本将不会执行任何操作,用户 Shepherd 守护进程及其子进程亦无法启动。"

msgid "If you're using Guix System, you can embed your home configuration in your system configuration such that @command{guix system reconfigure} will deploy both the system @emph{and} your home at once! @xref{guix-home-service-type, @code{guix-home-service-type}}, for how to do that."
msgstr "若使用 Guix 系统,您可将家目录配置嵌入系统配置中,使 @command{guix system reconfigure} 命令同步部署系统@emph{与}家环境!具体方法参见 @xref{guix-home-service-type, @code{guix-home-service-type}}。"

msgid "This section is safe to skip if your shell or shells are managed by Guix Home.  Otherwise, read it carefully."
msgstr "若您已通过 Guix Home 管理 shell,本节内容可跳过。否则请仔细阅读。"

msgid "There are a few scripts that must be evaluated by a login shell to activate the home environment.  The shell startup files only read by login shells often have @code{profile} suffix.  For more information about login shells see @ref{Invoking Bash,,, bash, The GNU Bash Reference Manual} and see @ref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}."
msgstr "需由登录 Shell 执行若干脚本以激活家环境。登录 Shell 专属的启动文件通常带有 @code{profile} 后缀。关于登录 Shell 的详细说明参见 @ref{Invoking Bash,,, bash, The GNU Bash Reference Manual} 及 @ref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}。"

msgid "The first script that needs to be sourced is @file{setup-environment}, which sets all the necessary environment variables (including variables declared by the user) and the second one is @file{on-first-login}, which starts Shepherd for the current user and performs actions declared by other home services that extends @code{home-run-on-first-login-service-type}."
msgstr "需首先加载的脚本是 @file{setup-environment},用于设置所有必要的环境变量(含用户声明的变量);其次是 @file{on-first-login},其功能包括启动当前用户的 Shepherd 守护进程,并执行其他通过 @code{home-run-on-first-login-service-type} 扩展的家目录(home)服务声明的操作。"

msgid "Guix Home will always create @file{~/.profile}, which contains the following lines:"
msgstr "Guix Home 始终会创建包含以下内容的 @file{~/.profile} 文件:"

msgid ""
"HOME_ENVIRONMENT=$HOME/.guix-home\n"
". $HOME_ENVIRONMENT/setup-environment\n"
"$HOME_ENVIRONMENT/on-first-login\n"
msgstr ""
"HOME_ENVIRONMENT=$HOME/.guix-home\n"
". $HOME_ENVIRONMENT/setup-environment\n"
"$HOME_ENVIRONMENT/on-first-login\n"

msgid "This makes POSIX compliant login shells activate the home environment.  However, in most cases this file won't be read by most modern shells, because they are run in non POSIX mode by default and have their own @file{*profile} startup files.  For example Bash will prefer @file{~/.bash_profile} in case it exists and only if it doesn't will it fallback to @file{~/.profile}.  Zsh (if no additional options are specified) will ignore @file{~/.profile}, even if @file{~/.zprofile} doesn't exist."
msgstr "此机制确保符合 POSIX 标准的登录 Shell 能激活家环境。但多数现代 Shell 默认运行于非 POSIX 模式,且拥有专属的 @file{*profile} 启动文件。如 Bash 优先读取 @file{~/.bash_profile},仅当该文件不存在时才回退至 @file{~/.profile};Zsh 则完全忽略 @file{~/.profile}(唉……),即便 @file{~/.zprofile} 缺失。"

msgid "To make your shell respect @file{~/.profile}, add @code{. ~/.profile} or @code{source ~/.profile} to the startup file for the login shell.  In case of Bash, it is @file{~/.bash_profile}, and in case of Zsh, it is @file{~/.zprofile}."
msgstr "要使 Shell 加载@footnote{原文为 “respect”,意为“尊重”。这样的写法使 Shell 人格化,而译文没有体现出这一点。} @file{~/.profile},请在登录 Shell 的启动文件中添加 @code{. ~/.profile} 或 @code{source ~/.profile}。Bash 对应 @file{~/.bash_profile},Zsh 对应 @file{~/.zprofile}。"

msgid "This step is only required if your shell is @emph{not} managed by Guix Home.  Otherwise, everything will be done automatically."
msgstr "此步骤仅当您的 shell @emph{未被} Guix Home 管理时需执行。若已管理,所有操作将自动完成。"

msgid "home services"
msgstr "家服务"

msgid "A @dfn{home service} is not necessarily something that has a daemon and is managed by Shepherd (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}), in most cases it doesn't.  It's a simple building block of the home environment, often declaring a set of packages to be installed in the home environment profile, a set of config files to be symlinked into @env{XDG_CONFIG_HOME} (@file{~/.config} by default), and environment variables to be set by a login shell."
msgstr "@dfn{家服务}未必关联守护进程或由Shepherd管理(@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}),多数情况下其本质是家环境的基础组件。通常功能包括:声明需安装至家目录软件集的软件包组@footnote{原文为 “set” 而非 “group”。}、需符号链接至 @env{XDG_CONFIG_HOME}(默认 @file{~/.config})的配置文件组,以及需由登录 Shell 设置的环境变量组。"

msgid "There is a service extension mechanism (@pxref{Service Composition})  which allows home services to extend other home services and utilize capabilities they provide; for example: declare mcron jobs (@pxref{Top,,, mcron, GNU@tie{}Mcron}) by extending @ref{Mcron Home Service}; declare daemons by extending @ref{Shepherd Home Service}; add commands, which will be invoked on by the Bash by extending @ref{Shells Home Services, @code{home-bash-service-type}}."
msgstr "存在服务扩展机制(@pxref{Service Composition}),允许家服务扩展其他服务并利用其提供的能力;例如:通过扩展 @ref{Mcron Home Service} 声明 mcron 任务(@pxref{Top,,, mcron, GNU@tie{}Mcron});通过扩展 @ref{Shepherd Home Service}声明守护进程;通过扩展 @ref{Shells Home Services, @code{home-bash-service-type}} 添加将由 Bash 执行的命令。"

msgid ""
"export LESSHISTFILE=\"$XDG_CACHE_HOME/.lesshst\"\n"
"export SHELL=\"/gnu/store/2hsg15n644f0glrcbkb1kqknmmqdar03-zsh-5.8/bin/zsh\"\n"
"export _JAVA_AWT_WM_NONREPARENTING\n"
"export LITERAL_VALUE='$@{abc@}'\n"
msgstr ""
"export LESSHISTFILE=\"$XDG_CACHE_HOME/.lesshst\"\n"
"export SHELL=\"/gnu/store/2hsg15n644f0glrcbkb1kqknmmqdar03-zsh-5.8/bin/zsh\"\n"
"export _JAVA_AWT_WM_NONREPARENTING\n"
"export LITERAL_VALUE='$@{abc@}'\n"

msgid ""
"~$ tree -a ./dotfiles/\n"
"dotfiles/\n"
"├── .gitconfig\n"
"├── .gnupg\n"
"│   ├── gpg-agent.conf\n"
"│   └── gpg.conf\n"
"├── .guile\n"
"├── .config\n"
"│   ├── guix\n"
"│   │   └── channels.scm\n"
"│   └── nixpkgs\n"
"│       └── config.nix\n"
"├── .nix-channels\n"
"├── .tmux.conf\n"
"└── .vimrc\n"
msgstr ""
"~$ tree -a ./dotfiles/\n"
"dotfiles/\n"
"├── .gitconfig\n"
"├── .gnupg\n"
"│   ├── gpg-agent.conf\n"
"│   └── gpg.conf\n"
"├── .guile\n"
"├── .config\n"
"│   ├── guix\n"
"│   │   └── channels.scm\n"
"│   └── nixpkgs\n"
"│       └── config.nix\n"
"├── .nix-channels\n"
"├── .tmux.conf\n"
"└── .vimrc\n"

msgid ""
"~$ tree -a ./dotfiles/\n"
"dotfiles/\n"
"├── git\n"
"│   └── .gitconfig\n"
"├── gpg\n"
"│   └── .gnupg\n"
"│       ├── gpg-agent.conf\n"
"│       └── gpg.conf\n"
"├── guile\n"
"│   └── .guile\n"
"├── guix\n"
"│   └── .config\n"
"│       └── guix\n"
"│           └── channels.scm\n"
"├── nix\n"
"│   ├── .config\n"
"│   │   └── nixpkgs\n"
"│   │       └── config.nix\n"
"│   └── .nix-channels\n"
"├── tmux\n"
"│   └── .tmux.conf\n"
"└── vim\n"
"    └── .vimrc\n"
"\n"
msgstr ""
"~$ tree -a ./dotfiles/\n"
"dotfiles/\n"
"├── git\n"
"│   └── .gitconfig\n"
"├── gpg\n"
"│   └── .gnupg\n"
"│       ├── gpg-agent.conf\n"
"│       └── gpg.conf\n"
"├── guile\n"
"│   └── .guile\n"
"├── guix\n"
"│   └── .config\n"
"│       └── guix\n"
"│           └── channels.scm\n"
"├── nix\n"
"│   ├── .config\n"
"│   │   └── nixpkgs\n"
"│   │       └── config.nix\n"
"│   └── .nix-channels\n"
"├── tmux\n"
"│   └── .tmux.conf\n"
"└── vim\n"
"    └── .vimrc\n"
"\n"

msgid ""
".\n"
"├── .config\n"
"│   ├── guix\n"
"│   │   └── channels.scm\n"
"│   └── nixpkgs\n"
"│       └── config.nix\n"
"├── .gitconfig\n"
"├── .gnupg\n"
"│   ├── gpg-agent.conf\n"
"│   └── gpg.conf\n"
"├── .guile\n"
"├── .nix-channels\n"
"├── .tmux.conf\n"
"└── .vimrc\n"
msgstr ""
".\n"
"├── .config\n"
"│   ├── guix\n"
"│   │   └── channels.scm\n"
"│   └── nixpkgs\n"
"│       └── config.nix\n"
"├── .gitconfig\n"
"├── .gnupg\n"
"│   ├── gpg-agent.conf\n"
"│   └── gpg.conf\n"
"├── .guile\n"
"├── .nix-channels\n"
"├── .tmux.conf\n"
"└── .vimrc\n"

msgid "alias ls=\"ls -alF\"\n"
msgstr "alias ls=\"ls -alF\"\n"

msgid "Control-l: clear-screen\n"
msgstr "Control-l: clear-screen\n"

msgid ""
"set bell-style visible\n"
"set colored-completion-prefix on\n"
msgstr ""
"set bell-style visible\n"
"set colored-completion-prefix on\n"

msgid ""
"$if mode=vi\n"
"set show-mode-in-prompt on\n"
"$else\n"
"Control-l: clear-screen\n"
"$endif\n"
msgstr ""
"$if mode=vi\n"
"set show-mode-in-prompt on\n"
"$else\n"
"Control-l: clear-screen\n"
"$endif\n"

msgid "cron, per-user"
msgstr "cron,对单个用户而言"

msgid "mcron, per-user"
msgstr "mcron,对单个用户而言"

msgid "The @code{(gnu home services mcron)} module provides an interface to GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, GNU@tie{}mcron}).  The information about system's mcron is applicable here (@pxref{mcron-service, mcron reference}), the only difference for home services is that they have to be declared in a @code{home-environment} record instead of an @code{operating-system} record."
msgstr "@code{(gnu home services mcron)} 模块提供了与 GNU@tie{}mcron 的接口,这是一个在预定时间运行作业的守护进程 (@pxref{Top,,, mcron, GNU@tie{}mcron})。有关系统 mcron 的信息在这里适用 (@pxref{mcron-service, mcron 参考}),家庭服务的唯一区别是它们必须在 @code{home-environment} 记录中声明,而不是在 @code{operating-system} 记录中。"

msgid "timers, per-user"
msgstr "定时器,对单个用户而言"

msgid "herd start x11-display :3\n"
msgstr "herd start x11-display :3\n"

msgid ""
"(service home-unclutter-service-type\n"
"         (home-unclutter-configuration\n"
"          (idle-timeout 2)))\n"
msgstr ""
"(service home-unclutter-service-type\n"
"         (home-unclutter-configuration\n"
"          (idle-timeout 2)))\n"

msgid "herd start pulseaudio-rtp-sink\n"
msgstr "herd start pulseaudio-rtp-sink\n"

msgid "herd start pulseaudio-rtp-sink 192.168.1.42\n"
msgstr "herd start pulseaudio-rtp-sink 192.168.1.42\n"

msgid "(service home-pulseaudio-rtp-source-service-type)\n"
msgstr "(service home-pulseaudio-rtp-source-service-type)\n"

msgid "herd start pulseaudio-rtp-source\n"
msgstr "herd start pulseaudio-rtp-source\n"

msgid "pw-jack mpv -ao=jack sound-file.wav\n"
msgstr "pw-jack mpv -ao=jack sound-file.wav\n"

msgid "(service home-znc-service-type)\n"
msgstr "(service home-znc-service-type)\n"

msgid ""
"(service home-kodi-service-type\n"
"  (home-kodi-configuration\n"
"   (extra-options '(\"--settings=\"<settings-file>\"))))\n"
msgstr ""
"(service home-kodi-service-type\n"
"  (home-kodi-configuration\n"
"   (extra-options '(\"--settings=\"<settings-file>\"))))\n"

msgid ""
"(sway-mode\n"
" (mode-name \"resize\")\n"
" (keybindings\n"
"  '(($left  . \"resize shrink width 10px\")\n"
"    ($right . \"resize grow width 10px\")\n"
"    ($down  . \"resize grow height 10px\")\n"
"    ($up    . \"resize shrink height 10px\")\n"
"    (Left   . \"resize shrink width 10px\")\n"
"    (Right  . \"resize grow width 10px\")\n"
"    (Down   . \"resize grow height 10px\")\n"
"    (Up     . \"resize shrink height 10px\")\n"
"    (Return . \"mode \\\"default\\\"\")\n"
"    (Escape . \"mode \\\"default\\\"\"))))\n"
msgstr ""
"(sway-mode\n"
" (mode-name \"resize\")\n"
" (keybindings\n"
"  '(($left  . \"resize shrink width 10px\")\n"
"    ($right . \"resize grow width 10px\")\n"
"    ($down  . \"resize grow height 10px\")\n"
"    ($up    . \"resize shrink height 10px\")\n"
"    (Left   . \"resize shrink width 10px\")\n"
"    (Right  . \"resize grow width 10px\")\n"
"    (Down   . \"resize grow height 10px\")\n"
"    (Up     . \"resize shrink height 10px\")\n"
"    (Return . \"mode \\\"default\\\"\")\n"
"    (Escape . \"mode \\\"default\\\"\"))))\n"

msgid "Invoking @command{guix home}"
msgstr "调用 @command{guix home}"

msgid "guix home"
msgstr "guix home"

msgid "guix home @var{options}@dots{} @var{action} @var{file}\n"
msgstr "guix home @var{options}@dots{} @var{action} @var{file}\n"

msgid "guix home container config.scm -- herd status\n"
msgstr "guix home container config.scm -- herd status\n"

msgid "guix home edit home-mcron\n"
msgstr "guix home edit home-mcron\n"

msgid "guix home describe\n"
msgstr "guix home describe\n"

msgid ""
"guix time-machine \\\n"
"  -C /var/guix/profiles/per-user/@var{USER}/guix-home-@var{n}-link/channels.scm -- \\\n"
"  home reconfigure \\\n"
"  /var/guix/profiles/per-user/@var{USER}/guix-home-@var{n}-link/configuration.scm\n"
"\n"
msgstr ""
"guix time-machine \\\n"
"  -C /var/guix/profiles/per-user/@var{USER}/guix-home-@var{n}-link/channels.scm -- \\\n"
"  home reconfigure \\\n"
"  /var/guix/profiles/per-user/@var{USER}/guix-home-@var{n}-link/configuration.scm\n"
"\n"

msgid "guix home switch-generation 7\n"
msgstr "guix home switch-generation 7\n"

msgid "guix home switch-generation -- -1\n"
msgstr "guix home switch-generation -- -1\n"

msgid "guix home delete-generations\n"
msgstr "guix home delete-generations\n"

msgid "guix home delete-generations 2m\n"
msgstr "guix home delete-generations 2m\n"

msgid "guix home describe --list-installed=emacs\n"
msgstr "guix home describe --list-installed=emacs\n"

msgid "guix home list-generations 10d\n"
msgstr "guix home list-generations 10d\n"

msgid ""
"$ guix home import ~/guix-config\n"
"guix home: '/home/alice/guix-config' populated with all the Home configuration files\n"
msgstr ""
"$ guix home import ~/guix-config\n"
"guix home: '/home/alice/guix-config' 填充了所有家配置文件\n"

msgid "guix home extension-graph @var{file} | xdot -\n"
msgstr "guix home extension-graph @var{file} | xdot -\n"

msgid ""
"$ info -k TLS\n"
"\"(emacs)Network Security\" -- STARTTLS\n"
"\"(emacs)Network Security\" -- TLS\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
"@dots{}\n"
msgstr ""
"$ info -k TLS\n"
"\"(emacs)Network Security\" -- STARTTLS\n"
"\"(emacs)Network Security\" -- TLS\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
"@dots{}\n"

msgid ""
"$ man -k TLS\n"
"SSL (7)              - OpenSSL SSL/TLS library\n"
"certtool (1)         - GnuTLS certificate tool\n"
"@dots {}\n"
msgstr ""
"$ man -k TLS\n"
"SSL (7)              - OpenSSL SSL/TLS library\n"
"certtool (1)         - GnuTLS certificate tool\n"
"@dots {}\n"

msgid "$ info \"(gnutls)Core TLS API\"\n"
msgstr "$ info \"(gnutls)Core TLS API\"\n"

msgid "$ man certtool\n"
msgstr "$ man certtool\n"

msgid "@code{platform} Reference"
msgstr "@code{platform} 参考"

msgid "@code{partition} Reference"
msgstr "@code{partition} 参考手册"

msgid "guix system image my-image.scm\n"
msgstr "guix system image my-image.scm\n"

msgid "Same as @code{efi-disk-image} but with a 32 bits EFI partition."
msgstr "与 @code{efi-disk-image} 相同,但是有一个 32 位的 EFI 分区。"

msgid "An ISO-9660 image composed of a single bootable partition.  This image can also be used on most @code{x86_64} and @code{i686} machines."
msgstr "ISO-9660 镜像由一个可引导分区组成。这种镜像可以在大多数 @code{x86_64} 和 @code{i686} 机器上使用。"

msgid "A Docker image that can be used to spawn a Docker container."
msgstr "Docker 镜像可以用来孵化 Docker 容器。"

msgid "Using the @code{efi-disk-image} we can simplify our previous @code{image} declaration this way:"
msgstr "使用 @code{efi-disk-image} 我们就可以像这样简化先前的 @code{image} 声明:"

msgid "This will give the exact same @code{image} instantiation but the @code{image} declaration is simpler."
msgstr "这将会有一模一样的 @code{image} 实例化,不过 @code{image} 声明更加简单。"

msgid "The @command{guix system image} command can, as we saw above, take a file containing an @code{image} declaration as argument and produce an actual disk image from it.  The same command can also handle a file containing an @code{operating-system} declaration as argument.  In that case, how is the @code{operating-system} turned into an image?"
msgstr "正如我们在上面看到的那样,@command{guix system image} 命令可以将含有 @code{image} 声明的文件作为参数,从中产生一个磁盘镜像。同样的命令也可以操纵含有 @code{operating-system} 声明的文件作为参数。在那种情况下,@code{operating-system} 如何变为镜像呢?"

msgid "That's where the @code{image-type} record intervenes.  This record defines how to transform an @code{operating-system} record into an @code{image} record."
msgstr "那是 @code{image-type} 记录干预的地方。这个记录定义了 @code{operating-system} 记录如何转化为 @code{image} 记录。"

msgid "{Data Type} image-type"
msgstr "{数据类型} image-type"

msgid "This is the data type representing an image-type."
msgstr "这是表示镜像类别的数据类型。"

msgid "The image-type name as a mandatory symbol, @code{'efi32-raw} for instance."
msgstr "镜像类型名称是强制性的符号,比如说 @code{'efi32-raw}。"

msgid ""
"wsl --import Guix ./guix ./wsl2-image.tar.gz\n"
"wsl -d Guix\n"
msgstr ""
"wsl --import Guix ./guix ./wsl2-image.tar.gz\n"
"wsl -d Guix\n"

msgid "guix system image gnu/system/images/pine64.scm\n"
msgstr "guix system image gnu/system/images/pine64.scm\n"

msgid "$ guix system image --image-type=pine64-raw my-pine.scm\n"
msgstr "$ guix system image --image-type=pine64-raw my-pine.scm\n"

msgid "guix install glibc:debug guile:debug\n"
msgstr "guix install glibc:debug guile:debug\n"

msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
msgstr "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"

msgid ""
"guile\n"
"(use-modules (gdb))\n"
"(execute (string-append \"set debug-file-directory \"\n"
"                        (or (getenv \"GDB_DEBUG_FILE_DIRECTORY\")\n"
"                            \"~/.guix-profile/lib/debug\")))\n"
"end\n"
msgstr ""
"guile\n"
"(use-modules (gdb))\n"
"(execute (string-append \"set debug-file-directory \"\n"
"                        (or (getenv \"GDB_DEBUG_FILE_DIRECTORY\")\n"
"                            \"~/.guix-profile/lib/debug\")))\n"
"end\n"

msgid ""
"(gdb) bt\n"
"#0  0x00007ffff5f92190 in g_getenv ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8,\n"
"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
"    at dl-init.c:118\n"
msgstr ""
"(gdb) bt\n"
"#0  0x00007ffff5f92190 in g_getenv ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8,\n"
"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
"    at dl-init.c:118\n"

msgid ""
"$ gdb --args sh -c 'exec inkscape'\n"
"@dots{}\n"
"(gdb) b g_getenv\n"
"Function \"g_getenv\" not defined.\n"
"Make breakpoint pending on future shared library load? (y or [n]) y\n"
"Breakpoint 1 (g_getenv) pending.\n"
"(gdb) r\n"
"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
"@dots{}\n"
"(gdb) bt\n"
"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088,\n"
"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
"@dots{}\n"
msgstr ""
"$ gdb --args sh -c 'exec inkscape'\n"
"@dots{}\n"
"(gdb) b g_getenv\n"
"Function \"g_getenv\" not defined.\n"
"Make breakpoint pending on future shared library load? (y or [n]) y\n"
"Breakpoint 1 (g_getenv) pending.\n"
"(gdb) r\n"
"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
"@dots{}\n"
"(gdb) bt\n"
"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088,\n"
"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
"@dots{}\n"

msgid "guix search texlive-\\(scheme\\|collection\\) | recsel -p name,description\n"
msgstr "guix search texlive-\\(scheme\\|collection\\) | recsel -p name,description\n"

msgid ""
"doc.tex: File `tikz.sty' not found.\n"
"doc.tex:7: Emergency stop.\n"
msgstr ""
"doc.tex: File `tikz.sty' not found.\n"
"doc.tex:7: Emergency stop.\n"

msgid ""
"kpathsea: Running mktexmf phvr7t\n"
"! I can't find file `phvr7t'.\n"
msgstr ""
"kpathsea: Running mktexmf phvr7t\n"
"! I can't find file `phvr7t'.\n"

msgid ""
"$ guix search texlive tikz\n"
"name: texlive-pgf\n"
"version: 59745\n"
"@dots{}\n"
msgstr ""
"$ guix search texlive tikz\n"
"name: texlive-pgf\n"
"version: 59745\n"
"@dots{}\n"

msgid ""
"$ tlmgr info phvr7t\n"
"tlmgr: cannot find package phvr7t, searching for other matches:\n"
"\n"
msgstr ""
"$ tlmgr info phvr7t\n"
"tlmgr: cannot find package phvr7t, searching for other matches:\n"
"\n"

msgid ""
"Packages containing `phvr7t' in their title/description:\n"
"\n"
msgstr ""
"Packages containing `phvr7t' in their title/description:\n"
"\n"

msgid ""
"Packages containing files matching `phvr7t':\n"
"helvetic:\n"
"        texmf-dist/fonts/tfm/adobe/helvetic/phvr7t.tfm\n"
"        texmf-dist/fonts/tfm/adobe/helvetic/phvr7tn.tfm\n"
"        texmf-dist/fonts/vf/adobe/helvetic/phvr7t.vf\n"
"        texmf-dist/fonts/vf/adobe/helvetic/phvr7tn.vf\n"
"tex4ht:\n"
"        texmf-dist/tex4ht/ht-fonts/alias/adobe/helvetic/phvr7t.htf\n"
msgstr ""
"Packages containing files matching `phvr7t':\n"
"helvetic:\n"
"        texmf-dist/fonts/tfm/adobe/helvetic/phvr7t.tfm\n"
"        texmf-dist/fonts/tfm/adobe/helvetic/phvr7tn.tfm\n"
"        texmf-dist/fonts/vf/adobe/helvetic/phvr7t.vf\n"
"        texmf-dist/fonts/vf/adobe/helvetic/phvr7tn.vf\n"
"tex4ht:\n"
"        texmf-dist/tex4ht/ht-fonts/alias/adobe/helvetic/phvr7t.htf\n"

msgid "guix build bash --no-grafts\n"
msgstr "guix build bash --no-grafts\n"

msgid "guix build bash\n"
msgstr "guix build bash\n"

msgid "guix gc -R $(readlink -f ~/.guix-profile) | grep bash\n"
msgstr "guix gc -R $(readlink -f ~/.guix-profile) | grep bash\n"

msgid "guix gc -R $(guix system build my-config.scm) | grep bash\n"
msgstr "guix gc -R $(guix system build my-config.scm) | grep bash\n"

msgid "lsof | grep /gnu/store/.*bash\n"
msgstr "lsof | grep /gnu/store/.*bash\n"

msgid "./hex0-seed hex0_x86.hex0 hex0\n"
msgstr "./hex0-seed hex0_x86.hex0 hex0\n"

msgid ""
"sed 's/[;#].*$//g' hex0_x86.hex0 | xxd -r -p > hex0\n"
"chmod +x hex0\n"
msgstr ""
"sed 's/[;#].*$//g' hex0_x86.hex0 | xxd -r -p > hex0\n"
"chmod +x hex0\n"

msgid ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
"  | dot -Tps > gcc.ps\n"
msgstr ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
"  | dot -Tps > gcc.ps\n"

msgid ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
"  | dot -Tps > mes.ps\n"
msgstr ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
"  | dot -Tps > mes.ps\n"

msgid ""
"guix graph -t bag \\\n"
"  -e '(@@@@ (gnu packages commencement)\n"
"          glibc-final-with-bootstrap-bash)' | xdot -\n"
msgstr ""
"guix graph -t bag \\\n"
"  -e '(@@@@ (gnu packages commencement)\n"
"          glibc-final-with-bootstrap-bash)' | xdot -\n"

msgid "guix build bootstrap-tarballs\n"
msgstr "guix build bootstrap-tarballs\n"

msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
msgstr "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"

msgid "contributing.texi"
msgstr "contributing.zh_CN.texi"

msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
msgstr "基于 Nix 的软件发行版 Nixpkgs 和 NixOS 也给 Guix 带来了灵感。"

msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people.  See the @file{AUTHORS} file in Guix for more information on these fine people.  The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
msgstr "GNU@tie{}Guix 是一个许多人参与贡献的集体项目。在 Guix 的 @file{AUTHORS} 中能更多地了解这些大好人。@file{THANKS} 中列出了乐于助人者们:报告程序错误、维护基建、艺术创作,提出建议等等——谢谢你们!"

msgid "license, GNU Free Documentation License"
msgstr "许可证,GNU Free Documentation License"

msgid "fdl-1.3.texi"
msgstr "fdl-1.3.texi"