/usr/share/doc/HOWTO/fr-html/Francophones-HOWTO.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<title>Le Francophones-HOWTO : Linux & la langue
française</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
</head>
<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
"#0000FF" vlink="#840084" alink="#0000FF">
<div class="ARTICLE">
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2" id="AEN2">Le Francophones-HOWTO :
Linux & la langue française</a></h1>
<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Écrit par
Guylhem Aznar, <guylhem(à)metalab.unc.edu></a></h3>
<p class="PUBDATE">v3.2.2 ; Décembre 2001<br></p>
<div>
<div class="ABSTRACT"><a name="AEN8" id="AEN8"></a>
<p>Copyright © 1997, 1998, 1999, Guylhem Aznar ; librement
distribuable selon les termes du GNU Free Documentation License,
<a href="http://www.fsf.org/licenses/fdl.html" target=
"_top">http://www.fsf.org/licenses/fdl.html</a>. Toutes les marques
citées appartiennent à leurs propriétaires
respectifs.</p>
</div>
</div>
<hr></div>
<div class="SECT1">
<h2 class="SECT1"><a name="AEN11" id=
"AEN11">Présentation</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN13" id="AEN13">Introduction</a></h3>
<p>Ce document a été rédigé pour aider
à configurer un ordinateur doté du système
d'exploitation Linux pour des utilisateurs francophones.</p>
<p>Il y est expliqué par exemple comment configurer
périphériques et applications afin de prendre en
compte les particularités et les spécificités
de notre langue...</p>
<p>Toutefois, ce document ne traite pas de l'installation du
système d'exploitation Linux ; il est implicitement
supposé que vous ayez correctement installé une
distribution de Linux, RedHat, Debian ou Suse, cette liste
n'étant pas exhaustive, et que vous vous apprêtiez
maintenant à mieux la configurer ; veuillez donc vous
référer à d'autres HOWTOs pour
l'installation.</p>
<p>Les adresses électroniques ont été
volontairement supprimées ou modifiées en
remplaçant les « a enroulés » par des
« (à) » afin d'éviter les publipostages
très gênants.</p>
<p>Si quelque terme employé vous semble un peu obscur, je
vous invite à vous reporter au lexique (« Vocabulaire
: un petit lexique »), expliquant certains mots tels 8 bits,
AZERTY ou QWERTY, qui sont employés tout au long de ce
document.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN20" id="AEN20">Fichiers
utilisés dans ce HOWTO</a></h3>
<p>Tous les fichiers cités dans ce HOWTO, sont disponibles
sous licence GPL sur <a href="http://metalab.unc.edu/guylhem/"
target="_top">ma page</a></p>
<p>Je vous recommande de télécharger tous ces
fichiers pour les utiliser selon les exemples proposés.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN25" id="AEN25">Les Français ne
sont pas les seuls francophones !</a></h3>
<div class="SECT3">
<h4 class="SECT3"><a name="AEN27" id="AEN27">a) Différentes
versions</a></h4>
<p>Pour chaque manipulation dépendant du pays
concerné, un certain nombre de versions peuvent être
proposées :</p>
<p></p>
<ul>
<li>
<p>une canadienne normalisée (cn)</p>
</li>
<li>
<p>une belge wallonne (be)</p>
</li>
<li>
<p>une française (fr)</p>
</li>
<li>
<p>une québécoise (qc)</p>
</li>
<li>
<p>une suisse romande (sf)</p>
</li>
<li>
<p>une états-unienne internationale (usx)</p>
</li>
</ul>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN44" id="AEN44">b) Les
états-uniens : raccourcis claviers</a></h4>
<p>La version états-unienne internationale permet à
tous les francophones utilisant un clavier « 7 bits »
aussi nommé « QWERTY » de
bénéficier de l'étendue des caractères
8 bits.</p>
<p>Est disponible aussi une version pour ceux qui utilisent un
clavier « Happy Hacking ».</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN48" id="AEN48">c) Le Luxembourg :
comme la France</a></h4>
<p>Le Grand Duché du Luxembourg utilisant les conventions
françaises, j'invite les lecteurs luxembourgeois à se
reporter aux exemples français.</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN51" id="AEN51">d) Le Canada : 3
claviers</a></h4>
<p>Il est classique de parler des claviers « canadien
international », surtout destinés aux anglophones (qui
leur préfèrent toutefois les claviers QWERTY
standard) et les claviers « canadien français »,
aux lettres accentuées.</p>
<p>Mais, de nouveaux claviers dits « canadiens
normalisés » ont fait leur apparition récemment
pour fusionner les modèles « canadien international
», non concerné par le cadre du Francophones HOWTO, et
« canadien français ».</p>
<p>Ces nouveaux claviers répondent aux normes CAN/CSA
Z243.200-92 et ISO 9995-7 ; ils sont prévus pour être
utilisés dans n'importe quelle langue, en remplaçant
par exemple les intitulés des touches par des pictogrammes :
« Del », en anglais, qui se traduisait par «
Suppr » en français devient ainsi trois barres
obliques fines orientées sud-ouest/nord-est.</p>
<p>Plus d'explications sont disponibles sur le <a href=
"%20http://www.olf.gouv.qc.ca/technologies/technopages/claviernorm.html"
target="_top">site de l'Office de la Langue
Française</a>.</p>
<p>Toutefois je n'ai pas pu réussir à me procurer un
tel clavier ; mes fichiers de configuration sont donc uniquement
basés sur les (<a href=
"http://www.olf.gouv.qc.ca/images/clavier.gif" target=
"_top">illustrations</a>) et les normes théoriques, et non
les normes pratiques.</p>
<p>Par exemple, si j'ai compris que la touche « Control
» de droite est utilisée comme une « AltGr
» mais sert à obtenir encore d'autres
caractères, je n'ai aucune idée du comportement de
ces touches lorsque seule l'autre a une sérigraphie
prévue...</p>
<p>Si on peut m'envoyer un tel clavier, et surtout son pilote, je
promets de mettre les fichiers de configuration à jour
:-)</p>
</div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN62" id="AEN62">Attention</a></h3>
<div class="SECT3">
<h4 class="SECT3"><a name="AEN64" id="AEN64">a) ROOT</a></h4>
<p>Certaines manipulations recommandées par ce document ne
peuvent être effectuées que sous le compte
privilégié « root » ; la plus grande
prudence est alors de rigueur car toute action inadéquate
peut mettre en péril le contenu des disques.</p>
<p>Sauvegarder les fichiers existants, par exemple en les copiant
sous le même nom suivi du préfixe .old, avant de les
modifier ou remplacer.</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN68" id="AEN68">b) CHERCHER</a></h4>
<p>Le paquetage GNU nommé <font color="red">find</font>
offre un programme appelé <tt class="LITERAL">locate</tt>,
grâce auquel l'utilisateur peut retrouver le nom complet,
chemin de répertoires, d'un fichier dont il ne connaît
que le nom.</p>
<p>Certaines distributions Linux fournissent cela en
/usr/bin/locate.</p>
<p>En tant que root, lancer <tt class="LITERAL">updatedb</tt>
invoque un <tt class="LITERAL">find /</tt> sur les disques
montés et place les noms de tous les fichiers sous forme
hash dans /usr/lib/locate/find.codes (ou
/var/lib/slocate/slocate.db pour slocate, utilisé dans les
distributions modernes.)</p>
<p><tt class="LITERAL">locate</tt> permet ensuite de localiser l'un
d'eux :</p>
<p></p>
<pre class="SCREEN">
(guylhem@victis:guylhem)$ locate noms_des_fichiers_à_retrouver
</pre></div>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN81" id="AEN81">Les
problèmes</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN83" id=
"AEN83">Présentation</a></h3>
<p>Le problème de tout utilisateur francophone après
l'installation de Linux est de lui faire comprendre qu'il utilise
des normes différentes des standards par défaut
états-uniens..</p>
<p>Cela a des conséquences sur :</p>
<p></p>
<ul>
<li>
<p>la police de caractères donc les caractères
spéciaux que l'on utilise, accentués comme É
È À Ç ou bien ligaturés comme Æ ,
voire « e dans l'o » qui vient d'apparaître sous
Linux grâce à la norme ISO-8859-15 aussi nommée
latin-9</p>
</li>
<li>
<p>la correspondance entre la sérigraphie des cabochons ou
« touches » du clavier sur lesquelles vous appuyez, et
les codes que Linux renvoie, celui-ci supposant un clavier QWERTY
états-unien par défaut</p>
</li>
<li>
<p>le format de page pris en charge par les programmes que vous
utilisez pour imprimer, différent entre les
États-Unis; (14×8,5 pouces pour du papier dit
légal) et l'Europe (29,7×21 cm pour des feuilles
a4)</p>
</li>
<li>
<p>le format des dates et de l'heure, la position des jours et des
mois étant variable selon les régions de la
francophonie</p>
</li>
<li>
<p>le format de la monnaie, aussi variable selon les
francophones</p>
</li>
<li>
<p>la langue utilisée pour les messages d'erreur</p>
</li>
</ul>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN101" id="AEN101">Solutions</a></h3>
<p>Tout est préconfiguré pour un états-unien :
bien que ceux-ci ne représentent pas la majorité de
la population mondiale, ils ont été
précurseurs en informatique.</p>
<p>Il faut donc se faire reconnaître comme une «
exception » par les différents programmes, par des
options ou des variables à exporter voire dans les pires des
cas une modification du code source suivie d'une recompilation.</p>
<p>Heureusement, la philosophie GNU de Linux rend le système
très ouvert à des modifications de toutes sortes et
comme vous allez le découvrir au fil de ce document, et il
est assez simple d'obtenir un résultat très
correct.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN106" id="AEN106">Aider</a></h3>
<p>Pour le moment, le futur de l'internationalisation de Linux
porte sur la traduction des messages d'erreur, des programmes comme
KDE ou GNOME, des pages de manuel et de la documentation, alors si
vous vous sentez l'âme d'un traducteur, n'hésitez pas
à contacter l'équipe de traduction des HOWTOs ; pour
cela, adressez-vous à Éric Dumas
<dumas(à)freenix.fr> ou
<dumas(à)linux.eu.org>.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN109" id="AEN109">Le vocabulaire :
petit lexique</a></h2>
<p>Tout d'abord, un mot sur le vocabulaire employé :</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN112" id="AEN112">8 bits</a></h3>
<p>Des caractères sont dits « 8 bits » s'ils
correspondent à des accents ou à des signes
spéciaux comme « § », non inclus dans le
standard <tt class="LITERAL">ASCII</tt> « 7 bits ».</p>
<p>Ce standard, sans accents ni caractères spéciaux,
correspond aux 128 (2ˆ7) premiers caractères des 256
(2ˆ8), de 0 à 255.</p>
<p>Pour des raisons historiques (place disponible, inutilité
pour les états uniens) seuls les 128 (2ˆ7) premiers
caractères ont été normalisés par
l'ASCII : par exemple le A qui est le 65e caractère de la
table ASCII s'écrit 0100 0001 en notation binaire.</p>
<p>Pour les caractères situés hors de la norme ASCII,
différentes « normes » ou « standards
» incompatibles, comme l'Unicode, l'iso-8859, le latin, le cp
(...) fixent ces correspondances.</p>
<p>Par exemple, dans le standard ASCII étendu par
l'iso-8859-1, le 224ème caractère équivalent
noté « eb » en hexadécimal correspond
à « ë ».</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN120" id="AEN120">La police de
caractères</a></h3>
<p>Une police de caractères est une correspondance entre des
codes informatiques et des caractères
(alphanumériques...) affichables par l'ordinateur.</p>
<p>La police de caractères est l'ensemble des
représentations graphiques des caractères d'un
standard.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN124" id="AEN124">Les polices de
caractères</a></h3>
<p>Il existe plusieurs polices de caractères 8 bits pouvant
répondre au besoins des francophones.</p>
<p>Je vous recommande de lire à ce sujet l'excellent site de
Roman Czyborra qui a fait une thèse sur ce sujet et qui vous
donnera une <a href="http://czyborra.com/charsets/iso8859.html"
target="_top">explication fort détaillée</a></p>
<p>Pour résumer, il est nécessaire de choisir une
police de caractères pour que tous les caractères
français soient disponibles.</p>
<p>Voici la liste des polices dites « ISO 8859 », mais
attention, il existe leurs équivalents en « code page
» pour windows (comme cp1252).</p>
<p></p>
<ul>
<li>
<p>ISO 8859-1 : latin 1 : langues d'Europe de l'ouest, Afrikaans,
Swahili. Le Swahili, n'utilise aucun caractère
accentué (comme l'Anglais, le Malais et
l'Indonésien), donc n'importe quel version fait l'affaire.
Pour l'Afrikaans, je ne sais plus exactement quel était le
choix initial (c'est-à-dire où avait
été rangé le 'n au départ), mais il ne
me semble pas que ce soit dans Latin 1. Dans la pratique, bien
sûr, les Afrikaaner utilisent Latin 1 ; la même chose
se passe pour un certain nombre des cas qui suivent.</p>
</li>
<li>
<p>ISO 8859-2 : latin 2 : langues d'Europe centrale et orientale.
Dans les faits : Polonais, Tchèque, Slovaque,
Slovène, Croate, Hongrois, Roumain, probablement aussi le
Sorbe ou Sorabe (Wende en allemand). Officiellement, je crois que
l'Albanais s'écrit aussi en Latin-2, mais comme dans les
faits c'est identique au Latin 1... Il y a un problème pour
le Roumain, car le Latin 2 contient formellement les
caractères avec une cédille, quand en roumain on
utilise une virgule souscrite.</p>
</li>
<li>
<p>ISO 8859-3 : latin 3 : Espéranto et Maltais.
Initialement, c'était prévu pour les langues d'Europe
du Sud, y compris le Turc, les langues d'Espagne (donc Catalan,
Basque), le Français. Mais dans la pratique, c'est
limité à ces deux langues.</p>
</li>
<li>
<p>ISO 8859-4 : latin 4 : langues baltes (incomplet). Pas
utilisé dans la pratique, remplacé par Latin 7
(iso-8859-13), ou plutôt en pratique la codepage 1257
Windows. Pour l'Este ou Estonien, on peut aussi utiliser Latin
9.</p>
</li>
<li>
<p>ISO 8859-9 : latin 5 (comme latin 1, moins l'Islandais, plus le
Turc). Usage : le Turc et peut-être l'Azéri, mais il
manque le schwa, un « e » renversé. Codage
officiel aux Pays-Bas du fait des Turcs qui y habitent.</p>
</li>
<li>
<p>ISO 8859-10 : latin 6 : langues nordiques, sauf le Lapon Skolt.
Pas utilisé dans la pratique : ne servirait que pour les
langues sames (ou lapones), mais il manque des caractères,
et le public concerné est de toute manière assez
limité.</p>
</li>
<li>
<p>ISO 8859-11 : Thai. Pas encore officiellement adopté.</p>
</li>
<li>
<p>ISO 8859-12 : Indien (n'existe pas encore). Prévu pour le
devanagari, pour écrire l'Hindi, la langue principale de
l'Inde, et aussi un grand nombre d'autres langues indiennes, dont
le Sanskrit.</p>
</li>
<li>
<p>ISO 8859-13 : latin 7 : langues baltes. Plus exactement : couvre
les langues du pourtour de la mer Baltique, donc aussi le Polonais,
l'Allemand et les langues de scandinavie. Mais dans la pratique il
est réduit en utilisation aux langues baltes et à
l'Este ou Estonien.</p>
</li>
<li>
<p>ISO 8859-14 : latin 8 : langues celtes. Pour le Breton, le
Gaélique et les dialectes parlées au Pays de Galles
et en Irlande.</p>
</li>
<li>
<p>ISO 8859-15 : latin 9 : comme latin 1, en y comblant quelques
manques. Pour le Français, le Finnois (en concurrence avec
Latin 1) et l'Este ou Estonien (en concurrence avec Latin 7).</p>
</li>
</ul>
<p>De cette longue liste, il convient de ne retenir que :</p>
<p></p>
<ul>
<li>
<p>ISO 8859-1 latin 1 : police ouest-européenne
utilisée par la majorité des systèmes UNIX,
elle permet de disposer de tous les caractères
Français sauf les « o e liés », l'euro et
l'y tréma majuscule</p>
</li>
<li>
<p>cp850 : équivalent sous DOS de cette police, mais
incompatible : il faut utiliser un outil de traduction de fichiers
tel GNU recode.</p>
</li>
<li>
<p>ISO 8859-15 latin 9 : police de l'union européenne, il
s'agit d'une version révisée de l'ISO 8859-1 latin 1
pour inclure tous les caractères des pays européens ;
ainsi on y retrouve les caractères Français manquant,
l'euro, et des caractères finlandais manquants.</p>
</li>
<li>
<p>latin 0 : l'ISO 8859-15 latin 9 est souvent incorrectement
abrégée en latin0, qui correspondait au nom du
projet, de par son ambition à remplacer le latin 1 un jour.
Je vous renvoie au <a href="http://www.iso.ch/catf/d29505.html"
target="_top">site de l'ISO</a> et à la <a href=
"http://www.indigo.ie/egt/standards/iso8859/8859-15-fr.pdf" target=
"_top">documentation complète de ce standard</a></p>
</li>
<li>
<p>cp1252 : équivalent sous Windows de cette police, aussi
incompatible, qui apporte les mêmes caractères
manquants, du fait d'une révision récente de cette
norme.</p>
</li>
<li>
<p>ISO 8859-9 latin 5 : police officielle en Turquie et en
Hollande, où les caractères Islandais peu
utilisés ont été remplacés par les
caractères turcs.</p>
</li>
<li>
<p>cp1254 : équivalent sous Windows de cette police, aussi
incompatible, qui apporte les caractères manquant au
Français précédemment cités et remplace
les caractères Islandais peu utilisés par les
caractères turcs.</p>
</li>
</ul>
<p>Les choix de polices de caractères sont souvent des
questions ou la raison se heurte aux habitudes.</p>
<p>Pour ma part, si vous hésitez, je vous recommande l'ISO
8859-15 latin 9, pour diverses raisons :</p>
<p></p>
<ul>
<li>
<p>Il supporte l'intégralité des caractères
utilisés en Français de manière standard sur
les UNIX, pour les échanges de fichiers entre Solaris et
Linux par exemple</p>
</li>
<li>
<p>Il s'agit de la police 8 bits choisie par l'union
européenne si l'Unicode, évolution du 8 bits, n'est
pas disponible</p>
</li>
<li>
<p>Il permet d'écrire des textes avec
l'intégralité des caractères utilisés
dans l'union</p>
</li>
<li>
<p>Il est en train de devenir le nouveau standard dans la
messagerie électronique au sens large, supplantant
progressivement l'ISO 8859-1 latin 1</p>
</li>
</ul>
<p>Le Francophones HOWTO utilise donc le latin 9 dans tous les
exemples, car il y a de grandes chances que votre système ne
soit pas encore compatible latin 9... autant donc vous proposer des
manipulations et des travaux pratiques utiles :-)</p>
<p>Toutefois, si vous ne pouvez utiliser l'ISO 8859-15 latin 9 et
décidez d'en choisir une autre, je vous recommande
d'éviter les cp propres au monde DOS/Windows et de vous
rabattre sur l'ISO 8859-1 latin 1 qui est encore un standard fort
répandu : dans chaque exemple je vous invite alors à
remplacer les « latin9 » par des « latin1
»</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN188" id="AEN188">Table de
clavier</a></h3>
<p>Une table de clavier est un fichier permettant de faire
correspondre l'empreinte physique des cabochons, « touches
» du clavier, au résultat obtenu sur l'écran de
l'ordinateur.</p>
<p>Pour linux, ces fichiers sont dans /usr/lib/kbd/keytables/ ou
/usr/share/kbd/keytables/</p>
<p>Par exemple, les claviers français AZERTY ont une table
de clavier différente des claviers suisse romands QWERTZ, ou
des claviers du reste du monde, QWERTY.</p>
<p>Cela ne concerne que l'apparence du clavier, l'empreinte des
cabochons, donc disposition relative des caractères sur le
clavier, et non son électronique interne ; si votre clavier
ne vous convient pas, il vous suffit donc d'utiliser des
autocollants pour le transformer en un autre clavier
francophone.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN194" id="AEN194">« Home
», « End », « Page&lowbar;Up » et
« Page&lowbar;Down »</a></h3>
<p>Les touches « Home », « End », «
Page&lowbar;Up » et « Page&lowbar;Down »
dont les noms varient selon les claviers sont les touches
permettant respectivement d'aller en début/fin de ligne et
de monter/descendre d'une page.</p>
<p>Les codes affectes à ces touches sont respectivement 102
et 107 pour « Home » et « End » en mode
terminal.</p>
<p>Dans les pictogrammes des claviers ISO 9995-7, ces touches sont
représentés par des flèches aux traits
appuyés.</p>
<p>Lorsqu'on presse une touche, le clavier émet un code, qui
est intercepté par la table de clavier.</p>
<p>La table de clavier, si elle reconnait le code, renvoie la
chaine associée à la touche, en l'occurence«
"\e&lsqb;4 » pour « End ».</p>
<p>Lorsque bash ou un autre programme reçoit cette chaine,
il ne la connait pas !</p>
<p>Donc il faut lui dire, dans le .inputrc que
"\e&lsqb;4 " signifie "aller à la fin de la
ligne"</p>
<p>Donc pour que ces touches fonctionnent dans le shell bash, on
ajoutera donc dans le fichier .inputrc (dans votre / ou dans
/etc/inputrc) les lignes:</p>
<p></p>
<pre class="SCREEN">
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
set bell-style visible
"\e[1~":beginning-of-line
"\e[3~":delete-char
"\e[4~":end-of-line
"\e\C-h": backward-kill-word
"\e\e[3~": kill-word
</pre>
<p>Les premières lignes permettent d'afficher les
caractères 8 bits, et de remplacer le « bip » en
cas d'erreur par un éclair blanc à
l'écran.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN207" id="AEN207">Touches
mortes</a></h3>
<p>Les touches mortes sont des touches qui ne produisent pas de
caractères en elles-mêmes, mais qui modifient la
façon dont la frappe suivante va être
interprétée, par exemple, le tréma ou l'accent
circonflexe sont en général des touches mortes.</p>
<p>Une touche morte est une touche qui doit donc être suivie
d'un espace pour obtenir l'accent seul, ou dans le cas où
elle est suivie d'une voyelle y positionne un accent, par exemple
:</p>
<p></p>
<pre class="SCREEN">
« ^ » puis « e » donne « ê »
« ^ » puis « espace » donne « ^ »
</pre>
<p>Les touches mortes sont :</p>
<ul>
<li>
<p>be et fr: l'accent aigu en AltGr de 1 pour les Français
et en AltGr de ù pour les Belges, l'accent grave en AltGr de
7 pour les français & en AltGr de carré/cube pour
les Belges, le tréma et l'accent circonflexe tous deux
à côté du P</p>
</li>
<li>
<p>sf et usx: les accent aigus, graves, circonflexes, les
trémas et la tilde</p>
</li>
<li>
<p>qc: les accent graves, circonflexes, les trémas et la
cédille</p>
</li>
</ul>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN221" id="AEN221">« BackSpace
» et « Delete »</a></h3>
<p>En raison d'une erreur volontaire et historique sous Linux, pour
« émuler » le fonctionnement d'un clavier de
console VT, ces 2 touches sont fréquemments
mélangées, au mieux fonctionnant à
l'identique, au pire ne fonctionnant pas du tout.</p>
<p>Commençons donc par bien les définir :</p>
<p></p>
<ul>
<li>
<p>BackSpace : touche placée en haut à droite du
pavé principal, au dessus d' « Entrée »,
au cabochon marqué d'une flèche vers la gauche.</p>
</li>
<li>
<p>Delete : touche du pavé curseur au cabochon marqué
« Suppr » ou « Del », à gauche de
« Fin » ; en ISO 9995-7 elle correspond à trois
barres obliques fines orientées sud-ouest/nord-est.</p>
</li>
</ul>
<p>Le pavé numérique offre une touche au marquage
identique et à effet identique lorsque « Verr Num
» ou « Num Lock » est
désactivé.</p>
<p>Ces deux touches correspondent chacune à un de ces codes
:</p>
<p></p>
<ul>
<li>
<p>BS : caractère ASCII 0x08, ou control-h.</p>
</li>
<li>
<p>DEL : caractère ASCII 0x7F, ou control-?</p>
</li>
<li>
<p>ˆD : caractère ASCII 0x04, ou control-d.</p>
</li>
</ul>
<p>Ceci dans le but d'effacer à gauche du curseur avec
BackSpace, à droite du curseur avec Delete.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN242" id="AEN242">« UTC »
et « GMT »</a></h3>
<p>Chaque partie du monde a sa propre norme horaire, basée
sur des fuseaux.</p>
<p>La France se trouve en zone MET, « heure moyenne
européenne » soit GMT+1 ; la zone « MET DST
» correspond à l'heure d'été
activée soit GMT+2.</p>
<p></p>
<ul>
<li>
<p>GMT est l'heure solaire moyenne de Greenwich. L'heure est
comptée à partir de midi et est donc
décalée de 12 h par rapport au temps universel. GMT
est basée sur la rotation de la terre, ce n'est donc pas un
temps régulier. En effet, la vitesse de rotation de la Terre
subit des variations faibles mais assez chaotiques, en plus elle
diminue sur le long terme.</p>
</li>
<li>
<p>UTC, « temps universel coordonné », est
compté à partir de minuit toujours par rapport au
méridien zéro. Il est basé sur des
étalons atomiques, mais des secondes intercalaires sont
ajoutées occasionnellement pour faire en sorte qu'il ne
s'écarte jamais de plus de une seconde de l'heure solaire
moyenne. <a href="http://opdaf1.obspm.fr/" target="_top">Le site de
l'opdaf</a> et <a href="http://opdaf1.obspm.fr/www/lexique.html"
target="_top">le lexique</a> donnent plus de renseignements.</p>
</li>
</ul>
<p>C'est le temps UTC, défini à Paris, qui sert de
référence aux différentes heures
légales.</p>
<p>L'acronyme « GMT » est employé 99&percnt;
du temps pour désigner UTC, mais c'est une erreur ou un abus
de langage.</p>
<p>Enfin, à titre purement indicatif, il existe l'heure
astronomique, aussi comptée sur des étalons atomiques
mais décalée de 4 minutes par jour de l'heure
terrestre car se basant sur la position de la terre dans l'espace
par rapport aux étoiles.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN257" id="AEN257">Réglage du
clavier sous Linux</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN259" id=
"AEN259">Introduction</a></h3>
<p>Il existe deux programmes pour configurer votre clavier : un
pour la console : <tt class="LITERAL">loadkeys</tt> et un pour
XFree : <tt class="LITERAL">xkbd</tt>.</p>
<p>Pour installer un clavier français sous Linux, tapez
selon votre clavier une des lignes suivantes :</p>
<p></p>
<pre class="SCREEN">
loadkeys tables-clavier/fr/fr-latin9.map
loadkeys tables-clavier/qc/qc-latin1.map
loadkeys tables-clavier/cn/cn-latin1.map
loadkeys tables-clavier/be/be-latin9.map
loadkeys tables-clavier/sf/sf-latin1.map
loadkeys tables-clavier/usx/usx-latin1.map
loadkeys tables-clavier/usx/usx-happy-hacking-latin9.map
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN267" id="AEN267">Attention au stty
!</a></h3>
<p>Avec les tables latin 9 recommandées dans ce HOWTO, pour
linux-console aussi bien que pour X window, <tt class=
"LITERAL">N'UTILISEZ PLUS</tt> :</p>
<p></p>
<pre class="SCREEN">
stty erase ^H
</pre>
<p>ou :</p>
<p></p>
<pre class="SCREEN">
stty erase ^?
</pre>
<p>« stty erase » ne sert en effet qu'à
établir une correspondance entre le code que renvoie une
touche et la fonction <tt class="LITERAL">erase</tt> pour effacer
le caractère.</p>
<p>Les tables ici fournies fonctionnent correctement et ne
nécessitent donc pas de <tt class="LITERAL">stty erase</tt>
qui risquerait surtout de perturber leur bon fonctionnement !</p>
<p>Supprimez-donc ces lignes de vos fichiers d'initialisation de
l'interpréteur de commandes « shell », comme
.bashrc, .bash&lowbar;profile ou .tcshrc .</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN281" id="AEN281">Faire de ces
modifications les défauts au démarrage</a></h3>
<p>D'habitude, loadkeys est exécuté par des scripts
au démarrage ; par exemple dans <tt class=
"LITERAL">/etc/rc.d/init.d/keytable</tt> ou <tt class=
"LITERAL">/etc/rc.d/rc.local</tt>, <tt class=
"LITERAL">init.d/keytable</tt> ou <tt class=
"LITERAL">rc.keymap</tt>.</p>
<p>La commande :</p>
<p></p>
<pre class="SCREEN">
find /etc/rc.d -type f | xargs grep loadkeys
</pre>
<p>vous fournira le nom exact du fichier lançant loadkeys ;
il vous suffit alors de l'éditer pour que vos modifications
soient désormais prise en en compte à chaque
démarrage.</p>
<p>Les distributions RedHat et Debian constituent des exceptions :
la table de clavier par défaut étant définie
dans <tt class="LITERAL">/etc/sysconfig/keyboard</tt> pour la
RedHat et <tt class="LITERAL">/etc/kbd/config</tt> pour les
Debian.</p>
<p>Remplacer donc dans le fichier propre à votre
distribution la table de clavier en question par la bonne table
comme fr-latin9.map (selon votre modèle de clavier)</p>
<p>Vous devrez mettre une copie de la table que vous utilisez dans
le répertoire où votre distribution va chercher les
tables de clavier ; en général
/usr/lib/kbd/keymaps/i386/azerty/ pour une RedHat et
/usr/share/kbd/keymaps/i386/azerty/ pour une Debian.</p>
<p>Allez donc sur télechargez <a href=
"http://metalab.unc.edu/guylhem/francophones-howto.tgz" target=
"_top">l'archive</a>, enregistrez-la dans votre répertoire
/, puis détarrez-la avec la commande:</p>
<p></p>
<pre class="SCREEN">
tar -xzvf francophones-howto.tgz
</pre>
<p>Cela crée un répertoire /french :
placez-vous dans ce répertoire puis tapez :</p>
<p></p>
<pre class="SCREEN">
cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/
</pre>
<p>Pour afficher les caractères latin9, vous devrez
exécuter les instructions de la section « polices de
caractère ».</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN305" id="AEN305">Polices de
caractère</a></h3>
<p>Si vous utilisez console-tools-1998.08.11.tar.gz, vous pourrez
remplacer « setfont » par « consolechars »
: ces programmes servent à charger une police sous linux
console.</p>
<p></p>
<pre class="SCREEN">
setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz
</pre>
<p>Je vous conseille pour des raisons développées
plus bas :</p>
<p></p>
<pre class="SCREEN">
setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz
</pre>
<p>Je ne vous conseille pas les fichiers « lat1 », qui
ne supportent pas l'euro ni les autres caractères
français.</p>
<p>Vous trouverez aussi des fichiers « .uni » qui ne
sont utiles que pour créer des polices ou pour ceux qui
utilisent l'unicode : ils fixent des correspondances entre les
« dessins » des caractères dans la police et les
codes des dits caractères, un même dessin pouvant
correspondre à plusieurs codes dans l'example de
d'unicode.</p>
<p>Pour les polices toutes faites, vous pouvez forcer cette
correspondace avec l'option « -u fichier.uni ».</p>
<p>Si vous tenez à les installer, copiez de la même
manière tous les fichiers commençant par « lat9
» et se terminant par « .uni » dans le
répertoire /usr/lib/kbd/consoletrans avec la commande:</p>
<p></p>
<pre class="SCREEN">
cp lat9*.uni /usr/lib/kbd/consoletrans
</pre>
<p>D'habitude, setfont est exécuté par des scripts au
démarrage ; par exemple dans <tt class=
"LITERAL">/etc/rc.d/init.d/keytable</tt> ou <tt class=
"LITERAL">/etc/rc.d/rc.local</tt>, <tt class=
"LITERAL">init.d/keytable</tt> ou <tt class=
"LITERAL">rc.keymap</tt>.</p>
<p>La commande :</p>
<p></p>
<pre class="SCREEN">
find /etc/rc.d -type f | xargs grep setfont
</pre>
<p>vous fournira sur le nom exact du fichier lançant setfont
; il vous suffit alors de l'éditer pour que vos
modifications soient désormais prise en en compte à
chaque démarrage...</p>
<p>Les distributions RedHat et Debian constituent des exceptions :
la police par défaut étant définie dans
<tt class="LITERAL">/etc/sysconfig/i18n</tt> pour la RedHat et
<tt class="LITERAL">/etc/kbd/config</tt> pour les Debian.</p>
<p>Dans <tt class="LITERAL">/etc/sysconfig/i18n</tt> rajouter une
ligne de la forme :</p>
<p></p>
<pre class="SCREEN">
SYSFONT=xxxE-NN.psf
</pre>
<p></p>
<ul>
<li>
<p>xxx représente le type de police ; il doit s'agir d'une
lat pour les francophones ce qui signifie ISO 8859 ou latin. Sans
cela il n'y a plus de caractères « étendus
» comme les voyelles accentués, symboles de
ponctuation comme paragraphe...</p>
</li>
<li>
<p>E représente l'encodage latin, par exemple 1 pour latin1,
0 ou 9 pour latin9</p>
</li>
<li>
<p>NNN représente la taille individuelle de chaque
caractère ; 08 est presque illisible mais 16 est un peu
gros... À régler selon les goûts de chacun.</p>
</li>
</ul>
<p>Je vous conseille la police lat9-16u.psf ou son
équivalent lat0-16.psf installée par défaut
sur la plupart des distributions, très souvent
compressée donc avec le suffixe « .gz » .</p>
<p>&lsqb; rajouter une explication sur comment installer la
police ]</p>
<p>La section « une police, des polices » vous donnera
plus de détails sur les polices disponibles.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN346" id="AEN346">Vieilles
versions</a></h3>
<p>Si lors du chargement de la table de clavier vous rencontrez un
message d'erreur similaire au suivant :</p>
<p></p>
<pre class="SCREEN">
(guylhem@victis:guylhem)$ loadkeys fr-latin9.map
Loading /usr/lib/kbd/keytables/fr-latin9.map
unknown keysym 'dead_cedilla'
/usr/lib/kbd/keytables/fr-latin9.map:67: parse error
syntax error in map file
key bindings not changed
</pre>
<p>Cela signifie que votre version de kbd dont le programme
loadkeys dépend est trop vieille : il faut vous procurer une
version plus récente du programme.</p>
<p>Il existait et existe encore des versions des tables de clavier
pour ceux ne voulant ni touches mortes ni accents, mais celles-ci
tombent actuellement en désuétude puisque la grande
majorité des programmes prennent désormais en charge
ces fameuses touches mortes et les caractères
accentués.</p>
<p>De plus, les tables fournies avec ce HOWTO permettent de se
servir des touches mortes ou de s'en passer si un programme les
refuse, les deux cas ayant été prévus :</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN354" id="AEN354">Améliorations
spécifiques au clavier français latin9</a></h3>
<p>Ça y est, vous pouvez taper du texte latin 9 sous Linux
en mode console !</p>
<p>Seules 2 touches ont été modifiées :</p>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN358" id="AEN358">a)
carré/cube</a></h4>
<p>Elle sert maintenant à oe/OE liés ; en AltGr on y
trouve les guillemets français.</p>
<p>Le carré & le cube restent respectivement accessibles
en AltGr (ù) et Alt Gr(*), les guillemets étant aussi
directement accessibles avec AltGr (w) et AltGr (x), selon la norme
ISO 9995 part 3 appliquée à la norme AZERTY
française.</p>
<p>En résumé :</p>
<ul>
<li>
<p>AltGr (œ) : «</p>
</li>
<li>
<p>AltGr + Shift (œ) : »</p>
</li>
<li>
<p>AltGr (w) : «</p>
</li>
<li>
<p>AltGr (x) : »</p>
</li>
<li>
<p>AltGr (m) : ¹</p>
</li>
<li>
<p>AltGr (ù) : ²</p>
</li>
<li>
<p>AltGr (*) : ³</p>
</li>
</ul>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN378" id="AEN378">b) dollar / livre /
symbole monétaire international</a></h4>
<p>Étant donné que le symbole monétaire
international n'est plus disponible dans la norme d'encodage ISO
8859-15, il a été remplacé par la division
centésimale de l'euro : le cent, disponible donc en AltGr
($).</p>
<p>Dans les précédentes versions, le dollar & la
livre, des monnaies étrangères, avaient
été déplacés pour laisser la place
à l'euro et au cent, notre monnaie.</p>
<p>De telles modifications étaient permises par les
recommandations officielles de l'EURO WORKSHOP mais allaient
à l'encontre de la norme AZERTY : si la position AltGr (e)
est déjà occupée sur un clavier, la position
de l'euro est laissée au libre choix des programmeurs.</p>
<p>AltGr (e) sert à faire « ê » depuis
1992 sous Linux, mais devant les protestations légitimes
d'utilisateurs disposant d'un clavier où l'euro est
sérigraphié en AltGr (e), j'ai du déplacer le
ê en AltGr + Shift ($).</p>
<p>Désolé d'avoir rompu la « tradition »
linuxienne pour conserver la compatibilité à la norme
AZERTY & aux recommandations officielles de l'EURO WORKSHOP
!</p>
<p>En résumé :</p>
<p></p>
<ul>
<li>
<p>AltGr (e) : euro</p>
</li>
<li>
<p>AltGr ($) : cent</p>
</li>
<li>
<p>AltGr + Shift ($) : ê</p>
</li>
</ul>
</div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN394" id="AEN394">Pour les autres
claviers latin9</a></h3>
<p>L'euro & les cents ont été rajoutés
respectivement en AltGr (e) & en AltGr (c).</p>
<p>La touche AltGr a donc été rajoutée ; pour
utiliser ces fonctions avec toute table de clavier, il suffit de
charger other-latin9.map après votre table nationale.</p>
<p>La plupart des améliorations du clavier français
ont été transposées aux claviers nationaux par
des auteurs externes.</p>
<p>Toutefois, je ne possède pas chaque modèle de
clavier et ne peut expliquer en détail toutes ces
modifications ; des sections spécifiques seront donc
rajoutées par la suite par d'autres auteurs.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN400" id="AEN400">Dans tous les
cas</a></h3>
<p>« Home », « End », « Delete
» et « BackSpace » ont été
corrigées & les touches « Windows » ont
été correctement définies, pour passer d'une
console virtuelle à l'autre.</p>
<p>Des « Composes », séquences à
préfixer par la touche compose ( « ImprÉcran
» ou « Print Screen » par défaut) ont
été rajoutées, mais cela reste transparent
pour l'utilisateur.</p>
<p>Par exemple:</p>
<ul>
<li>
<p>COMPOSE ˆ suivi d'une des lettres (s,S,z,Z) sert à
obtenir les lettres finlandaises rajoutées</p>
</li>
<li>
<p>COMPOSE " suivi d'une des lettres (y,Y) sert à obtenir
les y trémas franco-néerlandais rajoutés</p>
</li>
<li>
<p>COMPOSE - suivi d'une des lettres (e,c,l,y) sert à
obtenir l'euro, le cent, la livre, le yen</p>
</li>
</ul>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN412" id="AEN412">XFree</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN414" id=
"AEN414">Introduction</a></h3>
<p>Il y a quelques années, « xmodmap » servait
à changer les tables de clavier sous XFree, un fichier de
configuration d'ordinaire nommé
/usr/X11/lib/X11/xinit/.Xmodmap étant pris en charge
grâce à votre <tt class="LITERAL">.xinitrc</tt> ou
<tt class="LITERAL">/etc/X11/xinit/xinitrc</tt></p>
<p>Pour convertir une table console correcte, on utilisait «
mk&lowbar;modmap » livré avec l'archive kbd et
généralement installé en
/usr/lib/kbd/keytables</p>
<p>Les utilisateurs désirant personnaliser leur table
xmodmap employaient le programme « xkeycaps ».</p>
<p>Puis XFree 2.1 et les version ultérieures ont reconnu la
disposition des touches du clavier gérée par «
loadkeys », rendant théoriquement xmodmap inutile.</p>
<p>Mais la gestion de la touche « COMPOSE »
assurée par XFree 3.1 laissait un peu à
désirer, la table héritée de « loadkeys
» ne servant guère.</p>
<p>Il fallait donc continuer à employer xmodmap,
l'utilitaire logiciel standard permettant d'obliger le serveur X
à associer les événements souris/clavier
à des caractères.</p>
<p>Sous XFree version 3.2 et postérieures, « xkb
» rendit xmodmap définitivement obsolète.</p>
<p>Mais ne voilà-t-il pas les rumeurs qui voulaient que les
prochaines versions de XFree ne supporte plus les touches mortes se
sont confirmées !!!</p>
<p>Dans la distribution X11 du X Consortium, donc XFree86, qui en
est directement issu, il n'existe plus de mécanisme
général de gestion des touches mortes, ou des
solutions approximatives obligeant à supprimer aussi xkb ou
modifier des bibliothèques de programmes !</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN427" id="AEN427">Mal
programmer</a></h3>
<p>À chaque programme de bien gérer les touches
mortes au lieu de faire confiance à X pour cette
tâche.</p>
<p>En réalité, il n'est pas compliqué de
gérer des touches mortes, il suffit d'utiliser la bonne
fonction, XmbLookupString() dans les programmes Motif, au lieu de
XLookupString().</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN431" id="AEN431">Le clavier en
pratique</a></h3>
<p>Quelle histoire compliquée !</p>
<p>De ce fait, elles ne fonctionnent que pour les clients X «
internationalisés », c'est-à-dire qui
gèrent eux-mêmes les problèmes liés aux
méthodes d'entrée de données des
différentes langues nationales.</p>
<p>Ceci est très gênant lorsqu'on veut pouvoir saisir
du texte comportant des lettres accentuées, alors que le
client utilisé n'est pas internationalisé !</p>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN436" id="AEN436">a) Solution
utilisant xmodmap</a></h4>
<p>Taper :</p>
<p></p>
<pre class="SCREEN">
cp fr-latin9.xmod /usr/X11R6/lib/X11/xinit/Xmodmap
cp fr-latin9.xmod ~/.Xmodmap
</pre></div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN441" id="AEN441">b) Solution
utilisant xkb (recommandée)</a></h4>
<p>Taper :</p>
<p></p>
<pre class="SCREEN">
cp fr-latin9 /usr/X11R6/lib/X11/xkb/symbols
</pre>
<p>Puis éditer votre <tt class="LITERAL">XF86Config</tt>
pour y rajouter dans la section « Keyboard » les lignes
xkb idoines :</p>
<p></p>
<pre class="SCREEN">
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 30
LeftAlt Meta
RightAlt ModeShift # Important pour Alt-gr, mais dans les
# versions récentes de XFree, AltGr et
# RightAlt sont synonymes.
ScrollLock Compose # Pour faire des caractères spéciaux.
# Utiliser sinon une des 3 touches des
# nouveaux claviers 105 touches...
RightCtl Control # Garder la touche normale
XkbKeycodes "xfree86"
XkbRules "xfree86"
XkbTypes "default"
XkbCompat "default"
XkbSymbols "fr-latin9(pc105)"
XkbGeometry "pc(pc105)"
XkbModel "pc105"
EndSection
</pre>
<p>Pour cette partie Xkb, certains préfèrent :</p>
<pre class="SCREEN">
XkbKeymap "xfree86(fr-latin9)"
XkbKeycodes "xfree86"
XkbSymbols "en_US(pc101)+fr-latin9"
XkbGeometry "pc(pc101)"
</pre>
<p>Bien sur, remplacer « fr » par « cn »,
« be », « ch » ou « usx » selon
votre clavier...</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN453" id="AEN453">c) Solution du
compose</a></h4>
<p>Une autre méthode pour obtenir des caractères 8
bits :</p>
<p>Dans <tt class=
"LITERAL">/usr/X11R6/lib/X11/locale/iso8859-1/Compose</tt> se
trouve une table de « correspondance » entre deux
caractères et un résultat ; les deux
caractères sont «mélangés» lors de
l'appui sur la touche Compose : par exemple;</p>
<pre class="SCREEN">
COMPOSE suivi de « e » puis « ^ »
</pre>
<p>a toutes les chances de vous donner ê, y compris dans
l'ordre opposé (« ˆ » puis « e
»)</p>
<p>Mais pour utiliser la touche Compose, vous devez l'affecter
à une touche !</p>
<p>Le paramétrage préconisé,
réglé dans XF86Config, la fait correspondre à
la touche « Arrêt Défil » inutile sous X,
par la commande :</p>
<p></p>
<pre class="SCREEN">
ScrollLock Compose
</pre>
<p>dans la section Keyboard.</p>
<p>Attention, sous Linux en mode console, cette touche est utile
(pour bloquer temporairement la console virtuelle) et c'est «
Impr Écran » ou « Print Screen » qui, ne
servant à rien, est affectée à « Compose
».</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN466" id="AEN466">d) Solution
modifiant la libX11</a></h4>
<p>Thomas Quinot <Thomas.Quinot(à)cuivre.fdn.fr> vous
propose donc sa <tt class="LITERAL">libX11</tt> modifiée,
qui gère les touches mortes de manière transparente
pour tous les clients.</p>
<p>Elle permet également de traiter les séquences
composées inconnues comme des paires de caractères,
par exemple :</p>
<p></p>
<pre class="SCREEN">
~ + / = ~/
</pre>
<p>Pour l'utiliser :</p>
<ul>
<li>
<p>Récupérez libX11-XF3.3.1.tar.gz ;</p>
</li>
<li>
<p>Extrayez le fichier <tt class="LITERAL">libX11.so.6.1</tt> ;</p>
</li>
<li>
<p>Placez-le dans <tt class="LITERAL">/usr/X11R6/lib/</tt> ;</p>
</li>
<li>
<p>Exécutez <tt class="LITERAL">ldconfig</tt> ;</p>
</li>
<li>
<p>Désactivez l'extension XKB en utilisant l'option
<tt class="LITERAL">XkbDisable</tt> dans la section <tt class=
"LITERAL">Keyboard</tt> de votre <tt class=
"LITERAL">XF86Config</tt>.</p>
</li>
</ul>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN491" id="AEN491">e) Est-ce
nécessaire ?</a></h4>
<p>Personnellement, je vous recommande de ne pas toucher à
la libX11, d'oublier xmodmap et de l'alternative xkb + fichiers
latin9 en attendant un autre changement de la politique du X
Consortium envers les touches mortes (ou en rajoutant les options
d'internationalisation au code source de vos programmes.)</p>
<p>Actuellement, si vous n'avez pas de répertoire <tt class=
"LITERAL">/usr/X11R6/lib/X11/xkb/symbols/</tt> cela signifie que
vous n'utilisez pas xkb : procurez-vous donc une version plus
récente de X window !</p>
<p>Sans xkb, XFree se rabattra par défaut sur votre
configuration de clavier pour Linux avec loadkeys.</p>
<p>Toutefois, la translation n'est pas parfaite et je vous
recommanderais plutôt d'éviter cette option, aussi
bien que l'ancien gestionnaire de clavier <tt class=
"LITERAL">Xmodmap</tt>.</p>
<p>Il se peut aussi que sans aucune commande pour xkb, XFree vous
considère comme utilisateur d'un clavier 7 bits !</p>
<p>Il convient donc d'utiliser une table adaptée avec
xkb.</p>
</div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN501" id="AEN501">« latin9
» ou « latin1 » ?</a></h3>
<p>Je vous conseille de choisir les tables <tt class=
"LITERAL">latin9</tt> que je maintiens à jour, plus
récentes que les versions <tt class="LITERAL">latin1</tt>,
permettant d'utiliser de multiples améliorations,
détaillées dans la section clavier sous
linux-console, pour disposer du plus de confort possible et plus
adaptées car maintenu par des francophones.</p>
<p>Les nombreuses améliorations dont elles
bénéficient permettent de pallier au
déficiences de nombreux programmes.</p>
<p>Par exemple, certains programmes en Motif comme Netscape (tm) ne
savent pas encore gérer les touches mortes ... donc
impossible de taper par exemple des ê ou des î sur les
claviers des Belges et Français, puisque la touche morte
« accent circonflexe » est le seul moyen d'obtenir ces
caractères !</p>
<p>« fr-latin9 » répond à ce
problème en proposant une solution de remplacement : AltGr
(voyelle) permet d'obtenir la voyelle avec un accent grave,
AltGr+Shift (voyelle) permet d'obtenir la voyelle avec un
tréma !</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN509" id="AEN509">Table de
correspondances</a></h3>
<p></p>
<ul>
<li>
<p>AltGr (voyelle) : voyelle accent grave</p>
</li>
<li>
<p>AltGr + Shift (voyelle) : voyelle tréma</p>
</li>
<li>
<p>AltGr (touche au dessous de la voyelle) : voyelle majuscule
accent grave</p>
</li>
<li>
<p>AltGr + Shift (touche au dessous de la voyelle) : voyelle
majuscule tréma</p>
</li>
<li>
<p>AltGr + Shift (minuscule accentuée) : majuscule
accentuée</p>
</li>
</ul>
<p>Par exemple :</p>
<p></p>
<ul>
<li>
<p>AltGr (a) : â</p>
</li>
<li>
<p>AltGr (q) : Â</p>
</li>
<li>
<p>AltGr + Shift (ù) : Ù</p>
</li>
</ul>
<p>L'astuce marche aussi pour le c cédille :</p>
<p></p>
<ul>
<li>
<p>AltGr + Shift (ç) : Ç</p>
</li>
</ul>
<p>Donc même dans les pires conditions, si aucune touche
morte ne fonctionne, on peut quand même accéder
à toutes les voyelles accentuées, majuscules et
minuscules !</p>
<p>Vous y trouverez en plus les guillemets français («
»), les symboles employés en physique (ß,
å, delta, phi ...), des signes de monnaies (yen, cent) ou de
copyright (<tt class="LITERAL">tm</tt>, ©) ainsi que des
lettres d'autres langues (Ø, Æ ...).</p>
<p>Tous ces signes s'obtiennent grâce à AltGr
(lettre), par exemple AltGr (b) donne ß, AltGr (r) donne
<tt class="LITERAL">tm</tt>, AltGr (y) donne yen...</p>
<p>Pour vous rapeller simplement de tout celà, tapez par
exemple :</p>
<p></p>
<pre class="SCREEN">
more /usr/lib/kbd/keytables/i386/azerty/fr-latin9.map
</pre>
<p>Pour ce qui est du choix entre latin1 et latin9... à vous
de voir !</p>
<p>Un conseil : essayez l'un puis l'autre si vous avez le
temps.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN547" id="AEN547">Les polices ISO
8859-15 latin 9 sous X</a></h3>
<p>Il est bien d'avoir une table de clavier compatible latin 9,
mais sans police adaptée jamais vous ne verrez les
caractères rajoutés dans cette norme.</p>
<p>Il faut donc utiliser l'utilitaire de conversion «
bdftopcf » qui en quelque sorte permet de compiler les
polices de caractères fournies.</p>
<p>Placez-vous dans le répertoire de l'archive que vous avez
récupéré puis sous root, taper par exemple
pour Xlat9-10x20.bdf ou un autre bdf :</p>
<p></p>
<pre class="SCREEN">
bdftopcf Xlat9-10x20.bdf > Xlat9-10x20-lat9.pcf
gzip Xlat9-10x20-lat9.pcf
mv Xlat9-10x20-lat9.pcf.gz /usr/X11R6/lib/X11/fonts/misc
mkfontdir /usr/X11R6/lib/X11/fonts/misc
</pre>
<p>Celà crée un fichier « Xlat9-10x20-lat9.pcf
» qu'il faut compresser avec gzip, on obtient alors le
fichier « Xlat9-10x20-lat9.pcf.gz » qui doit être
mis dans le répertoire adéquat, pour lequel l'index
des polices de caractères sera mis à jour.</p>
<p>Alors, ajoutez la table de composition latin9 aux compositions
par défaut de X, spécifiques à l'iso 8859-1
:</p>
<p></p>
<pre class="SCREEN">
cat XCompose-lat9 >> /usr/X11R6/lib/X11/locale/iso8859-1/Compose
</pre>
<p>Nous faisons un cat vers l'ISO 8859-1, car X ne reconnaît
pas l'ISO 8859-15 latin9.</p>
<p>De là, redémarrer X ou taper sous son compte
d'utilisateur normal :</p>
<p></p>
<pre class="SCREEN">
xset +fp /usr/X11R6/lib/X11/fonts/misc
</pre>
<p>Si vous utilisez xmodmap, lancez :</p>
<p></p>
<pre class="SCREEN">
xmodmap ~/.Xmodmap
</pre>
<p>Pour choisir les polices latin9, lancer xfontsel et chercher les
encodages iso8859-15.</p>
<p>Ou plus simplement, taper :</p>
<p></p>
<pre class="SCREEN">
grep Xlat9-10x20.pcf /usr/X11R6/lib/X11/fonts/misc/*
</pre>
<p>Puis utiliser le second paramètre comme nom de police,
par exemple avec rxvt, xiterm, aterm ou wterm:</p>
<p></p>
<pre class="SCREEN">
aterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15
</pre>
<p>Cela lance un terminal X utilisant une des polices latin9.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN573" id="AEN573">Réglage du
clavier pour les applications en mode texte</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN575" id="AEN575">Tout
d'abord</a></h3>
<p>Le huitième bit doit survivre à l'entrée du
noyau, assurez-vous-en donc avec :</p>
<p></p>
<pre class="SCREEN">
stty cs8 -istrip -parenb
</pre>
<p>Ensuite, il convient de s'assurer que l'application est apte
à supporter les caractères 8 bits : par exemple,
ispell n'est pas compilé pour des caractères 8 bits
par défaut : il faut le recompiler sans l'option :</p>
<p></p>
<pre class="SCREEN">
-NO8BIT
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN583" id="AEN583">Une police, des
polices...</a></h3>
<p>Avant d'aborder cette section, je vous conseille de lire
l'introduction sur les polices pour appréhender un peu mieux
le vocabulaire de base et les différentes normes de
polices.</p>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN586" id="AEN586">a) Historique des
polices</a></h4>
<p>De l'ASCII à l'Unicode, en passant par l'ISO 8859, le
latin et le cp, on peut résumer l'histoire des polices en
grandes étapes :</p>
<p>Au début était l'ASCII, qui codait ses
caractères sur 7 bits.</p>
<p>Prévu pour des états-uniens, il était
impossible d'incorporer des caractères accentués
à la norme déjà présente de 127
caractères.</p>
<p>Ainsi vint le 8 bits qui étendit le nombre de
caractères à 255 et les normes ISO 8859, latin et cp,
pour les plus connues, qui vinrent pallier à cette
déficience du fait des 128 positions supplémentaires
disponibles en encodant les caractères sur 8 bits.</p>
<p>Mais plusieurs de ces normes étaient nécessaire du
fait de l'impossibilité de faire tenir les caractères
de toutes les langues du monde sur 8 bits.</p>
<p>La norme ISO 8859-1 latin 1, la plus utilisée, se destine
par exemple au langues d'Europe de l'ouest, du nord,
d'Amérique, la norme ISO 8859-2 latin 2 est prévue
pour l'Europe de l'est...</p>
<p>L'Unicode est l'un de ces standard, destiné à
terme à remplacer les différentes évolutions
de l'ASCII ; comme le passage du 7 bits au 8 bits il correspond
à une extension de la place disponible, tout en reprenant
l'ancienne partie comme ASCII et ISO 8859-1 latin 1 pour rester
compatible avec la majorité du parc installé.</p>
<p>L'Unicode offre l'avantage de proposer les caractères
nécessaires à toutes les langues du monde, mais reste
encore peu utilisé ou implémenté.</p>
<p>En effet, il est impossible de l'utiliser en pratique sous
linux-console, la mémoire exigüe de la carte
vidéo ne permettant pas de stocker tous les
caractères de l'Unicode, et sous X la gestion actuelle des
polices rendrait son utilisation trop inconfortable.</p>
<p>Attendons un peu que les polices « True Type » se
répandent sous X, grâce à des outils comme
freetype, xfstt (...) et le très attendu XFree 4 qui devrait
les supporter en natif.</p>
<p>Actuellement, la nouvelle norme européenne ISO 8859-15
latin 9 est censée permettre la transition vers l'Unicode en
apportant à l'ancien ISO 8859-1 latin 1 les
caractères qu'il manquait actuellement.</p>
<p>Toutefois elle est partiellement incompatible avec l'Unicode
puisque l'ISO 8859-1 latin 1 avait été choisi comme
base pour l'Unicode, mais que cette police veut compléter
les failles de l'ISO 8859-1 latin 1 en y rajoutant des
caractères déjà présents dans
l'Unicode...</p>
<p>Quelle complexité pour de simple lettres !</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN601" id="AEN601">b) ISO 8859-15 latin
9</a></h4>
<p>De nous jours, il vaut mieux installer par défaut la
nouvelle norme ISO 8859-15 latin 9, destinée à
remplacer l'ensemble des polices européennes par une
seule.</p>
<p>Son but est voisin de l'Unicode, mais elle a l'avantage
d'être plus légère que celui-ci et d'être
applicable tout de suite.</p>
<p>Elle apporte notamment des caractères qui manquaient
beaucoup pour les Français et les Finlandais :</p>
<p></p>
<ul>
<li>
<p>« e dans l'o » en majuscule et minuscule pour les
Français, par exemple pour les mots œuf, cœur,
bœuf, œil ...</p>
</li>
<li>
<p>« s chapeau inversé » en majuscule et
minuscule pour les Finlandais</p>
</li>
<li>
<p>« z chapeau inversé » en majuscule et
minuscule pour les Finlandais</p>
</li>
<li>
<p>« l'EURO » pour tous les pays européens</p>
</li>
</ul>
<p>Cette nouvelle norme, ISO 8859-15 latin 9 aussi connue sous le
nom générique latin0, reste cependant encore
très peu répandue par rapport à la norme
actuelle ISO 8859-1 latin 1.</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN617" id="AEN617">c) Utiliser les
polices ISO 8859-15 latin 9</a></h4>
<p>Vous n'avez besoin que d'une seule police !</p>
<p>Or il en existe plusieurs types répondant
différemment à la même norme iso-8859-15 latin9
« latin0 » sous linux :</p>
<ul>
<li>
<p>par tradition l'opposition latN/latNu selon l'inclusion ou non
d'une table de correspondance Unicode.</p>
</li>
<li>
<p>en réalité les différences vont bien plus
loin, de l'ordre dans lequel sont les caractères de la
police, ce qui joue sur l'aspect des applications semi graphique,
les correspondances avec des caractères latin1 ±
latin9 ± Unicode ce qui a un rôle dans la
compatibilité croisée ou exclusive, par exemple
purement Unicode...</p>
</li>
</ul>
<p>J'ai donc complété par 2 types de ma
création pour répondre au mieux aux différents
besoins.</p>
<p></p>
<pre class="SCREEN">
| Encodage dans | Inclusion d'une | Compatibilité | Compatibilité
| l'ordre iso | table Unicode | exclusive | croisée
--------------------------------------------------------------------------
lat9 | oui | non | non | lat1 + lat9
--------------------------------------------------------------------------
lat9u | non | oui | non | lat1 + lat9
--------------------------------------------------------------------------
lat9v | oui | oui | Unicode | non
--------------------------------------------------------------------------
lat9w | oui | oui | non |lat1+lat9+Unicode
--------------------------------------------------------------------------
</pre>
<p>Voici plus d'explications :</p>
<p></p>
<ul>
<li>
<p>les lat9 tout court ne contiennent pas de table de
correspondance Unicode, ce qui fait que tous les symboles
monétaires internationaux apparaîtront comme des euro,
ce qui peut poser des problèmes pour les fichiers issus d'un
ordinateur sous windows ; le cp1252 ou le latin1 sont «
incompatibles » avec le latin9, mais ce dernier a l'avantage
de fonctionner tout de suite sous linux. Dans les versions
récentes du noyau, selon le <a href=
"http://www.multimania.com/ydirson/en/lct/lct/lct-6.html" target=
"_top">site de Yann Dirson</a>, il semble donc que toutes les
polices devraient contenir une table de correspondance
Unicode...</p>
</li>
<li>
<p>des lat9u encodées dans un ordre non standard, mais
identique à celui des polices latXu de kbd, par rapport aux
polices précédentes, en amenant les mêmes
problèmes avec le cp1252 et le latin1 mais en incluant une
table de correspondance Unicode, ce qui permet d'avoir de jolis
caractères semi graphiques sous Yast, mc, ou d'autres
programmes basés sur ncurses ou dialog.</p>
</li>
<li>
<p>des lat9v encodées dans l'ordre officiel iso comme les
lat9 mais avec une table Unicode complète : là aucun
symbole monétaire international ne sera remplacé par
l'euro ! Ces polices sont utiles pour éviter les
problèmes d'export, grâce à l'Unicode *pur*,
avec une table de clavier Unicode adaptée : tous les
caractères latin9 sont remplacés par des
caractères Unicodes et affichés ainsi, ce qui a le
mérite d'être compatible avec le latin9, l'Unicode,
d'être élégant techniquement mais inutilisable
« normalement » sous linux-console. Presque aucun
système n'est entièrement prêt pour l'Unicode
!</p>
</li>
</ul>
<p>Donc n'utilisez les polices lat9, lat9u ou lat9v que si vous
savez ce que vous faites, je vous recommande pour ma part le
meilleur compromis : les polices lat9w qui permettent de passer au
latin9 immédiatement, en posant quelques problèmes
pour les caractères latin1 qui seront remplacés par
leurs équivalents latin9, mais sans rendre l'Unicode
obligatoire comme les lat9U, sans emmêler les
caractères graphiques comme les lat9, et en permettant aussi
d'afficher les caractères spécifiques au latin9 en
Unicode *pur*, à l'exception des caractères
spécifiques au latin1 donc...</p>
<p>Je vous rassure, vous n'êtes pas obligés de
comprendre tout ce qui suit pour « passer à l'euro
», si effectivement vous ne savez toujours pas de quelle
police vous avez besoin, un conseil : utiliser les lat9w.</p>
<p>Pour utiliser la police lat9-16.psf ou un autre lat9 .psf, vous
devez pallier l'absence d'une table Unicode en en chargeant
une.</p>
<p></p>
<pre class="SCREEN">
loadunimap fonts/linux-console/lat9.uni
setfont fonts/linux-console/lat9-16.psf
</pre>
<p>Pour utiliser la police lat9w-16.psf ou une autre lat9u, lat9v
ou lat9w :</p>
<p></p>
<pre class="SCREEN">
setfont /fonts/linux-console/lat9w-16.psf
</pre></div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN647" id="AEN647">d) Unicode</a></h4>
<p>Une alternative est l'Unicode, mais les programmes l'utilisant
sont encore trop peu nombreux pour qu'elle soit valable.</p>
<p>Citons quand même yuedit et le projet « 9 »
(9term, 9wm... rien à voir avec l'opérateur
télécom français du même nom) qui
utilisent l'Unicode sous X, avec plus ou moins de
succès.</p>
<p>En revanche, sous linux-console, tout programme peut utiliser
l'Unicode.</p>
<p>Mais, hélas!, aussi grande que soit la mémoire des
cartes vidéos actuelles, elle ne peut charger
l'intégralité des caractères d'une police
Unicode.</p>
<p>Il existe donc des « jeux de caractères »
limités mais bien utiles pour les langues baltiques,
asiatiques, est-africaines...</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN654" id="AEN654">e) Utiliser les
possibilités Unicode</a></h4>
<p>Essayez par exemple ce fichier <tt class=
"LITERAL">unicode-lance</tt> pour passer en mode Unicode:</p>
<p></p>
<pre class="SCREEN">
#!/bin/sh
echo -e '\033%8'
kbd_mode -u
loadkeys fr-unicode.map
setfont lat9u-16.psf
</pre>
<p>et ce fichier <tt class="LITERAL">latin-retourne</tt> pour
revenir en mode latin normal:</p>
<p></p>
<pre class="SCREEN">
#!/bin/sh
echo -e '\033%@'
kbd_mode -a
loadkeys fr-latin9.map
setfont lat9w-16.psf
</pre>
<p>Essayez par exemple de lire le fichier <tt class=
"LITERAL">unicode.txt</tt>, encodé en Unicode, une fois
<tt class="LITERAL">unicode-lance</tt> activé.</p>
<p>Vous ne verrez sinon qu'un texte mal encodé, sans
caractères 8 bits, comme cet exemple :</p>
<p></p>
<pre class="SCREEN">
</pre>
<pre class="PROGRAMLISTING">
Ceci est un essai de texte en UNICODE !
On constate que les bétas (Ã~_) et autres lettres 8 bits ne sortent pas bien
si l'on regarde ce fichier en mode latin !
Les accents éèÃ| ù non plus d'ailleurs...
Enfin, heureusement que l'on ne marche pas sur des Å~RUFS, enfin, Å~Sufs !
Ã~Ga marche moyennement disons !
</pre>
<pre>
</pre></div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN671" id="AEN671">Les locales,
messages en Français</a></h3>
<p>Linux en 'version française' existe... mais ne semble pas
facile à obtenir.</p>
<p>La librairie locale(7) &lsqb;cf aussi perllocale, setlocale,
getlocale] utilisée par la librairie C se sert de variables
d'environnement pour définir les préférences
linguistiques et nationales.</p>
<p>Pablo Saratxaga répondait ainsi à Pascal Rigaux en
prenant l'exemple de sort :</p>
<p></p>
<pre class="SCREEN">
PR> J'ai découvert aujourd'hui la variable d'environnement LANG. C'est assez
PR> surprenant de se retrouver avec de l'aide en français (même si elle n'est pas
PR> toujours aussi précise que la version anglaise) quand on fait ls --help.
C'est agréable n'est-ce pas ?
PR> Par contre je ne comprend pas pourquoi un programme comme sort(1) n'utilise pas
PR> cette information pour obtenir un tri acceptable pour les accents (du genre ne
PR> pas mettre « être » après « zen »). Il devrait au moins proposer une option de
PR> ce genre.
Il faudrait regarder les sources de sort...
La fonction à utiliser est strcoll() :
****
STRCOLL(3) Manuel du programmeur Linux STRCOLL(3)
NOM
strcoll - Comparaison de deux chaînes suivant la localisa-
tion en cours.
SYNOPSIS
#include <string.h>
int strcoll (const char *s1, const char *s2);
DESCRIPTION
La fonction strcoll() compare les deux chaînes s1 et s2.
Elle renvoie un entier inférieur, égal ou supérieur a zéro
si s1 est respectivement inférieure, égale, ou supérieure
a s2. La comparaison est effectuée en se basant sur la
localisation en cours pour la catégorie LC_COLLATE. (Voir
setlocale(3)).
****
qui est donc l'équivalent de strcmp() mais qui tiens compte des locales.
Il faudra s'écrire un strcasecoll() aussi pour bien faire, en utilisant
toupper()/tolower() qui d'après la page de manuel supporte les locales.
Qui s'y colle ? Ça devrait être assez simple à réaliser sur un système GNU
en tout cas.
</pre>
<p>Il existe différente variables à exporter, avec
chacune une fonction spécifique ; le format
standardisé est:</p>
<p></p>
<pre class="SCREEN">
langue[_PAYS[.CHARSET]][@variante]
</pre>
<p>Les crochets dénotent l'optionalité, par exemple:
'fr', 'fr&lowbar;BE', 'fr&lowbar;CH.ISO-8859-15',
no@bokmaal, no@nynorsk,...</p>
<p>Les fonctions de la libc, celle de GNU en tout cas, iront
chercher dans « l'ordre décroissant » si on peut
dire; par exemple si on spécifie
'fr&lowbar;CH.ISO-8859-15' elles chercheront d'abord avec cette
valeur, puis avec 'fr&lowbar;CH' puis avec 'fr'.</p>
<p></p>
<ul>
<li>
<p>LC&lowbar;COLLATE définit les équivalences de
caractères pour les comparaisons (æ peut être
équivalent à ae), pour les ligatures et pour les
césures.</p>
</li>
<li>
<p>LC&lowbar;CTYPE définit les caractères
affichables</p>
</li>
<li>
<p>LC&lowbar;MONETARY définit le format et le symbole de
la monnaie utilisée</p>
</li>
<li>
<p>LC&lowbar;NUMERIC définit le format numérique
: regroupement, marqueur décimal...</p>
</li>
<li>
<p>LC&lowbar;MESSAGES définit la langue des messages</p>
</li>
<li>
<p>LC&lowbar;TIME définit le format de la date, les noms
des jours et des mois</p>
</li>
<li>
<p>LC&lowbar;ALL valeur par défaut des variables
précédentes : si une LC&lowbar; n'est pas
définie, LC&lowbar;ALL est prise en compte, sinon la
libc se rabat sur LANG.</p>
</li>
<li>
<p>LANG différent des variables précédentes,
contient le code langue au format iso : fr,en,de...</p>
</li>
<li>
<p>LANGUAGE liste des locales par ordre de préférence
séparées par deux points (fr:es:dk:en), c'est une
particularité GNU, fort utile si un document n'existe que
dans une langue comme certaines pages de manuel</p>
</li>
</ul>
<p>Les valeurs utilisables pour les francophones sont:</p>
<p></p>
<ul>
<li>
<p>fr français générique</p>
</li>
<li>
<p>fr&lowbar;FR français de France</p>
</li>
<li>
<p>fr&lowbar;BE français de Belgique</p>
</li>
<li>
<p>fr&lowbar;CH français de Suisse</p>
</li>
<li>
<p>fr&lowbar;LU français du Luxembourg</p>
</li>
<li>
<p>fr&lowbar;CA français du Canada</p>
</li>
</ul>
<p>Par exemple, si vous être un Français de France, il
suffit d'indiquer sous bash :</p>
<p></p>
<pre class="SCREEN">
export LANGUAGE=fr_FR
</pre>
<p>Exemple :</p>
<p></p>
<pre class="SCREEN">
bash# export LANGUAGE=es_ES
bash# ls fichier_n_existant_pas
ls: fichier_n_existant_pas: No existe el fichero o el directorio
bash# export LANGUAGE=de_DE
bash# ls fichier_n_existant_pas
ls: fichier_n_existant_pas: Datei oder Verzeichnis nicht gefunden
bash# export LANGUAGE=en_US
bash# ls fichier_n_existant_pas
ls: fichier_n_existant_pas: No such file or directory
bash# export LANGUAGE=fr_FR
bash# ls fichier_n_existant_pas
ls: fichier_n_existant_pas: Aucun fichier ou répertoire de ce type
</pre>
<p>Toutefois, avec le passage à l'euro, ces locales ne sont
plus adaptées.</p>
<p>Je vous conseille donc d'utiliser dans les pays de l'union
passant à l'euro le suffixe « @euro » :</p>
<p></p>
<pre class="SCREEN">
export LC_ALL="fr_FR@euro"
</pre>
<p>Pour cela, installer les nouveaux fichiers sources de locales
dans <tt class="LITERAL">/usr/share/i18n/</tt> en lançant
:</p>
<p></p>
<pre class="SCREEN">
cp charmaps/ISO-8859-15 /usr/share/i18n/charmaps/ISO-8859-15
cp locales/* /usr/share/i18n/locales/
</pre>
<p>Alors, régénérer les locales «
binaires » de <tt class="LITERAL">/usr/share/locales</tt>,
par exemple :</p>
<p></p>
<pre class="SCREEN">
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
</pre>
<p>fr&lowbar;FR@euro inclus les caractères latin 9,
c'est utile pour l'utilisation de LC&lowbar;COLLATE et
LC&lowbar;CTYPE en fait, et la nouvelle monnaie unique.</p>
<p>Pour le moment, le Franc Français (FRF) est toujours la
monnaie officielle en France par exemple, mais lorsque ce sera
l'euro, il suffira de remplacer la locale fr&lowbar;FR par
fr&lowbar;FR@euro.</p>
<p></p>
<pre class="SCREEN">
cd /usr/lib/locales
rm -fr fr_FR
mv fr_FR@euro fr_FR
</pre>
<p>La solution « @euro » est supportée par les
autres UNIX comme Solaris.</p>
<p>Pour les shell scripts, il peut être utile de rajouter
« LC&lowbar;TIME=C » pour empêcher la date
d'être localisé, embêtant pour les grep et
autres qui cherchent « Mon » « Tue »... et
non « Lun », « Mar »...</p>
<p>Les données correspondantes aux préférences
se trouvent généralement dans <tt class=
"LITERAL">/usr/share/locale</tt>. S'ils manquent, vous pouvez
récupérer leur <a href=
"ftp://dkuug.dk/i18n/WG15-collection" target="_top">source</a></p>
<p>Concernant les autres fichiers abordés dans cet article,
vous les trouverez avec les autres fichiers de cet HOWTO sur
<a href="http://metalab.unc.edu/guylhem/francophones-howto.tgz"
target="_top">ma page</a>.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN747" id="AEN747">Son linux en
français</a></h3>
<p>Pour se faire <tt class="LITERAL">SON</tt> linux en
français il faut en pratique disposer des sources de la libc
et d'un minimum de compétences en langage C ; ces
manipulations sont inutiles pour l'utilisateur standard de Linux
qui se contentera d'utiliser les locales de la section
précédente.</p>
<p>Mais voici donc, pour la bonne bouche, quelques renseignements
collectés...</p>
<p>Laurent Chemla nous pilote :</p>
<p></p>
<pre class="SCREEN">
Si j'ai suivi, il y a deux trucs qui font la même chose, d'où embrouille, les
locales et un truc appelé nls.
Les locales, sous Linux, ça va par défaut dans /usr/lib/locale,
et ça contient de quoi préciser entre autres le format des
nombres (LC_NUMERIC), les retours des fonctions ctype (isalpha etc) (LC_CTYPE),
le format des sommes d'argent (LC_MONETARY), le format des dates (LC_TIME) et
encore d'autres détails. Sur certains Unix, il y a aussi LC_MESSAGES,
qui contient les messages de l'OS dans la langue choisie par la variable
d'environnement LC_MESSAGES. Pas sous Linux. Sous Linux, c'est nls qui fait
ça, et de fait, nls gère un fichier qui est dans /etc/locale/.
(NDG : De nos jours, ils se trouvent plutôt dans /usr/lib/locale)
D'où l'embrouille. Ils auraient mis ça dans /usr/lib/nls, comme
tout le monde, ça aurait évite la confusion. Mais bon.
Donc, si l'on veut se tenir à jour d'nls, il suffit d'aller dans les
sources de libc/nls, faire « make french » et copier libc.dat dans
/etc/locale/C/libc.dat et toc, tous les messages sont en français. Y compris
ceux des programmes qui n'utilisent pas setlocale(): c'est perror() qui fait le
boulot (du moins je suppose).
Si l'on veut en plus que les programmes qui utilisent setlocale() utilisent nos
règles françaises, là il faut aller dans les sources de
libc/locale et dans chacun des sous-répertoires jeter un œil sur le
fichier exemple, le modifier pour le français (c'est des tout petits
fichiers), et faire « make », avant de copier le résultat dans
/usr/lib/local/fr/ et de faire un « export LC_ALL=fr ».
</pre>
<p>Autre astuce pour ménager les vieux logiciels :</p>
<p></p>
<pre class="SCREEN">
cd /usr/lib
ln -sf /usr/share/locale .
</pre>
<p>Ne pas oublier de télécharger sur le <a href=
"ftp://ftp.lip6.fr" target="_top">site du lip6</a> :</p>
<p></p>
<ul>
<li>
<p>Les pages de manuel en français, archive man-fr-*,
adaptées par C. Blaess. Il suffit d'extraire le contenu de
l'archive dans le répertoire /usr/man/fr.</p>
</li>
<li>
<p>Une intéressante documentation technique : locale.fr, par
P. D'Cruze, adaptée par É. Dumas</p>
</li>
</ul>
<p>Pour en apprendre davantage lire la page de manuel de «
locale » : bibliothèque de pages de manuel 5 ou 7
:</p>
<p></p>
<pre class="SCREEN">
bash# man 5 locale
bash# man 7 locale
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN769" id="AEN769">Les
variables</a></h3>
<p>Ces variables doivent être exportées à
chaque login : mettez les donc dans <tt class=
"LITERAL">.bashrc</tt> et <tt class=
"LITERAL">.bash&lowbar;login</tt>, <tt class=
"LITERAL">.tcshrc</tt> ou /etc/profile :</p>
<p></p>
<pre class="SCREEN">
# pour tcsh, utiliser setenv au lieu de export, par exemple «setenv LANG fr»
# Les locales
LC_CTYPE=ISO-8859-1
LANGUAGE=fr
LC_MESSAGES=fr
LC_ALL=fr
LANG=fr
LESSCHARSET=latin1
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET
# Les raccourcis : sans ll ou d, impossible de voir les fichiers comprenant des
# caractères 8 bits ...
alias q="cd .."
alias ll="ls --color=auto -a -N -l"
alias d="ls --color=auto -a -N"
alias indent="indent -kr"
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"
# Au cas où Del/BackSpace ne fonctionne pas, essayez l'un des deux :
#stty erase ^?
#stty erase ^H
</pre>
<p>N'oubliez pas : tous les fichiers ici cités dont le nom
commence par « . » doivent se trouver dans votre
répertoire maison /</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN778" id="AEN778">Les
caractères 8 bits dans les programmes utilisant readline
tels bash ou ncftp...</a></h3>
<p>Readline est une librairie de saisie de caractères avec
historique et complétion ; elle est utilisée par de
nombreux programmes comme bash, ncftp, gnuplot...</p>
<p>Par défaut, le 8e bit sert à coder la touche
Meta.</p>
<p>Elle est utilisée pour coder certaines commandes mais la
touche « Escape » ou « Échap » peut
la remplacer.</p>
<p>Si vous souhaitez voir et saisir des accents avec les
applications compilées avec readline, comme bash pour les
versions supérieures à 1.13, ajoutez ceci dans votre
fichier $INPUTRC, par défaut <tt class=
"LITERAL">˜/.inputrc</tt>) :</p>
<p></p>
<pre class="SCREEN">
# Permettre de rentrer & recevoir des caractères accentués
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
# Pas de bip audible mais visible
# set bell-style visible
# Pour faire marcher Home, End, Delete, Esc + Delete & Esc + BackSpace
"\e[1˜":beginning-of-line
"\e[3˜":delete-char
"\e[4˜":end-of-line
"\e\C-h": backward-kill-word
"\e\e[3˜": kill-word
</pre>
<p>Cela vous permettra d'effacer des caractères vers l'avant
avec « Delete » et vers l'arrière avec «
BackSpace », ceci n'étant pas prévu sur les
tables de clavier par défaut « mimant » le
comportement d'un clavier de console VT100 .</p>
<p>Les deux dernières options vous permettront d'utiliser
« Home » et « End » pour aller au
début et à la fin de la ligne en cours
d'édition.</p>
<p>Pour pouvoir employer une touche il suffit d'obtenir son code et
l'associer à une fonction grâce à ce fichier ;
pour obtenir le code d'une touche invoquer cat puis appuyer sur la
touche : son code apparaît.</p>
<p>Le code physique :</p>
<p></p>
<pre class="SCREEN">
^[
</pre>
<p>correspond à la séquence d'échappement.</p>
<p>Par exemple, si le code de « Home » est «
ˆ&lsqb;&lsqb;7 » il suffit d'ajouter une
ligne :</p>
<p></p>
<pre class="SCREEN">
"\e[7~": beginning-of-line
</pre>
<p>au <tt class="LITERAL">.inputrc</tt>.</p>
<p>Plus de documentation est disponible sur la page de manuel de
bash, section <tt class="LITERAL">READLINE</tt>.</p>
<p>On peut aussi, grâce à la variable d'environnement
<tt class="LITERAL">INPUTRC</tt>, utiliser un fichier commun
à tous les utilisateurs.</p>
<p>Enfin, je vous recommande d'utiliser ce fichier <tt class=
"LITERAL">.bashrc</tt> à placer dans votre répertoire
maison :</p>
<p></p>
<pre class="SCREEN">
# ~/.bashrc : exécuté par bash(1) pour les shells lancés après le login.
# Le path
PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/bin"
# Le prompt
PS1="(\u@\h:\W)$ "
# L'utilisateur
ENV=$HOME/.bashrc
USERNAME="votre nom"
# Les locales
_CTYPE=ISO-8859-1
LANGUAGE=fr
LC_MESSAGES=fr
LC_ALL=fr
LANG=fr
LESSCHARSET=latin1
export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET
# Les raccourcis
alias q="cd .."
alias ll="ls --color=auto -a -N -l"
alias d="ls --color=auto -a -N"
alias indent="indent -kr"
alias elm-box="elm -f ~/Mail/Inbox"
alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"
# Au cas où Del/BackSpace ne fonctionne pas, essayez l'un des deux :
#stty erase
#stty erase ^H
# Refuser le talk & le write
#mesg n
# Permettre les coredumps
#ulimit -c nombre_max_de_Ko
#Fixer le masque de création de fichiers
#umask 022
</pre>
<p>Le fichier .bash&lowbar;profile ou .bash&lowbar;login,
exécuté par bash(1) lors des logins, y est
strictement identique mais peut, si vous le voulez,
présenter des différences pour afficher par exemple
une citation en laçant le programme « fortune
».</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN808" id="AEN808">zsh</a></h3>
<p>Celui-ci devrait se contenter d'un <tt class="LITERAL">stty
pass8</tt>.</p>
<p>Si cela ne suffisait pas, rajouter dans le <tt class=
"LITERAL">.zshrc</tt> ou dans <tt class=
"LITERAL">/etc/zshrc</tt>:</p>
<p></p>
<pre class="SCREEN">
bindkey "\e[2~" yank
bindkey "\e[3~" delete-char
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" up-line-or-history
bindkey "\e[6~" down-line-or-history
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN817" id="AEN817">tcsh</a></h3>
<p>Pour tcsh, placer, dans le fichier <tt class=
"LITERAL">/etc/csh.login</tt> ou dans les fichiers <tt class=
"LITERAL">.tcshrc</tt> des utilisateurs concernés, les
variables indiquées plus haut en remplaçant export
par setenv:</p>
<p></p>
<pre class="SCREEN">
setenv LC_CTYPE=ISO-8859-1
setenv LANGUAGE=fr
setenv LC_MESSAGES=fr
setenv LC_ALL=fr
setenv LANG=fr
setenv LESSCHARSET=latin1
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN824" id="AEN824">Pour tous les
shells</a></h3>
<p>Remplacer 'iso&lowbar;8859&lowbar;1' par 'iso-8859-1' si
cela ne fonctionne pas, voire french.iso88591.fr&lowbar;FR ou
fr&lowbar;BR, fr&lowbar;CA, fr&lowbar;CH,
fr&lowbar;LU...</p>
<p>À propos de LANG, il vaut mieux éviter
fr&lowbar;FR et lui préférer fr car certains
programmes ne passent pas vraiment par la resolution de locales
mais lisent LANG directement...</p>
<p>Si nls est installé, les routines correspondantes sont
utilisées, sinon tcsh agit en
iso&lowbar;8859&lowbar;1, quelle que soit les valeurs
données à LANG et LC&lowbar;CTYPE : cf. la
section NATIVE LANGUAGE SYSTEM de tcsh(1).</p>
<p>Selon le Danish-HOWTO, utiliser :</p>
<p></p>
<pre class="SCREEN">
(guylhem@victis:tcsh)# setenv LC_CTYPE ISO-8859-1
(guylhem@victis:tcsh)# stty pass8
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN832" id="AEN832">L'heure</a></h3>
<p>Rien n'est plus facile que de laisser à Linux le soin de
passer de l'heure d'été à l'heure d'hiver et
réciproquement...</p>
<p>a) D'abord, quelle heure est-il :-) ?</p>
<p>Après avoir regardé sur la pendule la plus proche
de vous, tapez :</p>
<p><tt class="LITERAL">clock</tt></p>
<p>puis</p>
<p><tt class="LITERAL">date</tt></p>
<p>La première heure est celle du bios, la seconde celle
calculée par Linux à partir de <tt class=
"LITERAL">/etc/zoneconfig</tt>.</p>
<p>Pour peu que vous ayez installé timezone, votre machine
peut jongler aisément entre les différents fuseaux
horaires... ce que les DOS ou Windows ne permettent pas !</p>
<p>b) L'heure du choix !</p>
<p>De là, deux possibilitées : soit vous
décidez de laisser l'heure système à l'heure
locale, peu pratique, excepté si vous hébergez aussi
sur votre disque dur ces systèmes d'exploitation peu
évolué, ne sachant même pas exploiter les
fuseaux horaires, soit vous passez à l'heure de Greenwich,
Linux se chargeant de l'adapter à votre fuseau horaire.</p>
<p>Dans ce cas, les grands voyages à l'étranger avec
un portable tout neuf équipé de Linux se feront en
toute simplicité : le dernier paragraphe vous expliquera
comment changer de fuseau horaire facilement...</p>
<p>c) Le réglage</p>
<p>Pour procéder, regardez d'abord si l'heure système
retournée par clock est l'heure locale ou l'heure de
Greenwich.</p>
<p>Vous avez bien regardé une pendule comme je vous le
conseille plus haut, n'est-ce pas ?</p>
<p>Si clock vous retourne l'heure locale, il va falloir jongler un
peu avec les fuseaux horaires, sinon passez directement à
l'étape « réglage du fuseau ».</p>
<p></p>
<ul>
<li>
<p>Pour les français, belges wallons et suisses romands
:</p>
</li>
</ul>
<p>Vous êtes normalement dans une zone horaire MET (Medium
European Time, soit GMT+1).</p>
<p>La zone « MET DST » correspond elle à l'heure
d'été active (GMT + 2).</p>
<p>Selon les décisions futures de la cour européenne,
l'heure d'été « daylight savings » risque
d'être abandonné... ce qui compliquera cette
explication !</p>
<p></p>
<ul>
<li>
<p>Pour les canadiens français :</p>
</li>
</ul>
<p>Vous êtes dans une zone horaire GMT-4 si vous habitez
autour de Montréal .</p>
<p>Pour les autres provinces, consulter un dictionnaire !</p>
<p>Premièrement, effacez le fichier /etc/localtime ou
/usr/lib/zoneinfo/localtime (l'emplacement varie selon les
distributions ; si vous avez les deux fichiers, effacez
/etc/localtime : l'autre fichier doit certainement être un
lien vers /etc/localtime).</p>
<p>Dès lors, clock et date doivent vous retourner la
même heure...</p>
<p></p>
<ul>
<li>
<p>Pour les canadiens français : utilisez GMT+4</p>
</li>
</ul>
<p></p>
<ul>
<li>
<p>Pour les français, belges wallons et suisses romands
:</p>
</li>
</ul>
<p>Si vous lisez ce document en été, le
décalage de l'heure locale par rapport à l'heure de
Greenwich est de deux heures, on va donc mettre temporairement le
fuseau en GMT-2, soit vous lisez ce document en hiver et il
convient de remplacer tous les « 2 » par des « 1
» dans les exemples suivants...</p>
<p>GMT-2 ?!!? Alors que le fuseau est GMT+2 ?</p>
<p>Ceci va vous retourner l'heure de Greenwich dont on a besoin
pour régler le système : tapez :</p>
<p><tt class="LITERAL">ln -sf /usr/lib/zoneinfo/Etc/GMT-2
/etc/zoneconfig</tt></p>
<p><tt class="LITERAL">clock</tt></p>
<p><tt class="LITERAL">date</tt></p>
<p>L'heure calculée correspond donc à l'heure de
Greenwich, l'heure système à l'heure locale... soit
l'inverse de ce que l'on veut.</p>
<p>Un simple : <tt class="LITERAL">clock -w</tt></p>
<p>Va alors mettre l'heure du système en heure de Greenwich,
utilisant pour cela l'heure locale inversée volontairement
avec l'heure système.</p>
<p>d) Régler le fuseau horaire :</p>
<p>Tapez alors : <tt class="LITERAL">ln -sf
/usr/lib/zoneinfo/Europe/Votre-ville /etc/zoneconfig</tt></p>
<p>Et voilà ! Le système est à l'heure de
Greenwich, la conversion vers le fuseau horaire local et l'heure
d'été se faisant automatiquement.</p>
<p>Si vous habitez hors Europe, procédez de même en
remplaçant les « -2 » par « X », X
représentant l'opposé de votre décalage
horaire (par exemple -4 au Québec, donc X=+4...)</p>
<p>e) Modifier le fuseau horaire :</p>
<p>Si vous partez à l'étranger, il est alors simple
de modifier l'heure locale de votre portable : par exemple si vous
partez pour Moscou :</p>
<p><tt class="LITERAL">ln -sf /usr/lib/zoneinfo/Europe/Moscow
/etc/zoneconfig</tt></p>
<p>Très simple et très utile : plus besoin de se
souvenir du décalage horaire (plus ou moins X heures)
puisque Linux se charge désormais de tout !</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN898" id="AEN898">vi</a></h3>
<p>Normalement, aucune modification n'est nécessaire
à part l'utilisation de loadkeys (détaillée
plus haut).</p>
<p>Ce fichier <tt class="LITERAL">.vimrc</tt> pourrait toutefois
vous être utile si vous utilisez <tt class="LITERAL">vim</tt>
au lieu d'<tt class="LITERAL">elvis</tt> :</p>
<p></p>
<pre class="SCREEN">
" Les guillemets anglais « " » signifient « mis en commentaire »
" Éviter un avertissement « version incorrecte » :
version 4.0
" Utiliser les défauts de vim, bien mieux
set nocompatible
" Autoriser le « BackSpace » sur tout :
set bs=2
" Police à utiliser sous X11 :
"set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
" Fixer la césure automatique de la ligne à N caractères :
set tw=72
" Faire apparaître les tabulations et les espaces
set list
" Changer les défauts pour voir les espaces inutiles et les tabulations
set listchars=tab:»·,trail:·
hi nontext ctermfg=red
hi nontext ctermbg=blue
" Indentation (pour les programmeurs) :
" set cindent
" Réglages souris :
"set mouse=a
" Ligne
set nowrapscan
" Montrer les correspondances :
set showmatch
" Montrer le mode
set showmode
" Indentation intelligente (pour les programmeurs) :
" set uc=0
" Faire fonctionner BackSpace :
set t_kD=^?
" Doit se trouver après
map ^H X
" Faire fonctionner Delete :
map \e[3~ x
" Cacher la souris lorsqu'on tape :
set mousehide
" Faire voir les correspondances lors de recherches :
" set hlsearch
" Colorer à l'intérieur des commentaires en C :
let c_comment_strings=1
" Couleur pour xiterm, rxvt, nxterm, color-xterm :
if has("terminfo")
set t_Co=8
set t_Sf=\e[3%p1%dm
set t_Sb=\e[4%p1%dm
else
set t_Co=8
set t_Sf=\e[3%dm
set t_Sb=\e[4%dm
endif
" Coloration syntaxique :
if ett_Co > 1
syntax on
endif
" Autoriser l'édition de fichiers gzippés
augroup gzip
" Supprimer toutes les autocommandes
au!
autocmd BufReadPre,FileReadPre *.gz set bin
autocmd BufReadPost,FileReadPost *.gz '[,']!gunzip
autocmd BufReadPost,FileReadPost *.gz set nobin
autocmd BufReadPost,FileReadPost *.gz execute ":doautocmd BufReadPost " . expand("%:r")
autocmd BufWritePost,FileWritePost *.gz !mv <afile> <afile>:r
autocmd BufWritePost,FileWritePost *.gz !gzip <afile>:r
autocmd FileAppendPre *.gz !gunzip <afile>
autocmd FileAppendPre *.gz !mv <afile>:r <afile>
autocmd FileAppendPost *.gz !mv <afile> <afile>:r
autocmd FileAppendPost *.gz !gzip <afile>:r
augroup END
augroup bzip
au!
autocmd BufReadPre,FileReadPre *.bz2 set bin
autocmd BufReadPost,FileReadPost *.bz2 '[,']!bunzip2
autocmd BufReadPost,FileReadPost *.bz2 set nobin
autocmd BufReadPost,FileReadPost *.bz2 execute ":doautocmd BufReadPost " . expand("%:r")
autocmd BufWritePost,FileWritePost *.bz2 !mv <afile> <afile>:r
autocmd BufWritePost,FileWritePost *.bz2 !bzip2 <afile>:r
autocmd FileAppendPre *.bz2 !bunzip2 <afile>
autocmd FileAppendPre *.bz2 !mv <afile>:r <afile>
autocmd FileAppendPost *.bz2 !mv <afile> <afile>:r
autocmd FileAppendPost *.bz2 !bzip2 <afile>:r
augroup END
augroup cprog
au!
autocmd BufRead * set formatoptions=tcql nocindent comments&
autocmd BufRead *.c,*.h set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
augroup END
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN907" id="AEN907">Emacs</a></h3>
<p>Voici un fichier de configuration de base pour employer les
accents.</p>
<p></p>
<pre class="SCREEN">
;;
;; Fichier .emacs: initialisation d'emacs
;; Tiré du Guide du Rootard
;;
(display-time) ;; Pour avoir l'heure dans la barre d'état
(setq display-time-24hr-format t) ;; Format 24 heures
;; Nouveaux modes
(autoload 'c++-mode "cplus-md" "C++ Editing Mode" t)
(autoload 'perl-mode "perl-mode" "Perl Editing Mode" t)
(autoload 'c-mode "c-mode" "C Editing Mode" t)
; mieux vaudrait utiliser le "cc-mode"
(autoload 'jargon-mode "jargon" "Jargon Mode" t)
;; Auto-Mode Settings : positionne le mode selon l'extension
(setq auto-mode-alist
(append '(("\.c$" . c-mode) ;; utilise le mode C++ même pour C
("\.h$" . c-mode)
("\.C$" . c++-mode)
("\.H$" . c++-mode)
("\.cc$" . c++-mode)
("\.C$" . c++-mode)
("\.pl$" . perl-mode) ;; Perl
("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le courriel)
("[Rr][Ee][0-9]*" . text-mode)
("\.ada$" . ada-mode) ;; Ada
("\.spec$" . ada-mode)
("\.body$" . ada-mode)
("makefile$" . makefile-mode) ;; Makefile
("Makefile$" . makefile-mode)
("Imakefile$" . makefile-mode))
auto-mode-alist))
; Remappages variés à mettre ici
(global-set-key "\eg" 'goto-line) ;; ESC G = Aller à une ligne
(put 'eval-expression 'disabled nil)
;; Accents...
(standard-display-european 1)
(load-library "iso-syntax")
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc)
(cond (window-system
(setq hilit-mode-enable-list '(not text-mode)
hilit-background-mode 'light
hilit-inhibit-hooks nil
hilit-inhibit-rebinding nil)
(require 'hilit19)
))
(if (not (equal window-system ""))
(global-set-key "\C-?" 'delete-char))
))
</pre>
<p>Le Keyboard-HOWTO conseille quand à lui :</p>
<p></p>
<pre class="SCREEN">
(standard-display-european t)
(set-input-mode nil nil 1)
(require 'iso-syntax)
(load-library "iso-insert.el")
(define-key global-map [?\C-.] 8859-1-map)
</pre>
<p>Utilisez une version au moins égale à 19.27,
modifiez le fichier global (commun à tous les utilisateurs)
<tt class="LITERAL">/usr/lib/emacs/site-lisp/site-start.el</tt> ou
le <tt class="LITERAL">./emacs</tt> de chaque utilisateur
concerné pour y ajouter :</p>
<p></p>
<pre class="SCREEN">
(standard-display-european t)
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
(global-set-key [delete] 'delete-char)
(global-set-key [home] 'beginning-of-line)
(global-set-key [end] 'end-of-line)
(global-set-key [prior] 'scroll-down)
(global-set-key [next] 'scroll-up)
(global-set-key [C-right] 'forward-word)
(global-set-key [C-left] 'backward-word)
(global-set-key [C-prior] 'beginning-of-buffer)
(global-set-key [C-next] 'end-of-buffer)
(global-set-key "\033[A" 'previous-line)
(global-set-key "\033[B" 'next-line)
(global-set-key "\033[C" 'forward-char)
(global-set-key "\033[D" 'backward-char)
(global-set-key "\033[H" 'beginning-of-line)
(global-set-key "\033[Y" 'end-of-line)
(global-set-key "\033[1~" 'beginning-of-line)
(global-set-key "\033[2~" 'overwrite-mode)
;; le delete-char peut correspondre à \004 ou à \033[3~
(global-set-key "\033[3~" 'delete-char)
(global-set-key "\033[4~" 'end-of-line)
(global-set-key "\033[5~" 'scroll-down)
(global-set-key "\033[6~" 'scroll-up)
</pre>
<p>Pour les autres versions :</p>
<p></p>
<ul>
<li>
<p>19.19 :</p>
<pre class="SCREEN">
(standard-display-european 1)
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
</pre>
Lire à ce propos le fichier emacs.info.</li>
<li>
<p>19.22 :</p>
<pre class="SCREEN">
(load-library "iso-transl")
(standard-display-european t)
</pre></li>
<li>
<p>Autres :</p>
<pre class="SCREEN">
(standard-display-european 1)
(load-library "iso-transl")
</pre></li>
</ul>
<p>XEmacs les accepte lui par défaut sans broncher mais peut
des fois rencontrer des problèmes avec les BackSpaces dans
le mini-buffer en console.</p>
<p>Ajouter dans le <tt class="LITERAL">.emacs</tt> :</p>
<pre class="SCREEN">
(if (eq window-system 'x)
(global-set-key (read-kbd-macro "DEL") 'delete-char)
(or (global-set-key "^[[3~" 'delete-char))
)
</pre>
<p>Le mode ispell d'emacs a un certain nombre de dictionnaires
prédéfinis qui ne sont pas forcement ceux qui sont en
place sur le système.</p>
<p>Si vous constatez des problèmes, vous devez
redéfinir la liste ispell-dictionary-alist des
dictionnaires.</p>
<p>Cette liste contient :</p>
<ul>
<li>
<p>le nom du dictionnaire</p>
</li>
<li>
<p>la liste des caractères composant un mot</p>
</li>
<li>
<p>la lise opposée des caractères ne composant pas un
mot</p>
</li>
<li>
<p>les caractères de liaison à l'intérieur des
mots ("-", "'"...)</p>
</li>
<li>
<p>vrai ou faux si ces caractères peuvent être
présents en plusieurs exemplaire dans le mot</p>
</li>
<li>
<p>une liste d'arguments pour ispell</p>
</li>
<li>
<p>le mode d'ispell (tex, nroff..)</p>
</li>
</ul>
<p>Par exemple, dans le fichier <tt class="LITERAL">.emacs</tt>
:</p>
<p></p>
<pre class="SCREEN">
(setq ispell-dictionary-alist
'((nil ; francais.aff
"[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]"
"[---']" nil ("-n") "~nroff")
("english" ; rosbif
"[A-Za-z]" "[^A-Za-z]" "[---']" nil ("-B") nil)
("american" ; yankee
"[A-Za-z]" "[^A-Za-z]" "[---']" nil nil nil)
("francais" ; français
"[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü]"
"[---']" nil ("-n") "~nroff")
("francais-TeX" ; français
"[A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]" "[^A-Za-zÀÂÇ-ËÎÏÔÙÛÜàâç-ëîïôùûü\\]"
"[---'^`\"]" t nil "~tex")
("espanol" ; espa~nol.aff
"[A-Za-záéíóúüñÁÉÍÓÚÜÑ]" "[^A-Za-záéíóúüñÁÉÍÓÚÜÑ]"
"[---'^`\"]" t nil "~nroff")
("dansk" ; danois et norvégien
"[A-Za-zåÅøØæÆéÉèÈ]" "[^A-Za-zåÅøØæÆéÉèÈ]"
"[---'^`\"]" t nil "~nroff")
))
</pre>
<p>Le dictionnaire "francais-TeX" est un lien symbolique sur
"francais" qui permet d'ajouter une entrée pour les accents
à la TeX (ex: \'e).</p>
<p>Si vous utilisez X11, vous voudrez peut-être reconstruire
les menus et il vous faudra recharger une partie de
lisp/loaddefs.el dans votre <tt class="LITERAL">.emacs</tt> :</p>
<p></p>
<pre class="SCREEN">
(setq ispell-menu-map nil)
(if ispell-menu-map-needed
(let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
name)
;; Can put in defvar when external defines are removed.
(setq ispell-menu-map (make-sparse-keymap "Spell"))
(while dicts
(setq name (car (car dicts))
dicts (cdr dicts))
(if (stringp name)
(define-key ispell-menu-map (vector (intern name))
(cons (concat "Select " (capitalize name))
(list 'lambda () '(interactive)
(list 'ispell-change-dictionary name))))))))
(if ispell-menu-map-needed
(progn
;; Define commands in opposite order you want them to appear in menu.
(define-key ispell-menu-map [ispell-change-dictionary]
'("Change Dictionary" . ispell-change-dictionary))
(define-key ispell-menu-map [ispell-kill-ispell]
'("Kill Process" . ispell-kill-ispell))
(define-key ispell-menu-map [ispell-pdict-save]
'("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t))))
(define-key ispell-menu-map [ispell-complete-word]
'("Complete Word" . ispell-complete-word))
(define-key ispell-menu-map [ispell-complete-word-interior-frag]
'("Complete Word Frag" . ispell-complete-word-interior-frag))
(define-key ispell-menu-map [ispell-continue]
'("Continue Check" . ispell-continue))
(define-key ispell-menu-map [ispell-region]
'("Check Region" . ispell-region))
(define-key ispell-menu-map [ispell-word]
'("Check Word" . ispell-word))
(define-key ispell-menu-map [ispell-buffer]
'("Check Buffer" . ispell-buffer))
(define-key ispell-menu-map [ispell-message]
'("Check Message" . ispell-message))
(define-key ispell-menu-map [ispell-help]
'("Help" . (lambda () (interactive) (describe-function 'ispell-help))))
(put 'ispell-region 'menu-enable 'mark-active)))
(fset 'ispell-menu-map (symbol-value 'ispell-menu-map))
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN963" id="AEN963">less</a></h3>
<p><tt class="LITERAL">/etc/profile</tt> ou les fichiers de
démarrage du shell (comme <tt class="LITERAL">.bashrc</tt>
et <tt class="LITERAL">.bash&lowbar;profile</tt> dans votre
répertoire maison) doivent contenir :</p>
<p></p>
<pre class="SCREEN">
export LESSCHARSET=latin1
</pre>
<p>Comme fichier <tt class="LITERAL">.lessrc</tt> je vous
recommande :</p>
<p></p>
<pre class="SCREEN">
\e[B forw-line
\e[A back-line
\e[6~ forw-scroll
\e[5~ back-scroll
\e[1~ goto-line
\e[4~ goto-end
\e[C next-file
\e[D prev-file
\eOA back-line
\eOB forw-line
</pre>
<p>Pour rentrer un Esc (parfois nommé Échap) taper
« \e » ou, sous vi, mettez vous en mode insertion avec
i puis tapez « ctrl+v » et enfin « Esc
».</p>
<p>Ce fichier permet d'utiliser les touches « Home »,
« End », « Page&lowbar;Up » &
« Page&lowbar;Down ».</p>
<p>Pour s'en servir, taper :</p>
<p></p>
<pre class="SCREEN">
lesskey -o .less .lessrc
</pre>
<p>N'oubliez pas de mettre le fichier .less dans votre
répertoire maison : il permet d'employer les touches
fléchées, « Page&lowbar;Up », «
Page&lowbar;Down », « Home » et « End
».</p>
<p>Ne pas négliger la page de manuel de less car il peut
être intéressant de changer la valeur de sa variable
d'environnement de configuration ("LESS").</p>
<p>J'utilise : '-C -M -i -x2'</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN983" id="AEN983">ls</a></h3>
<p>Utilisez les options :</p>
<p></p>
<pre class="SCREEN">
-N --color=auto
</pre>
<p>ou, plus simplement, définissez dans les fichiers de
démarrage de votre shell les alias suivants permettant de
voir les fichiers dont le nom comprend des caractères 8 bits
:</p>
<p></p>
<pre class="SCREEN">
alias ll="ls --color=auto -N -l -a"
alias d="ls --color=auto -N"
</pre>
<p>Un simple <tt class="LITERAL">d</tt> remplacera le classique
<tt class="LITERAL">ls</tt>, en y ajoutant la couleur, alors que
<tt class="LITERAL">ll</tt> vous offrira une liste complète
de tous les fichiers présents dans le répertoire,
avec leurs attributs, leurs tailles...</p>
<p>--color=auto est préférable car --color=yes fera
avoir des codes escape lorsqu'on redirige vers un fichier ou un
programme où si le terminal ne supporte pas la couleur.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN996" id="AEN996">flex</a></h3>
<p>Donnez l'option :</p>
<p></p>
<pre class="SCREEN">
-8
</pre>
<p>si l'analyseur généré doit accepter les
entrées 8-bits (bien sûr qu'il doit le faire !).</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1002" id="AEN1002">elm</a></h3>
<p>Rajoutez ces trois lignes dans votre <tt class=
"LITERAL">.elm/elmrc</tt> :</p>
<p></p>
<pre class="SCREEN">
charset = iso-8859-1
displaycharset = iso-8859-1
textencoding = 8bit
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1008" id="AEN1008">col</a></h3>
<p>Assurez-vous :</p>
<p>1) qu'il a été corrigé et fasse un</p>
<p></p>
<pre class="SCREEN">
setlocale(LC_CTYPE,"");
</pre>
<p>2) de définir</p>
<p></p>
<pre class="SCREEN">
LC_CTYPE=ISO-8859-1
</pre>
<p>dans l'environment.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1018" id="AEN1018">rlogin</a></h3>
<p>Utilisez l'option :</p>
<p></p>
<pre class="SCREEN">
-8
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1023" id="AEN1023">joe</a></h3>
<p>Utiliser <a href=
"ftp://metalab.unc.edu:/pub/Linux/apps/editors/joe-2.8.tar.gz"
target="_top">joe 2.8</a> ou plus récent qui devraient
fonctionner après édition du fichier de configuration
: placer l'option -asis dans <tt class=
"LITERAL">/usr/lib/joerc</tt> en première colonne.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1028" id="AEN1028">TeX et
LaTeX</a></h3>
<p>Le plus simple consiste à employer GuTemberg, une
distribution de LaTeX avec tous les défauts
réglés pour des francophones par des francophones
!</p>
<p>Mais si vous préférez une version <tt class=
"LITERAL">standard</tt> non modifiée, il suffit d'ajouter au
début de chaque fichier :</p>
<p></p>
<ul>
<li>
<p>Pour LaTeX:</p>
<pre class="SCREEN">
\documentstyle[isolatin]{article}
</pre></li>
<li>
<p>Pour LaTeX2e:</p>
<pre class="SCREEN">
\documentclass[12pt,a4paper]{letter}
\usepackage{isolatin1}
\usepackage[french]{babel}
\usepackage{t1enc}
</pre>
ou alors :
<pre class="SCREEN">
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
</pre></li>
</ul>
<p>Au cas où votre distribution soit trop vieille pour
l'inclure, <tt class="LITERAL">isolatin.sty</tt> est disponible
<a href="ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit" target=
"_top">séparément</a></p>
<p>Pour gs et xdvi, il faut utiliser des options spéciales
(sur ma machine, ce sont des alias). En effet, ils sont souvent
configurés pour un papier états-unien dit «
légal », de taille proche, mais non exactement
égale, à celle du standard « A4 ».</p>
<p>Ces options sont les suivantes :</p>
<p><tt class="LITERAL">gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview
-a4</tt></p>
<p>Pour que dvips convertisse les documents dans un format papier
a4, il faut spécifier dans le fichier config.ps (le chemin
varie en fonction des versions de LaTeX) :
/usr/lib/texmf/dvips/config.ps ou <tt class=
"LITERAL">.dvipsrc</tt></p>
<p><tt class="LITERAL">@ a4 210mm 297mm @+ !
&percnt;&percnt;DocumentPaperSizes: a4 @+
&percnt;&percnt;PaperSize: a4 @+
&percnt;&percnt;BeginPaperSize: a4 @+ a4</tt></p>
<p>Sinon ajoutez à votre <tt class=
"LITERAL">.Xresources</tt> :</p>
<p></p>
<pre class="SCREEN">
XDvi.paper: a4
Ghostview.pageMedia: A4
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1057" id="AEN1057">Manuel</a></h3>
<p>Tout d'abord, il faut vous procurer les pages de manuel Linux
traduites en <a href="ftp://ftp.lip6.fr/pub/linux" target=
"_top">français</a></p>
<p>Si vous utilisez une distribution RedHat ou Debian, celles-ci
sont présentes sur le cédérom : il suffit de
les sélectionner lors de l'installation.</p>
<p>De là, deux possibilités :</p>
<p></p>
<ul>
<li>
<p>soit vous ne voulez que des manuels en Français, auquel
cas il faut faire un :</p>
<pre class="SCREEN">
export MANPATH=/usr/man/fr_FR
</pre>
NB: fr&lowbar;FR se remplace par fr&lowbar;BE,
fr&lowbar;CA, fr&lowbar;CH ou fr&lowbar;LU selon le
pays concerné.</li>
<li>
<p>soit vous préférez par défaut des manuels
en Français et si la page n'existe pas, vous vous rabattez
vers l'Anglais, il suffira alors de taper :</p>
<pre class="SCREEN">
export LANG=fr
</pre></li>
</ul>
<p><tt class="LITERAL">man</tt> ira chercher dans le «
MANPATH » des pages en « LANG » par défaut
et se rabattra sinon sur des pages en anglais.</p>
<p>Si vous désirez installer la page de manuel expliquant la
norme ISO 8859-15 latin 9, il faut installer le fichier
iso&lowbar;8859&lowbar;15.7.gz :</p>
<p></p>
<pre class="SCREEN">
cp standard/iso_8859_15.7.gz /usr/local/man/man7/
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1076" id="AEN1076">Correcteur
orthographique ispell</a></h3>
<p>Vous pouvez vous le procurer sur le <a href=
"ftp://ftp.ireq-robot.hydro.qc.ca:/pub/ispell/francais-IREQ-1.3.tar.gz"
target="_top">site original d'Hydro Québec</a> ou sur le
<a href="ftp://ftp.lip6.fr/pub/ispell/francais" target=
"_top">mirroir du lip6</a></p>
<p>Un fichier LISEZMOI explique pas à pas et en
Français l'installation.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1082" id="AEN1082">Les claviers 105
touches</a></h3>
<p>Aussi appelés « claviers Microsoft (tm) »,
ils ont trois touches de plus que les claviers normaux.</p>
<p>Comment s'en servir ?</p>
<p>En mode console, éditer <tt class=
"LITERAL">french.map</tt> et décommenter les lignes en
parlant !</p>
<p>De même pour <tt class="LITERAL">french</tt> (pour
Xwindow).</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1090" id="AEN1090">PGP</a></h3>
<p>Attention, dans certains pays totalitaires, l'utilisation de
logiciels de cryptographie est considérée comme usage
d'armes de guerre, ce qui est punissable par la loi !</p>
<p>Sautez donc ce paragraphe si votre législation locale ne
permet pas d'utiliser des logiciels de cryptographie.</p>
<p>Premièrement, il faut se procurer pgp-international
(à cause de problèmes de patentes et de
législation sur l'export d'armes de guerre, il existe pgp-us
et pgp-international, ce dernire étant doté d'un
algorithme encore plus puissant) sur le <a href=
"ftp://ftp.ifi.uio.no/pub/pgp/" target="_top">site norvégien
de PGP</a></p>
<p>Ensuite, mettre dans votre répertoire maison, dans un
sous répertoire .pgp les fichiers :</p>
<p></p>
<pre class="SCREEN">
config.txt
language.idx
pgpdoc1.txt
pgpdoc2.txt
language.txt
fr.hlp
en.hlp
pgp.hlp
</pre>
<p>Enfin, éditer le fichier <tt class=
"LITERAL">.pgp/config.txt</tt> pour y rajouter :</p>
<p></p>
<pre class="SCREEN">
Language = fr
CharSet = latin1
</pre>
<p>Lisez ensuite <tt class="LITERAL">.pgp/fr.hlp</tt> pour
apprendre à vous servir de pgp !</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1106" id="AEN1106">Impression en mode
ascii</a></h3>
<p>Pour l'impression de texte simple, beaucoup d'imprimantes
attendent des lettres en codage IBM (cp850) comme sous MS DOS.</p>
<p>Si le fichier est codé en latin1, on doit utiliser
« recode latin1:ibmpc » (à placer dans les
filtres lpr de /etc/ par exemple), sous peine de voir imprimer des
« alpha » à la place de « à
», et autres choses du même genre.</p>
<p>Il existe d'autres utilisation au programme <tt class=
"LITERAL">recode</tt> : « ibmpc:lat1 » ou «
lat1:ibmpc » (de ou vers MS-DOS) ou « applemac »
pour Macintosh (tm).</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1112" id=
"AEN1112">Unicode/latin/cp... je n'ai pas compris ce dernier
paragraphe !</a></h3>
<p>Voici donc plus d'explications grâce à Pablo
Sartxaga (srtxg à chanae.alphanet.ch) dans un message
explicant la différence Unicode/latin/cp :</p>
<p></p>
<pre class="SCREEN">
DB> quand on lance « setfont » sans argument
DB> il semble qu'on obtienne le même effet que setfont -u none
Normal et logique.
DB> --> en un mot la table de conversion « Unicode » est désactivée
DB> ce qui transforme le « e accent aigü (dec 130) » en « théta (dec 233) »
Non. Il ne transforme rien du tout, il affiche tout simplement sans
*aucune* transformation au contraire, à toi de t'assurer que la police
que tu charges possèdes les glyphes à la bonne place par rapport au codage
de caractères que tu utilises (iso-8859-1).
Autrement dit si ta police n'est pas iso-8859-1 tu dois dire à setfont de
faire des mappings; en particulier s ic'est une police qui utilise l'encodage
DOS cp437 tu fais « setfont -u cp437 nomdelapolice ». Moi par exemple j'aime
beaucoup la police « t.fnt » de la Slackware, et j'ai donc quelque part
dans /etc/rc.d/* une ligne « setfont -u cp437 t.fnt »
Ou alors tu modifies la police (il y a un logiciel qui fait cela avec
interface svgalib, et un autre nommé « chedit » qui permet de créer des
images an ascii-art, un fichier par caractère (256 fichiers donc), il te
suffit alors de jongler avec les fichiers pour les changer de place et
régénerer la police). Note cependant que le codage cp437 n'inclut pas
tous les caractères de iso-8859-1, notamment manquent quasi toutes les
majuscules accentuées, et les lettres ãõ nécessaires en portugais. Tu
peux toujours modifier la police pour créer ces caractères manquants.
DB> sur ma Slackware 3.2, à aucun moment setfont n'apparaît dans les scripts
DB> de démarrage ni dans les ~/profiles et autres ~/.bashrc
Donc c'est la police dans la ROM de la carte video qui est utilisée.
DB> et pourtant cette
DB> conversion est effectuée correctement puisque j'ai les accents à l'écran.
Je suppose que le kernel présuppose (à juste titre) que la police en ROM vidéo
est au codage cp437.
DB> une fois que je lance « setfont -u none » je perds donc les accents.
Normal, car dès lors que tu charges une police tu est supposé savoir ce que
tu veux (au contraire de la police en ROM où tu n'as pas le choix).
Autrefois (du temps des 1.2.* et avant) le défaut de setfont était cp437
(et il n'utilisait pas encore des tables Unicode, mais on pouvait
changer par \e(B et \e(K entre codage cp437 et iso (on peut toujours
d'ailleurs)), mais maintenant le défaut est « straight to font », pas de
conversion.
DB> j'en conclue que Linux utilise la police résidente par défaut de
DB> la carte EGA/VGA
DB> [Q] --> comment retrouver cette police ?
Il y a un programme nommé « restoretextmode » qui est assez populaire
auprès des possesseurs de certaines cartes graphiques chez qui le
passage X11 -> console bousille les polices; il permet de faire un dump
sur un fichier; il faudrait donc que tu le lances avant de modifier la
police avec setfont. Le paquetage s'appelle quelque chose comme
SVGATextMode ou quelque chose d'approchant.
DB> [Q] --> quelle table appeler pour la remapper et ravoir les accents ?
setfont -u cp437 policedos
Ou sinon, si tu ne veux pas lancer setfont et tu veux donc garder la
police de la carte graphique; essaye un « echo -e \033(B » (l'ennuyant
c'est que tu dois le faire dans chaque console)
DB> (en général setfont -u def.uni (par exemple) renvoie une
DB> erreur : PIO_UNIMAPCLR: Invalid argument et je reste
DB> en caracteres « graphiques »)
Ah ? Chez moi ça marche; quels kernel et kbd as-tu ?
Sinon je te conseille « cp437 » plutôt que « def », ils font _presque_ la même
chose, mais « cp437 » est visuellement plus agréable car il remplace les
caractères non présents dans la police par les lettres non accentuées si c'est
des lettres, C pour © et R pour ® et par un carré blanc pour le reste, ce qui
permet de garder le formatage et la lecture agréables; « def » lui ne mets
totu simplement rien pour les caractères manquants, si bien que tu te
trouves avec des trous, ce qui est l'horreur si tu édites un texte par
exemple avec vi, puisque le curseur est affiché plusieurs caractères
à gauche à cause des caractères de largeur nulle :)
Essaye aussi la police « t.fnt », elle est assez jolie, toute en rondeurs, je la
trouve réposante, et quand je dois utiliser un PC avec les polices style
courier par défaut je trouve ça très agressif je me demande comment ils
peuvent travailler avec :)
</pre>
<p>Lire aussi les articles de news : « FAQ - les accents
français et Usenet» de F. Yergeau dans les groupes
fr.usenet.reponses et fr.usenet.8bits » ISO 8859-1 National
Character Set FAQ» de mike (à) vlsivie.tuwien.ac.at
dans comp.answers .</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1118" id="AEN1118">ncurses</a></h3>
<p>Rappelons que ncurses est un librairie C qui permet de manipuler
facilement l'affichage en mode console texte : fenêtrage,
lignes de saisie, édition de formulaires, couleurs,
caractères « ALT » ascii semi-graphique ibm,
comme sous dos...</p>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN1121" id=
"AEN1121">Introduction</a></h4>
<p>La version standard de curses utilise le huitième bit
pour la vidéo inversée (voir le flag
&lowbar;STANDOUT défini dans /usr/include/curses.h).
Cependant, ncurses semble fonctionner en 8-bits et affiche le
iso-latin-8859-1 correctement.</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN1124" id="AEN1124">Les
accents</a></h4>
<p>Remarque: les distributions de Linux sont livrées en
général avec la version 1.9.9e de ncurses, or il se
trouve que la librairie form de cette version est BUGGÉE
(problèmes de rafraîchissement des
fenêtres).</p>
<p>Ne pas utiliser la 1.9.9e donc si on veut travailler avec
« form » : ce bug est d'ailleurs clairement
énoncé sur le site de ncurses, et je m'étonne
que ce soit justement cette version qui soit encore livrée
sur la plupart des distributions (RedHat 4.2, 5.0, 5.1, Slackware
3.2, Debian 1.9) en tout cas.</p>
<p>Symptôme : la fonction wgetch() de ncurses renvoie les
codes suivants :</p>
<p></p>
<ul>
<li>
<p>je tape 'é' et wgetch retourne « meta-i »
code 233 (decimal)</p>
</li>
<li>
<p>" " 'è' " " " « meta-h » code 234
(decimal)</p>
</li>
<li>
<p>etc</p>
</li>
</ul>
<p>C'est normal avec les polices iso-8859-1 !</p>
<p>Il faut installer les « locales » ou mettre à
jour sa version de ncurses.</p>
</div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1139" id="AEN1139">Perl</a></h3>
<p>Si tout d'un coup après une mise à jour il raconte
:</p>
<p></p>
<pre class="SCREEN">
(guylhem@victis:guylhem)$ perl
perl: warning: Setting locale failed for the categories:
LC_CTYPE LC_COLLATE
perl: warning: Please check that your locale settings:
LC_ALL = "fr_FR",
LC_CTYPE = "ISO-8859-1",
LC_COLLATE = (unset),
LANG = "fr"
are supported and installed on your system.
perl: warning: Falling back to the "C" locale.
(guylhem@victis:guylhem)$
</pre>
<p>En libc6 le format des fichiers binaires de définition
des locales a (encore) changé : il faut les
régénérer à partir des sources <a href=
"ftp://ftp.lip6.fr:/pub/linux/GCC" target="_top">sources
WG15collection.tar.gz</a> par exemple et des programmes «
locale » et « localedef » qui sont fournis dans
les sources de la libc.</p>
<p>Sinon on peut également se passer des locales :</p>
<p></p>
<pre class="SCREEN">
unset LANG
unset LC_CTYPE
unset LC_COLLATE
export LC_ALL=fr_FR.ISO-8859-1
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1149" id="AEN1149">Installer les
locales</a></h3>
<p>Les « locales » sont des fichiers qui vont modifier
le comportement de certains programmes pour qu'ils s'adaptent aux
« spécificités culturelles du pays ».</p>
<p>Cela sert à résoudre les erreurs rapportées
par perl ou une mauvaise gestion des accents par ncurses.</p>
<p></p>
<ul>
<li>
<p>récupérer pour la libc5 la collection de <a href=
"ftp://ftp.lip6.fr/pub/linux/GCC/WG15-collection.linux.tar.gz"
target="_top">locales POSIX</a></p>
</li>
<li>
<p>ou pour la libc6, elle est dans l'ajout <a href=
"ftp://ftp.lip6.fr/pub/gnu/glibc-localedata-2.0.6.tar.gz" target=
"_top">« glibc-localedata »</a></p>
</li>
<li>
<p>copier dans le répertoire /usr/share/locale les fichiers
fr&lowbar;FR et en&lowbar;DK (qui est inclus dans
fr&lowbar;FR)</p>
</li>
<li>
<p>créer le répertoire /usr/share/i18n/charmap et
copier le fichier ISO&lowbar;8859-1:1987</p>
</li>
<li>
<p>faire man localedef et lancer la commande :</p>
<pre class="SCREEN">
localedef -f ISO_8859-1:1987 -i fr_FR fr
</pre>
Ceci créera l'entrée fr dans /usr/share/locale soit :
<pre class="SCREEN">
/usr/share/locale/fr
</pre>
Ce répertoire devrait maintenant contenir les fichiers :
<pre class="SCREEN">
LC_COLLATE
LC_CTYPE
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME
</pre></li>
<li>
<p>lire le fichier « locale.fr » que l'on peut trouver
sur le serveur ftp.lip6.fr (chercher sous doc, linux...) et dont la
traduction française a été faite par
Éric DUMAS (hélas ce doc ne traite principalement que
de LC&lowbar;MESSAGES. À quand la suite Éric ?
;-) )</p>
</li>
<li>
<p>compléter éventuellement l'initialisation des
variables du shell comme décrit dans la section sur bash ou
tcsh</p>
</li>
<li>
<p>dans un programme, utilisez la fonction setlocale() (man
setlocale.3) pour fixer les paramètres locaux CAR le noyau
linux initialise toujours cette fonction avec l'argument une locale
« C » (POSIX) donc sans accents !</p>
<pre class="SCREEN">
setlocale(LC_CTYPE,"fr_FR");
</pre></li>
<li>
<p>Ça y est ! Les accents sont disponibles dans ncurses.</p>
</li>
</ul>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN1179" id="AEN1179">Midnight Commander
(mc)</a></h4>
<p>En changeant de police, il peut arriver que les lignes de cadre
soient remplacées par divers caractères.</p>
<p>2 possibilitées :</p>
<ul>
<li>
<p>La police chargée ne dispose pas de caractères
dits « semi graphiques », qui permettent de dessiner
des cadres</p>
</li>
<li>
<p>Il y a discordance entre la police et sa table de mappage</p>
</li>
</ul>
<p>Pour le premier cas, la seule solution est de changer de police,
mais dans le second cas, il suffit en général de
charger la table avec loadunimap par exemple :</p>
<p></p>
<pre class="SCREEN">
loadunimap lat1u.uni
loadunimap lat5u.uni
loadunimap lat9u.uni
</pre></div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1191" id="AEN1191">Kernel</a></h3>
<p>Pour mettre un support pour le clavier français
directement dans le kernel, ce qui est pratique pour les
systèmes embarqués ou ne démarrant que sur
disquettes, afin de gagner le maximum de place :</p>
<p></p>
<pre class="SCREEN">
/usr/bin/loadkeys loadkeys --mktable votre-table-de-clavier.map > /usr/src/linux/drivers/char/defkeymap.c
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1196" id="AEN1196">Lilo</a></h3>
<p>Depuis la version 20, on peut spécifier un clavier
(français, par exemple) au démarrage de LILO.</p>
<p>Bien sur, cela ne fait qu'échanger quelques touches
(a/q,m/:,... pour un clavier fr) mais cela est assez utile lorsque
l'on veut taper « win ».</p>
<p>Je vous conseille toutefois de ne pas faire de label utilisant
des touches qui diffèrent entre l'AZERTY et le QWERTY, ne
serait-ce que si vous devez avoir un jour un autre utilisateur sur
votre ordinateur...</p>
<p>Il est plus simple de faire des labels courts et d'utiliser des
programmes comme GAG ou GRUB, remplaçant fort
avantageusement les lignes de lilo par un magnifique menu graphique
dans le cas de GAG.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1202" id="AEN1202">Groff
(man)</a></h3>
<p>Sur certaines distributions, le programme man n'est pas
configuré pour afficher les accents.</p>
<p>Si vous rencontrez ce problème, éditez son fichier
de configuration (/etc/man.config sur les distributions actuelles)
et localisez une ligne ressemblant à cela :</p>
<p></p>
<pre class="SCREEN">
NROFF /usr/bin/groff -Tascii -mandoc
</pre>
<p>Remplacez-là par :</p>
<p></p>
<pre class="SCREEN">
NROFF /usr/bin/groff -Tlatin1 -mandoc
</pre>
<p>Les vieilles versions de man utilisent aussi col, et le point
suivant s'applique aussi.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1212" id="AEN1212">Divers</a></h3>
<p>Une belle discussion sur le thème de l'ISO-8859-1 et sur
« comment manipuler les caractères 8-bits » est
<a href="ftp://grasp.insa-lyon.fr/pub/faq/fr/accents" target=
"_top">disponible</a></p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN1216" id="AEN1216">Réglage du
clavier pour les applications X</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN1218" id="AEN1218">Les xterminaux
(xterm, nxterm, rxvt...)</a></h3>
<p>Les faire fonctionner avec toutes les touches standard du
clavier 102 touches relève du miracle, quant aux accents,
seule une recompilation vous permettra de les utiliser !</p>
<p>Pour xterm, essayez de mettre dans votre <tt class=
"LITERAL">.Xdefaults</tt> :</p>
<p></p>
<pre class="SCREEN">
XTerm*eightBitInput: true
XTerm*eightBitOutput: true
*customization: -color
XTerm*VT100*Translations: #override\n\
XTerm*pointerColor: red
None<Key>Begin: string(0x1b) string("[1~")\n\
None<Key>End: string(0x1b) string("[4~")\n\
None<Key>Prior: scroll-back(1,halfpage)\n\
None<Key>Next: scroll-forw(1,halfpage)\n\
Shift<Key>Prior: scroll-back(1,page)\n\
Shift<Key>Next: scroll-forw(1,page)
XTerm*fontMenu*fontdefault*Label: Default
XTerm*VT100*font: 9x15
XTerm*fontMenu*font1*Label: Illisible
XTerm*VT100*font1: nil2
XTerm*fontMenu*font2*Label: Minuscule
XTerm*VT100*font2: 5x7
XTerm*fontMenu*font3*Label: Petit
XTerm*VT100*font3: 6x10
XTerm*fontMenu*font4*Label: Normal
XTerm*VT100*font4: fixed
XTerm*fontMenu*font5*Label: Moyen
XTerm*VT100*font5: 7x13
XTerm*fontMenu*font6*Label: Tres grand
XTerm*VT100*font6: 10x20
</pre>
<p>Dans <tt class="LITERAL">.inputrc</tt> :</p>
<p></p>
<pre class="SCREEN">
# pour rxvt
"\e[7˜":beginning-of-line
"\e[8˜":end-of-line
# pour xterm
"\e[H": beginning-of-line
"\e[F": end-of-line
</pre>
<p>Mais ces deux solutions ne vous garantissent pas de
résoudre tous les problèmes de rxvt et de xterm
...</p>
<p>Pour les résoudre sans créer de fichiers dans
<tt class="LITERAL">/usr/X11R6/lib/X11/app-defaults</tt>, je tiens
sinon à votre disposition un xiterm, un terminal X
supportant *TOUTES* les touches des claviers standard, avec Home,
End, Page&lowbar;Up (...) et même le pavé
numérique, fonctionnant comme en mode console, i.e.
Shift-Page&lowbar;Up permettant de faire défiler une
page, voire mieux : le pavé numérique reconnaissant
enfin la différence entre Verr. Num allumé et Verr.
Num éteint.</p>
<p>X international terminal (xiterm pour les intimes) est bien
sûr sous GPL et mis à jour pour suivre
parallèlement l'évolution de rxvt.</p>
<p>Sur par exemple <a href="http://metalab.unc.edu/guylhem/xiterm"
target="_top">mon site</a> vous trouverez donc xiterm, qui remplace
votre xterm classique en y apportant la couleurs, les accents et
les touches étendues.</p>
<p>Pour l'installer, compilez-le, devenez root et tapez :</p>
<p></p>
<pre class="SCREEN">
rm /usr/X11R6/bin/xterm
rm /usr/X11R6/lib/X11/app-defaults/xterm
rm /usr/X11R6/lib/X11/app-defaults/rxvt
rm /usr/X11R6/lib/X11/app-defaults/Xterm
rm /usr/X11R6/lib/X11/app-defaults/XTerm
rm /usr/X11R6/lib/X11/app-defaults/Rxvt
rm /usr/X11R6/lib/X11/app-defaults/RXvt
cp xiterm /usr/local/bin
ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/xterm
ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/rxvt
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1238" id="AEN1238">Les applications
Motif</a></h3>
<p>Là, je n'ai malheureusement aucun remède miracle
!</p>
<p>Il faudrait modifier le code source, code indiqué plus
haut, pour remplacer XLookupString par XmLookupString.</p>
<p>Utilisez les possibilités du fichier french au lieu des
touches mortes (AltGr (voyelle) : voyelle accent circonflexe... )
!</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1243" id="AEN1243">Le manuel</a></h3>
<p>Pablo Saratxaga tient à votre disposition un xman
modifié pour qu'il supporte la variable « LANG »
et puisse afficher les pages en d'autres langues qu'anglais.</p>
<p>Il est disponible sur le lip6 en <a href=
"ftp.lip6.fr:/pub/linux/distributions/redhat-contrib/SRPMS/xman-3.1.6-3.src.rpm"
target="_top">sources</a> ou en <a href=
"ftp.lip6.fr:/pub/linux/distributions/redhat-contrib/i386/xman-3.1.6-3.i386.rpm"
target="_top">binaires</a></p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1249" id="AEN1249">NumLock</a></h3>
<p>Pour l'activer sous X, mettre en commentaire ServerNumLock dans
la section keyboard de XF86Config, puis rajouter au dessous Xleds
2, ce qui allumera la led.</p>
<p>Attention, ce conseil ne s'applique que lorsque l'on n'utilise
pas xkb, i.e. qu'on met XkbDisable dans XF86Config...</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN1253" id="AEN1253">XDM</a></h3>
<p>/etc/X11/xdm/Xresources sert à ne rencontrer aucun
problème avec les touches « spéciales »
(Home, End ...) sous X.</p>
<p></p>
<pre class="SCREEN">
xlogin*login.translations: #override\
Ctrl<Key>R: abort-display() \n\
<Key>BackSpace: delete-previous-character() \n\
<Key>Home: move-to-begining() \n\
<Key>Delete: delete-character() \n\
<Key>End: move-to-end() \n\
<Key>Left: move-backward-character() \n\
<Key>Return: set-session-argument() finish-field() \n\
<Key>Right: move-forward-character()
</pre></div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN1258" id=
"AEN1258">Remerciements</a></h2>
<p>Ce document ne serait pas ce qu'il est sans l'aide de Nat
Makarévitch (nat à nataa.fr.eu.org) qui l'a relu et
m'a aidé à le modifier de nombreuses fois.</p>
<p>Un excellent document plus générique, traitant de
l'installation par ex, est le Guide du Rootard, disponible sur
<a href="http://www.freenix.fr/linux/Guide" target=
"_top">freenix</a> ou <a href=
"ftp://ftp.lip6.fr:/pub/linux/french/docs/" target="_top">le
lip6</a></p>
<p>Remercions enfin par ordre alphabétique ces contributeurs
:</p>
<pre class="SCREEN">
Jean-Michel Antoine
Michel Billaud
Chmouel Boudjnah
Stephane Bortzmeyer
Denis Braussen
Rémy Card
Julien Cassaigne
Xavier Cazin
Laurent Chemla
René Cougnenc
Bruno Cornec
Yann Dirson
Éric Dubreuil
Éric Dumas
Arnaud Gomes-do-Vale
Pierre Ficheux
Laurent Frigault
Hugolino
Antoine Leca
Frederic Lepied
Jeannot Langlois
Stephane Marzloff
Marc Merlin
Thomas Parmelan
Frédéric Petit
Thomas Quinot
David Robert
Olivier Robert
Benjamin Ryzman
Pablo Saratxaga
Julien Simon
Loïc Tortay
J.M. Vansteene
</pre>
<p>Surtout, si je vous oublie, signalez-le moi ! De même si
vous ne voulez plus figurer dans cette liste...</p>
<p>Envoyez moi vos suggestions et modifications (guylhem à
metalab.unc.edu), je me ferai un plaisir de les intégrer
dans les prochaines versions !</p>
<p>Signalez-moi aussi les erreurs : cet HOWTO est en
perpétuel changement, avec des nouveautés incluses
à chaque version ; des erreurs peuvent facilement s'y
glisser !</p>
</div>
</div>
</body>
</html>
|