Knowledge (XXG)

gettext

Source đź“ť

1121: 376: 284: 66: 25: 168: 492: 477:
implementation of the system in 1995. Gettext, GNU or not, has since been ported to many programming languages. The simplicity of po and widespread editor support even lead to its adoption in non-program contexts for text documents or as an intermediate between other localization formats, with
472:
decided that the message-as-key approach of gettext is simpler and more friendly. (Most other systems, including catgets, requires the developer to come up with "key" names for every string.) They released GNU gettext, a
1109:
yet. A commonly used gettext implementation on these Cocoa platforms is POLocalizedString. The Microsoft Outlook for iOS team also provides a LocalizedStringsKit library with a gettext-like API.
1762:"libintl-perl - An Internationalization Library for Perl That Aims To Be Compatible With the Uniforum Message Translations System as Implemented For Example in GNU Gettext" 449:
implemented the first gettext in 1993. The Unix and POSIX developers never really agreed on what kind of interface to use (the other option is the X/Open catgets), so many
445:
Initially, POSIX provided no means of localizing messages. Two proposals were raised in the late 1980s, the 1988 Uniforum gettext and the 1989 X/Open catgets (XPG-3 § 5).
609:
where a programmatic ID (often an integer) is used. To handle the case where the same original-language text can have different meanings, gettext has functions like
1974: 1477: 588:
then uses the supplied strings as keys for looking up translations, and will return the original string when no translation is available. This is in contrast to
1419: 1648: 953:(empty string) entry of the PO file stores some metadata, one of which is the plural form that the language uses, usually specified using a C-style 1205: 405:. One of the main benefits of gettext is that it separates programming from translating. The most commonly used implementation of gettext is 394: 334: 1979: 1126: 178: 623:(Portable Object Template) file, which contains a list of all the translatable strings extracted from the sources. Comments starting with 507:
that the user will see in the original language, usually English. To save typing time and reduce code clutter, this function is commonly
627:
are used to give translators hints, although other prefixes are also configurable to further limit the scope. One such common prefix is
461:, despite the fact that its old foe has already fallen out of use. Concerns cited included its dependence on the system-set locale (a 210: 149: 52: 883:
instead. Its main difference from the Unix variable is that it supports multiple languages, separated with a colon, for fallback.
1075: 1340: 1067: 87: 1969: 1231: 1087: 1095: 307: 1524: 1469: 457:, implemented both. As of August 2019, whether gettext should be part of POSIX was still a point of debate in the 996:
nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
434: 275: 130: 1580: 102: 1177: 1106: 76: 1673: 1401: 1315: 1280: 504: 826:
used by the programming language. It also allows for outputting to language-specific formats other than MO; the
815:
on systems with another gettext implementation. These are now ready for distribution with the software package.
1630: 1091: 1063: 759:
initializes the translations so, for instance, for a French language translation, the command to run would be:
684: 109: 83: 38: 1365: 465:
subject to multithreading problems) and its support for newer C-language extensions involving wide strings.
495:
Typical gettext workflow. The de.po instance on the left shows a "renewing" of translations via msgmerge.
116: 683:
The resultant .pot file looks like this with the comment (note that xgettext recognizes the string as a
347: 1887:"DanielBaulig/node-gettext: An adaption of Joshua I. Miller's Javascript Gettext library for node.js" 1499: 862: 727:
library one can include that provides the many same functions gettext provides in similar languages.
508: 98: 1605: 823: 329: 1563: 375: 283: 1051: 426: 422: 1549: 478:
converters like po4a (po for anything) and Translate Toolkit emerging to provide such a bridge.
769:. The translator then edits the resultant file, either by hand or with a translation tool like 1225: 1144: 603: 1054:. msginit also prefills the appropriate rule when creating a file for one specific language. 958: 446: 402: 341: 317: 236: 462: 430: 322: 1963: 1311: 1276: 474: 123: 1952: 1786: 895:
interface accounts for the count of a noun in the string. As with the convention of
1862:"makkarpov/scalingua: A simple gettext-like internationalization library for Scala" 1812:"gettext – Multilingual internationalization services – Python 3.7.0 documentation" 1741: 1384:"0001122: POSIX should include gettext() and friends - Austin Group Defect Tracker" 876: 735:
for the simple gettext function, although it depends on the C library to provide a
720: 458: 44: 1929: 1134: 1105:
GNU gettext has native support for Objective-C, but there is no support for the
868:, and the program will display strings in the selected language, if there is an 469: 418: 410: 65: 1930:"microsoft/LocalizedStringKit: Generate .strings files directly from your code" 1886: 1811: 1691: 1383: 1116: 841:
can be used to "update" an old translation to a newer template. There is also
243: 231: 1911: 1303: 1268: 639:/// TRANSLATORS: %s contains the user's name as specified in Preferences 450: 398: 386: 1742:"NGettext.Wpf - Proper internationalization support for WPF (via NGettext)" 696:#. TRANSLATORS: %s contains the user's name as specified in Preferences 1525:"AmigaOS Manual: Python Modules and Packages - AmigaOS Documentation Wiki" 1246: 397:(i18n and l10n) system commonly used for writing multilingual programs on 1861: 1761: 1692:"Google Code Archive - Long-term storage for Google Code Project Hosting" 811:(Machine Object) files. GNU gettext may use its own file name extension 728: 417:. gettext provides an option to use different strings for any number of 358: 1716: 1154: 1149: 1099: 1071: 596: 1836: 1451: 1746: 1139: 1001:
Since now there are four plural forms, the final po would look like:
827: 770: 688: 491: 1304:"Introduction to Internationalization Programming | Linux Journal" 774: 589: 490: 454: 1433: 1079: 858: 1083: 954: 908:// parameters: english singular, english plural, integer count 161: 59: 18: 1269:"Bridging the Digital Divide in South Africa | Linux Journal" 1912:"hulab/POLocalizedString: gettext for iOS/OS X/watchOS/tvOS" 1717:"turquoiseowl/i18n: Smart internationalization for ASP.NET" 634:
For example, an input file with a comment might look like:
1050:
Reference plural rules for languages are provided by the
185: 1420:"GNU gettext utilities: List of Programming Languages" 849:
files, and many other utilities for batch processing.
1649:"GNU gettext utilities: Locale Environment Variables" 1470:"GNU gettext utilities: How Marks Appear in Sources" 751:(Portable Object) file from the template using the 500: 353: 340: 328: 316: 306: 274: 252: 242: 230: 90:. Unsourced material may be challenged and removed. 1452:"The essential toolkit for localization engineers" 16:GNU internationalization and localization software 1206:"History of gettext() et al? - comp.unix.solaris" 1341:"How to Translate With GetText PO and POT Files" 837:In later phases of the developmental workflow, 421:of nouns, but this feature has no support for 1212:. Archived from the original on 23 March 2012 1066:, gettext has the following implementations: 822:can also perform some checks relevant to the 8: 903:in practical use. Consider the code sample: 613:that accept an additional "context" string. 437:(Portable Object) and .MO (Machine Object). 312:various based on OpenSolaris and GNU gettext 225: 53:Learn how and when to remove these messages 1575: 1573: 755:program, then fills out the translations. 374: 282: 224: 1302:Tykhomyrov, Olexiy Ye (1 November 2002). 1200: 1198: 803:Finally, the .po files are compiled with 211:Learn how and when to remove this message 150:Learn how and when to remove this message 1166: 957:. Suppose we want to translate for the 781:files. An edited entry will look like: 1318:from the original on 17 September 2019 1283:from the original on 17 September 2019 1223: 879:can also use the environment variable 499:The basic interface of gettext is the 1975:Internationalization and localization 1267:Martindale, Linda (1 November 2002). 1172: 1170: 762:msginit --locale=fr --input=name.pot 395:internationalization and localization 335:Internationalization and localization 7: 1335: 1333: 1127:Free and open-source software portal 88:adding citations to reliable sources 619:is run on the sources to produce a 1837:"gettext: Translate Text Messages" 1480:from the original on 25 March 2024 1045:"%d prevedena sporoÄŤila" 1039:"%d prevedeni sporoÄŤili" 1033:"%d prevedeno sporoÄŤilo" 1027:"%d prevedenih sporoÄŤil" 1021:"%d translated messages" 929:"%d translated messages" 798:"Je m'appelle %s.\n" 14: 1581:"GNU gettext utilities: PO Files" 1245:Bruno Haible (22 February 2024). 1015:"%d translated message" 923:"%d translated message" 188:and remove advice or instruction. 34:This article has multiple issues. 1119: 731:also has a simplified construct 413:in 1995. The runtime library is 166: 64: 23: 75:needs additional citations for 42:or discuss these issues on the 1936:. Microsoft. 12 February 2020. 1606:"Files Conveying Translations" 1: 1564:"GNU gettext utilities: bash" 1247:"GNU gettext 0.22.5 released" 792:"My name is %s.\n" 708:"My name is %s.\n" 433:(Portable Object Template), 1980:Software-localization tools 1918:. hulab. 19 September 2019. 1550:"GNU gettext utilities: sh" 1388:Austin Group Defect Tracker 258:; 34 years ago 1996: 1107:Swift programming language 777:with its editing mode for 677:is run using the command: 503:function, which accepts a 1953:Official GNU gettext site 1230:: CS1 maint: unfit URL ( 899:, it is often aliased to 747:The translator derives a 302: 270: 1003: 963: 905: 861:-type systems, sets the 783: 693: 636: 517: 429:used by this system are 1674:"Language Plural Rules" 1402:"The Programmer's View" 845:for reverse-compiling 496: 348:free software licenses 289:; 6 months ago 1635:GNU gettext utilities 1366:"Message Translation" 723:, gettext provides a 494: 1970:GNU Project software 863:environment variable 654:"My name is %s. 580:// same, but shorter 562:"My name is %s. 532:"My name is %s. 501:gettext(const char*) 186:rewrite this article 84:improve this article 1631:"msgfmt Invocation" 1006:#: src/msgfmt.c:876 427:filename extensions 227: 1052:Unicode consortium 497: 423:grammatical gender 409:, released by the 287:/ 21 February 2024 232:Original author(s) 1750:. 16 August 2019. 1456:Translate Toolkit 1370:The GNU C Library 1145:Translate Toolkit 765:This will create 604:Microsoft Windows 403:operating systems 383: 382: 221: 220: 213: 203: 202: 179:a manual or guide 160: 159: 152: 134: 57: 1987: 1956: 1955: 1938: 1937: 1926: 1920: 1919: 1908: 1902: 1901: 1899: 1897: 1883: 1877: 1876: 1874: 1872: 1858: 1852: 1851: 1849: 1847: 1833: 1827: 1826: 1824: 1822: 1808: 1802: 1801: 1799: 1797: 1783: 1777: 1776: 1774: 1772: 1758: 1752: 1751: 1738: 1732: 1731: 1729: 1727: 1713: 1707: 1706: 1704: 1702: 1688: 1682: 1681: 1670: 1664: 1663: 1661: 1659: 1645: 1639: 1638: 1627: 1621: 1620: 1618: 1616: 1602: 1596: 1595: 1593: 1591: 1577: 1568: 1567: 1560: 1554: 1553: 1546: 1540: 1539: 1537: 1535: 1529:wiki.amigaos.net 1521: 1515: 1514: 1512: 1510: 1496: 1490: 1489: 1487: 1485: 1466: 1460: 1459: 1448: 1442: 1441: 1430: 1424: 1423: 1416: 1410: 1409: 1408:. 30 April 1998. 1398: 1392: 1391: 1380: 1374: 1373: 1362: 1356: 1355: 1353: 1351: 1345:Icanlocalize.com 1337: 1328: 1327: 1325: 1323: 1308:linuxjournal.com 1299: 1293: 1292: 1290: 1288: 1273:linuxjournal.com 1264: 1258: 1257: 1255: 1253: 1242: 1236: 1235: 1229: 1221: 1219: 1217: 1202: 1193: 1192: 1190: 1188: 1174: 1129: 1124: 1123: 1122: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 997: 994: 991: 988: 985: 982: 979: 976: 973: 970: 967: 959:Slovene language 955:ternary operator 952: 949:A header in the 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 902: 898: 894: 882: 871: 867: 848: 844: 840: 833: 821: 814: 810: 806: 799: 796: 793: 790: 787: 786:#: src/name.c:36 780: 768: 758: 754: 750: 738: 734: 726: 715: 712: 709: 706: 703: 702:#: src/name.c:36 700: 697: 691:format string): 676: 670: 667: 664: 661: 658: 655: 652: 649: 646: 643: 640: 630: 626: 622: 618: 612: 608: 601: 594: 587: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 514: 502: 447:Sun Microsystems 379: 378: 371: 368: 366: 364: 362: 360: 318:Operating system 297: 295: 294:21 February 2024 290: 286: 266: 264: 259: 237:Sun Microsystems 228: 216: 209: 198: 195: 189: 177:is written like 170: 169: 162: 155: 148: 144: 141: 135: 133: 92: 68: 60: 49: 27: 26: 19: 1995: 1994: 1990: 1989: 1988: 1986: 1985: 1984: 1960: 1959: 1951: 1950: 1947: 1942: 1941: 1928: 1927: 1923: 1910: 1909: 1905: 1895: 1893: 1885: 1884: 1880: 1870: 1868: 1860: 1859: 1855: 1845: 1843: 1835: 1834: 1830: 1820: 1818: 1816:docs.python.org 1810: 1809: 1805: 1795: 1793: 1785: 1784: 1780: 1770: 1768: 1760: 1759: 1755: 1740: 1739: 1735: 1725: 1723: 1715: 1714: 1710: 1700: 1698: 1696:Code.google.com 1690: 1689: 1685: 1672: 1671: 1667: 1657: 1655: 1647: 1646: 1642: 1629: 1628: 1624: 1614: 1612: 1604: 1603: 1599: 1589: 1587: 1579: 1578: 1571: 1562: 1561: 1557: 1548: 1547: 1543: 1533: 1531: 1523: 1522: 1518: 1508: 1506: 1500:"About catgets" 1498: 1497: 1493: 1483: 1481: 1468: 1467: 1463: 1450: 1449: 1445: 1432: 1431: 1427: 1418: 1417: 1413: 1406:gettext 0.10.35 1400: 1399: 1395: 1382: 1381: 1377: 1364: 1363: 1359: 1349: 1347: 1339: 1338: 1331: 1321: 1319: 1301: 1300: 1296: 1286: 1284: 1266: 1265: 1261: 1251: 1249: 1244: 1243: 1239: 1222: 1215: 1213: 1204: 1203: 1196: 1186: 1184: 1178:"About gettext" 1176: 1175: 1168: 1163: 1125: 1120: 1118: 1115: 1062:In addition to 1060: 1058:Implementations 1048: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 999: 998: 995: 992: 989: 986: 983: 980: 978:"..." 977: 974: 971: 968: 965: 950: 947: 946: 943: 940: 937: 934: 931: 928: 925: 922: 919: 916: 913: 910: 907: 900: 896: 892: 889: 880: 869: 865: 855: 846: 842: 838: 831: 819: 812: 808: 804: 801: 800: 797: 794: 791: 788: 785: 778: 766: 763: 756: 752: 748: 745: 736: 732: 724: 717: 716: 713: 710: 707: 704: 701: 698: 695: 681: 674: 672: 671: 668: 665: 662: 659: 656: 653: 650: 647: 644: 641: 638: 628: 624: 620: 616: 610: 606: 599: 592: 585: 583: 582: 579: 576: 573: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 537: 534: 531: 528: 525: 522: 519: 512: 489: 484: 463:global variable 443: 373: 357: 298: 293: 291: 288: 262: 260: 257: 253:Initial release 217: 206: 205: 204: 199: 193: 190: 183: 171: 167: 156: 145: 139: 136: 93: 91: 81: 69: 28: 24: 17: 12: 11: 5: 1993: 1991: 1983: 1982: 1977: 1972: 1962: 1961: 1958: 1957: 1946: 1945:External links 1943: 1940: 1939: 1921: 1903: 1878: 1853: 1828: 1803: 1778: 1753: 1733: 1708: 1683: 1665: 1640: 1622: 1597: 1569: 1555: 1541: 1516: 1491: 1461: 1443: 1425: 1411: 1393: 1375: 1357: 1329: 1294: 1259: 1237: 1210:Compgroups.net 1194: 1165: 1164: 1162: 1159: 1158: 1157: 1152: 1147: 1142: 1137: 1131: 1130: 1114: 1111: 1059: 1056: 1004: 964: 906: 888: 885: 854: 851: 830:equivalent is 784: 761: 744: 741: 694: 680:xgettext -c / 679: 637: 518: 488: 485: 483: 480: 442: 439: 381: 380: 355: 351: 350: 344: 338: 337: 332: 326: 325: 323:Cross-platform 320: 314: 313: 310: 304: 303: 300: 299: 280: 278: 276:Stable release 272: 271: 268: 267: 254: 250: 249: 246: 240: 239: 234: 219: 218: 201: 200: 174: 172: 165: 158: 157: 72: 70: 63: 58: 32: 31: 29: 22: 15: 13: 10: 9: 6: 4: 3: 2: 1992: 1981: 1978: 1976: 1973: 1971: 1968: 1967: 1965: 1954: 1949: 1948: 1944: 1935: 1931: 1925: 1922: 1917: 1913: 1907: 1904: 1892: 1888: 1882: 1879: 1867: 1863: 1857: 1854: 1842: 1838: 1832: 1829: 1817: 1813: 1807: 1804: 1792: 1788: 1782: 1779: 1767: 1763: 1757: 1754: 1749: 1748: 1743: 1737: 1734: 1722: 1718: 1712: 1709: 1697: 1693: 1687: 1684: 1679: 1675: 1669: 1666: 1654: 1650: 1644: 1641: 1636: 1632: 1626: 1623: 1611: 1607: 1601: 1598: 1586: 1582: 1576: 1574: 1570: 1565: 1559: 1556: 1551: 1545: 1542: 1530: 1526: 1520: 1517: 1505: 1501: 1495: 1492: 1479: 1475: 1471: 1465: 1462: 1457: 1453: 1447: 1444: 1439: 1435: 1429: 1426: 1421: 1415: 1412: 1407: 1403: 1397: 1394: 1389: 1385: 1379: 1376: 1371: 1367: 1361: 1358: 1346: 1342: 1336: 1334: 1330: 1317: 1313: 1312:Linux Journal 1309: 1305: 1298: 1295: 1282: 1278: 1277:Linux Journal 1274: 1270: 1263: 1260: 1248: 1241: 1238: 1233: 1227: 1211: 1207: 1201: 1199: 1195: 1183: 1179: 1173: 1171: 1167: 1160: 1156: 1153: 1151: 1148: 1146: 1143: 1141: 1138: 1136: 1133: 1132: 1128: 1117: 1112: 1110: 1108: 1103: 1101: 1097: 1093: 1089: 1085: 1081: 1077: 1073: 1069: 1065: 1057: 1055: 1053: 1002: 993:Plural-Forms: 962: 960: 956: 904: 886: 884: 878: 873: 872:file for it. 864: 860: 857:The user, on 852: 850: 835: 829: 825: 824:format string 816: 782: 776: 772: 760: 742: 740: 730: 722: 692: 690: 686: 678: 635: 632: 614: 605: 598: 591: 516: 510: 506: 493: 486: 481: 479: 476: 475:free software 471: 466: 464: 460: 456: 452: 448: 440: 438: 436: 432: 428: 424: 420: 416: 412: 408: 404: 400: 396: 392: 388: 377: 370: 356: 352: 349: 345: 343: 339: 336: 333: 331: 327: 324: 321: 319: 315: 311: 309: 305: 301: 285: 279: 277: 273: 269: 255: 251: 247: 245: 241: 238: 235: 233: 229: 223: 215: 212: 197: 187: 182: 180: 175:This article 173: 164: 163: 154: 151: 143: 132: 129: 125: 122: 118: 115: 111: 108: 104: 101: â€“  100: 96: 95:Find sources: 89: 85: 79: 78: 73:This article 71: 67: 62: 61: 56: 54: 47: 46: 41: 40: 35: 30: 21: 20: 1933: 1924: 1915: 1906: 1894:. Retrieved 1890: 1881: 1869:. Retrieved 1865: 1856: 1844:. Retrieved 1840: 1831: 1821:21 September 1819:. Retrieved 1815: 1806: 1794:. Retrieved 1790: 1781: 1771:14 September 1769:. Retrieved 1765: 1756: 1745: 1736: 1724:. Retrieved 1720: 1711: 1699:. Retrieved 1695: 1686: 1677: 1668: 1656:. Retrieved 1652: 1643: 1634: 1625: 1613:. Retrieved 1609: 1600: 1588:. Retrieved 1584: 1558: 1544: 1532:. Retrieved 1528: 1519: 1507:. Retrieved 1503: 1494: 1482:. Retrieved 1473: 1464: 1455: 1446: 1437: 1428: 1414: 1405: 1396: 1387: 1378: 1369: 1360: 1348:. Retrieved 1344: 1322:17 September 1320:. Retrieved 1307: 1297: 1287:17 September 1285:. Retrieved 1272: 1262: 1250:. Retrieved 1240: 1214:. Retrieved 1209: 1185:. Retrieved 1181: 1104: 1061: 1049: 1018:msgid_plural 1000: 975:"" 969:"" 948: 890: 877:GNU variants 874: 856: 836: 817: 807:into binary 802: 764: 746: 721:shell script 718: 714:"" 682: 673: 633: 629:TRANSLATORS: 615: 607:LoadString() 584: 498: 467: 459:Austin Group 453:, including 444: 419:plural forms 414: 406: 390: 384: 281:0.22.5  244:Developer(s) 222: 207: 191: 184:Please help 176: 146: 137: 127: 120: 113: 106: 94: 82:Please help 77:verification 74: 50: 43: 37: 36:Please help 33: 1846:13 November 1678:unicode.org 1474:www.gnu.org 1135:gtranslator 1009:#, c-format 887:Plural form 866:LC_MESSAGES 743:Translating 699:#, c-format 600:GetString() 487:Programming 470:GNU Project 451:C libraries 425:. The main 411:GNU Project 407:GNU gettext 140:August 2008 1964:Categories 1891:GitHub.com 1866:github.com 1796:24 October 1766:github.com 1721:GitHub.com 1509:24 October 1161:References 987:sl\n" 893:ngettext() 739:function. 725:gettext.sh 687:-language 611:cgettext() 308:Repository 110:newspapers 39:improve it 1787:"Gettext" 1070:for both 984:Language: 897:gettext() 875:Users on 737:gettext() 733:$ "msgid" 719:In POSIX 593:catgets() 586:gettext() 482:Operation 401:computer 399:Unix-like 387:computing 365:/software 99:"Gettext" 45:talk page 1871:28 April 1615:22 April 1478:Archived 1438:po4a.org 1316:Archived 1281:Archived 1226:cite web 1113:See also 1074:and for 917:ngettext 881:LANGUAGE 843:msgunfmt 839:msgmerge 729:GNU bash 675:xgettext 617:xgettext 367:/gettext 346:Various 194:May 2009 1896:3 April 1841:rdrr.io 1791:php.net 1726:3 April 1701:3 April 1658:3 April 1653:Gnu.org 1610:Gnu.org 1590:3 April 1585:Gnu.org 1504:gnu.org 1484:3 April 1350:3 April 1252:7 March 1216:3 April 1182:gnu.org 1155:Weblate 1150:Virtaal 1100:Node.js 1072:ASP.NET 853:Running 757:msginit 753:msginit 666:my_name 597:AmigaOS 574:my_name 544:my_name 526:gettext 509:aliased 441:History 415:libintl 391:gettext 354:Website 342:License 292: ( 261: ( 248:various 226:gettext 124:scholar 1934:GitHub 1916:GitHub 1747:GitHub 1534:9 July 1434:"po4a" 1140:Poedit 1098:, and 1088:Python 1042:msgstr 1036:msgstr 1030:msgstr 1024:msgstr 990:" 981:" 972:msgstr 911:printf 832:gencat 828:X/Open 820:msgfmt 805:msgfmt 795:msgstr 771:Poedit 711:msgstr 689:printf 660:" 642:printf 568:" 550:printf 538:" 520:printf 505:string 393:is an 372:  126:  119:  112:  105:  97:  1187:9 May 1096:Scala 1012:msgid 966:msgid 789:msgid 775:Emacs 773:, or 767:fr.po 705:msgid 602:, or 590:POSIX 455:glibc 131:JSTOR 117:books 1898:2016 1873:2016 1848:2021 1823:2018 1798:2017 1773:2017 1728:2016 1703:2016 1660:2016 1617:2014 1592:2016 1536:2023 1511:2017 1486:2024 1352:2016 1324:2019 1289:2019 1254:2024 1232:link 1218:2016 1189:2024 1080:Perl 891:The 859:Unix 818:GNU 813:.gmo 621:.pot 468:The 431:.POT 363:.org 361:.gnu 330:Type 263:1990 256:1990 103:news 1084:PHP 1076:WPF 870:.mo 847:.mo 809:.mo 779:.po 749:.po 625:/// 511:to 435:.PO 385:In 359:www 86:by 1966:: 1932:. 1914:. 1889:. 1864:. 1839:. 1814:. 1789:. 1764:. 1744:. 1719:. 1694:. 1676:. 1651:. 1633:. 1608:. 1583:. 1572:^ 1527:. 1502:. 1476:. 1472:. 1454:. 1436:. 1404:. 1386:. 1368:. 1343:. 1332:^ 1314:. 1310:. 1306:. 1279:. 1275:. 1271:. 1228:}} 1224:{{ 1208:. 1197:^ 1180:. 1169:^ 1102:. 1094:, 1090:, 1086:, 1082:, 1078:, 1068:C# 961:: 951:"" 944:); 938:), 901:N_ 834:. 669:); 663:), 657:\n 631:. 595:, 577:); 571:), 565:\n 547:); 541:), 535:\n 515:: 389:, 48:. 1900:. 1875:. 1850:. 1825:. 1800:. 1775:. 1730:. 1705:. 1680:. 1662:. 1637:. 1619:. 1594:. 1566:. 1552:. 1538:. 1513:. 1488:. 1458:. 1440:. 1422:. 1390:. 1372:. 1354:. 1326:. 1291:. 1256:. 1234:) 1220:. 1191:. 1092:R 1064:C 941:n 935:n 932:, 926:, 920:( 914:( 685:C 651:( 648:_ 645:( 559:( 556:_ 553:( 529:( 523:( 513:_ 369:/ 296:) 265:) 214:) 208:( 196:) 192:( 181:. 153:) 147:( 142:) 138:( 128:· 121:· 114:· 107:· 80:. 55:) 51:(

Index

improve it
talk page
Learn how and when to remove these messages

verification
improve this article
adding citations to reliable sources
"Gettext"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
a manual or guide
rewrite this article
Learn how and when to remove this message
Original author(s)
Sun Microsystems
Developer(s)
Stable release
Edit this on Wikidata
Repository
Operating system
Cross-platform
Type
Internationalization and localization
License
free software licenses
www.gnu.org/software/gettext/

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑