This file is indexed.

/usr/share/doc/gettext/NEWS is in gettext 0.19.3-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
Version 0.19.3 - October 2014

* Bug fixes:
  - Fix xgettext mishandling of octal character escapes in C.
  - Fix autopoint infinite recursion with certain configure.ac.

* The po/Makevars file has a new field MSGINIT_OPTIONS, that can be
  used to adjust msginit's operation.  This is particularly useful for
  controlling line wrapping behavior together with MSGMERGE_OPTIONS
  and XGETTEXT_OPTIONS.

* Portability:
  - Building on Solaris 10 and 11 with Solaris Studio compiler is now
    fixed.

Version 0.19.2 - July 2014

* Bug fixes:
  - Fix xgettext crash in parsing empty string literals in C and Vala.
  - ChangeLog file is added back to the gettext infrastructure.  It was
    mistakenly removed in 0.19.
  - Autoconf macro trace in autopoint now works again with Autoconf 2.68
    or earlier.  It was a regression in 0.19.

Version 0.19.1 - June 2014

* Programming languages support:

  - Desktop Entry:
    msgfmt now always reads the po/LINGUAS file, regardless of whether
    the LINGUAS environment variable is set.  The variable can now be
    used to restrict the languages list read from the po/LINGUAS file.

  - Vala:
    Bug fix in xgettext handling of "//" in string literals.  This was
    a regression after the C-99 Unicode escape support.

* The po/Makevars.template file now contains the newly added variables.

* msgfmt now treats errors in the PO file header as non-fatal.  Since
  0.19 msgfmt started to abort on the fatal errors, but some
  translation systems are still not ready to supply valid headers.

* Future backward-incompatibilities:
  - In future Gettext versions, msgfmt will treat header errors as
    fatal and terminate the command execution.

Version 0.19 - June 2014

* Programming languages support:

  - Desktop Entry:
    xgettext and msgfmt now support .desktop files, used by desktop
    applications, as input and output.

  - GSettings:
    xgettext now supports GSettings schema file format used by GNOME
    applications.

  - JavaScript:
    xgettext now recognizes E4X (ECMA-357) constructs.

  - PHP:
    Single and double quotes around heredoc markers are now recognized.

  - Python:
    The acceptable format specifiers in the braced-syntax format
    strings are now limited to the Standard Format Specifiers, to
    reasonably avoid false-positives.

  - Scheme:
    The gettext shorthand form _"abc", used by GIMP script-fu, is now
    recognized by xgettext.

  - C and Vala:
    xgettext now recognizes C99-style Unicode character escapes.

* The --add-location option of msgattrib, msgcat, msgcomm, msgconv,
  msgen, msgfilter, msggrep, msgmerge, msguniq, and xgettext commands
  now takes an optional argument 'never', 'full', or 'file', to
  control the format of "#: ..." comments.

* msgfmt now has --source option to keep generated .java file when
  running in Java mode.

* msgattrib now has --empty option that sets msgstr to empty when
  clearing fuzzy flag.

* msgexec and msgfilter pass the plural information to subprocess
  through the environment variable MSG{EXEC,FILTER}_MSGID_PLURAL and
  MSG{EXEC,FILTER}_PLURAL_FORM.

* New built-in filters 'quot' and 'boldquot' have been added to
  msgfilter.  These filters convert Latin quotation marks ('...',
  "...") into Unicode quotation marks (for example, U+2018) if
  possible, similar to the sed commands used in po/Rules-quot and
  po/Rules-boldquot.

* The po/Makevars file has a couple of new options PO_DEPENDS_ON_POT
  and DIST_DEPENDS_ON_UPDATE_PO, that can be used to adjust the
  behavior of updating PO files on demand.

* xgettext now strips prefixed string before the comment tag.  This is
  useful to support C-style comment like this:

  /*
   * TRANSLATORS: first line
   * second line
   */

  In this example, the extracted comment does not contain "* " at the
  beginning of each line.

* libgettextpo library:
  - Memory leak fixes in the PO file parser.

* Documentation:
  - A complete example showing the use of GNU gettext in a GNOME 3
    application has been added.


Version 0.18.3 - July 2013

* Runtime behaviour:
  On Mac OS X systems, the setlocale() function now properly
  invalidates loaded message catalogs when a locale has been set.

* Programming languages support:

  - C++:
    The gnu::autosprintf class now provides an assignment operator.

  - Glade:
    xgettext now supports GtkBuider file format used by Glade 3.
    xgettext now also extracts contexts (msgctxt) from Glade 2 and
    GtkBuider files.

  - JavaScript:
    xgettext now partially supports JavaScript.  Since the current
    JavaScript specification (ECMA-262) does not define the standard
    set of formatting methods nor translation functions, the
    implementation supports only a limited set of formatting methods
    and translation functions commonly used in Gjs and other popular
    JavaScript implemenations and libraries.

  - Lua:
    xgettext now supports Lua, using Ľubomír Remák's lua-gettext.

  - Python:
    xgettext and msgfmt's format string checking now recognize Python
    format string in braced syntax (PEP 3101).  xgettext now also
    supports explicit string concatenation with '+' and handles
    platform dependent line terminators (LF/CR/CRLF) transparently.

  - Tcl:
    Bug fix in xgettext Unicode escape handling.

  - Vala:
    xgettext now supports Vala.

* msgattrib now has --previous option to keep previous msgid when
  making messages fuzzy, similar to msgmerge --previous.

* msgfmt now checks PO file headers more strictly with less
  false-positives.

* 'gettextize' now checks macro directories specified with
  AC_CONFIG_MACRO_DIRS in configure.ac.

* Portability:
  - msginit now does not require GNU sed.
  - The Makefile rule for generating en@quot and en@boldquot now uses
    @SED@ variable instead of hard-coded 'sed' command to allow users
    to supply GNU sed.

* Future backward-incompatibilities:
  - In future Gettext versions, the files installed by 'gettextize'
    will require Automake 1.10 or later.  This will improve the
    compatibility of user projects with newer Automake versions.

Version 0.18.2 - December 2012

* xgettext now understands the block comment syntax of Guile 2.0.

* libgettextpo library:
  - The initial msgstr of a new message is now "", not NULL.
  - Bug fixes in the functions po_message_is_range, po_file_check_all,
    po_message_check_all.

* Installation options:
  The configure options --with-xz and --with-bzip2 can be used to specify
  alternate compression methods for the archive used by the 'autopoint'
  program. These options, together with --with-git, allow to trade
  dependencies against installed package size. --with-xz has the highest
  compression rate, followed by --with-git, followed by --with-bzip2.

* Autoconf macros:
  - The autoconf macros installed by 'gettextize' now work with the
    forthcoming Automake 1.14 and require Autoconf version 2.60 or
    newer.

* Portability:
  - Building on MacOS X 10.7, Cygwin 1.7.10, and newer 64-bit mingw is
    now supported.

Version 0.18.1 - June 2010

* msggrep: A '$' anchor in a regular expression now also matches the end of
  the string, even if it does not end in a newline.

* Dependencies:
  The libraries and programs are now linked with libunistring if this library
  is already installed.

* Installation options:
  The configure option --with-cvs is deprecated. The 'autopoint' program will
  now use the 'git' program by default to compress its archive. If the
  configure option --without-git is specified, 'autopoint' will not rely on
  'git', but will instead rely on a locally installed a 3 MB large archive.

Version 0.18 - May 2010

* Runtime behaviour:
  - On MacOS X and Windows systems, <libintl.h> now extends setlocale() and
    newlocale() so that their determination of the default locale considers
    the choice the user has made in the system control panels.
  - On MacOS X systems, the gettext()/dgettext()/... functions now respect the
    locale of the current thread, if a thread-specific locale has been set.

* PO file format:
  There is a new field 'Language' in the header entry.  It denotes the language
  code (plus optional country code) for the PO file.  This field can be used
  by automated tools, such as spell checkers.  It is expected to be more
  reliable than looking at the file name or at the 'Language-Team' field in
  the header entry.
  msgmerge, msgcat, msgen have a new option --lang that allows to specify
  this field.  Additionally, msgmerge fills in this new field by looking at
  the 'Language-Team' field (if the --lang option is not given).

* xgettext and PO file format:
  For messages with plural forms, programmers can inform the translators
  about the range of possible values of the numeric argument, like this:
    /* xgettext: range: 0..15 */
  This information 'range: 0..15' is stored in the PO file as a flag attached
  to the message.  Translators can produce better translations when they know
  that the numeric argument is small.

* Colorized PO files:
  msgattrib, msgcomm, msgconv, msgen, msgfilter, msggrep, msginit, msgmerge,
  msgunfmt, msguniq, xgettext now have options --color and --style, like msgcat
  has since version 0.17.

* msgmerge is up to 10 times faster when the PO and POT files are large.
  This speedup was contributed by Ralf Wildenhues.

* msgcmp has a new option -N/--no-fuzzy-matching, like msgmerge has since
  version 0.12.

* msgfilter now sets environment variables during the invocation of the
  filter, indicating the msgid and location of the messge being processed.

* xgettext now can extract plural forms from Qt 4 programs. The recommended
  xgettext command-line options for this case are:
    --qt --keyword=tr:1,1t --keyword=tr:1,2c,2t --keyword=tr:1,1,2c,3t

* xgettext --language=GCC-source now recognizes also the format strings
  used in the Fortran front-end of the GCC compiler, and marks them as
  'gfc-internal-format'.

* autopoint can now be used to update several PO directories all together.

* PO mode changes:
  - PO files with plural entries are now correctly handled.
  - Editing a message with previous msgid (in comments) removes these
    comments.  Contributed by Noritada Kobayashi.

* The po/Makevars file has a new field MSGMERGE_OPTIONS, that can be used
  to adjust msgmerge's operation.

* The use of the macro AM_GNU_GETTEXT without 'external' argument and the
  --intl option of the gettextize program are deprecated and will be removed
  in the next release. Instead of including the intl sources in your package,
  we suggest making the libintl library an (optional) prerequisite of your
  package.

* Updated the meaning of 'gcc-internal-format' to match GCC 4.3.

* Installation options:
  The configure options --without-cvs and --with-git can be used to specify
  whether 'autopoint' will use the 'cvs' program, or the 'git' program, or
  none at all. These options allow to trade dependencies against installed
  package size: If --without-cvs is specified and --with-git is not specified,
  'autopoint' will not rely on 'cvs' or 'git', but will instead rely on a
  locally installed a 3 MB large archive.

* Portability:
  - The msgfilter program now also works on native Woe32 platforms.
  - Compiled C# message catalogs now also work with 'mono' versions from 2009
    or newer.

Version 0.17 - November 2007

* License:
  The gettext related programs and tools are now licensed under the GPL
  version 3, instead of the GPL version 2. The libintl library continues
  to be licensed under LGPL.

* PO file format:
  The Project-Id-Version field in the header entry may now already be filled
  in the POT file. In this case, the translators don't need to fill it in.
  xgettext has new options --package-name and --package-version that allow
  to specify the package name and version from a Makefile.

* Colorized PO files:
  The msgcat program has new options --color and --style that produce a
  colorized PO file output, where keywords, strings, comments, or format
  directives can be highlighted.  See the documentation section
  "Highlighting parts of PO files" for more info.

* gettextize now has a --po-dir option that allows several PO directories to
  be updated all together.

* Programming languages support:
  - Contexts (msgctxt) are now also supported for Java and C#.
  - C# with Qt: The support for Qt format strings has been updated for Qt 4.
  - C++ with KDE:
    xgettext has a new option --kde that triggers the recognition and marking
    of KDE 4 format strings.

* Autoconf macros:
  - A new macro AM_XGETTEXT_OPTION can be used as an alternative to modifying
    po/Makevars.

* libgettextpo library:
  - New functions are available for querying the list of supported format
    types.
  - The functions po_message_comments and po_message_extracted_comments
    return a multiline string where each line no longer starts with a redundant
    space. The leading space in every comment line is now stripped while
    reading the PO file.
  - Conversely, when you pass a multiline string to the function
    po_message_set_comments or po_message_set_extracted_comments, you normally
    don't pass a space at the beginning of each line, because such spaces are
    no longer trimmed during output.

* Documentation:
  - The "Users" chapter has been completely rewritten.
  - New section "Highlighting parts of PO files".
  - A complete example showing the use of GNU gettext in Java with the Qt/Jambi
    GUI toolkit has been added.

Version 0.16.1 - November 2006

* Bug fix in the gettext.m4 autoconf macros.

Version 0.16 - October 2006

* Interoperability with automake-1.10.

* msgmerge has a new option --previous that has the effect of saving the
  previous msgid of message when making them fuzzy. These previous msgids are
  stored in the resulting PO file, using a pseudo-comment syntax like this:

     #, fuzzy
     #| msgid "too many arguments"
     msgid "too few arguments"
     msgstr "trop d'arguments"

  The translator then only needs to compare the previous and the current
  msgid ("too many arguments" and "too few arguments"), and infer which
  parts of the translation she needs to change.

  msgattrib has a new option --clear-previous that removes these #| lines.

* msgmerge is faster now on CPUs with multiple execution units, if compiled
  with GCC 4.2 or newer.

* msgcmp now ignores fuzzy and untranslated messages in the PO file.
  Previously it considered fuzzy and untranslated messages the same way as
  translated messages, which was hardly useful.  The previous behaviour can
  be obtained through the options --use-fuzzy --use-untranslated.

* gettextize, when invoked without --intl option, now installs only the .m4
  files that are needed: gettext.m4, iconv.m4, lib-ld.m4, lib-link.m4,
  lib-prefix.m4, nls.m4, po.m4, progtest.m4.

* gettextize no longer creates symbolic links by default; it makes file copies
  instead.  The option --copy is removed.  You can get back the flawed
  symlinking behaviour by specifying the --symlink option.

* Autoconf macros:
  - The gettext autoconf macros now require autoconf 2.52 or newer and
    GNU m4 1.4.5 or newer.
  - A new autoconf macro AM_GNU_GETTEXT_INTL_SUBDIR is added. It allows to
    specify the presence of an intl/ subdirectory outside the AM_GNU_GETTEXT
    invocation.
  - A new autoconf macro AM_GNU_GETTEXT_NEED is added. It allows to specify
    the requirements relating to the GNU gettext implementation outside the
    AM_GNU_GETTEXT invocation.

* The libgettextpo library no longer exports symbols that could clash with
  symbols of the application that uses it.

* Vastly improved French translations. Thanks to Christophe Combelles.

Version 0.15 - July 2006

* GUI program support:
  - PO files can now contain messages constrained to a certain context.
    Most often such a context is a menu, dialog or panel identification.
    The syntax in the PO file is
      msgctxt "context"
      msgid "original"
      msgstr "translation"
  - The xgettext program can be told through the --keyword flag which
    function/macro argument has the role of a context.  It also supports
    the GNOME glib convention to specify the context and original string
    in the same string literal: "context|original".
  - The (non-public) include file gettext.h defines macros pgettext, dpgettext
    etc. that take a context argument.
  For more information, see the node "Contexts" in the manual.

* msgfmt's format string checking is now stricter in the presence of plural
  forms.  For example, in German, with  nplurals=2  and  plural=(n != 1),
  the translation

     #, c-format
     msgid "%d fatal error"
     msgid_plural "%d fatal errors"
     msgstr[0] "ein fataler Fehler"
     msgstr[1] "fatale Fehler"

  was earlier considered valid and now gives an error when "msgfmt --check"
  is used:
    "number of format specifications in 'msgid' and 'msgstr[1]' does not match"

* msggrep has a new option -v/--invert-match that acts like grep's -v option.

* msggrep has a new option -X/--extracted-comment that allows to search for a
  pattern in the extracted comments.

* xgettext's --keyword option now allows to specify an extracted comment on the
  command line, rather than in program's source code.

* msgmerge is much faster now, when using a large compendium.

* A new program recode-sr-latin is provided, that converts Serbian text from
  the Cyrillic script to the Latin script.
  The command "msgfilter recode-sr-latin" can be used to convert a Serbian
  Cyrillic PO file (sr.po) to a Serbian Latin PO file (sr@latin.po).

* Programming languages support:

  - C++ with Boost:
    xgettext has a new option --boost that triggers the recognition and marking
    of boost::format strings.

  - Python:
    xgettext now recognizes the source encoding from a "coding:" comment
    among the first two lines.  The default encoding is now ASCII, no longer
    ISO-8859-1.

* libgettextpo library:
  - The error handler type passed to po_file_read(), po_file_write(),
    po_message_check_format() has changed.
    This is an incompatible change: Programs using the library *must* update
    their code.
    Binary compatibility is guaranteed, however.

* The 'mkinstalldirs' shell script is no longer needed and no longer installed
  by gettextize.

* Portability:
  - Building on mingw is now supported.
  - Building shared libraries (--enable-shared) on Cygwin and mingw is now
    supported.

* Interoperability with expat version 2.0.0.

* Documentation:
  A complete example showing the use of GNU gettext with the wxWidgets GUI
  toolkit has been added.

* The gettext autoconf macros now assume 'aclocal' from automake 1.8 or newer.

Version 0.14.6 - June 2006

* Updated the meaning of 'gcc-internal-format' to match GCC 4.1.

Version 0.14.5 - May 2005

* Updated the meaning of 'gcc-internal-format' to match GCC 4.0.

Version 0.14.4 - April 2005

* The gettext autoconf macros will now work with the forthcoming g++ 4.0.
* Fix improved detection of the locale on MacOS X.

Version 0.14.3 - March 2005

* Usability improvements in gettextize and autopoint.

* Programming languages support:
  - Scheme:
    Use the GNU guile definition of format strings.

Version 0.14.2 - February 2005

* Improved detection of the locale on MacOS X.

* The gettext autoconf macros now require autoconf 2.50 or newer.

* Programming languages support:

  - Scheme:
    xgettext now also supports Scheme. Best used with guile 1.7 or newer.

* msggrep is much faster now.

* libgettextpo library:
  - New functions for constructing PO files in memory and writing them to
    files.
  - The error handling is now customizable.

* Documentation:

  - New tutorial document, written by Gora Mohanty.
  - New FAQ document.
  - New documentation sections: Scheme, Release Management.

* Bug fixes for Turkish and Estonian locales.

* Security fixes.

Version 0.14 - January 2004

* Programming languages support:

  - C#:

    xgettext now also supports C#.

    New library: GNU.Gettext.dll contains the runtime for using GNU gettext
    message catalogs in C#.

    msgfmt can create (and msgunfmt can dump) message catalogs for C#.

* Special feature for Farsi (Persian): Translators can insert an 'I' flag
  into numeric format directives in format strings. Its effect is that, on
  glibc systems, the number is generated with the locale dependent set of
  special digits instead of the usual ASCII digits.

* Documentation:

  - New documentation section: C#.
  - Complete examples illustrating the use of gettext in C# (in text mode and
    in Forms applications) have been added.

  - New documentation section: Preparing Library Sources.

* Special advice for Norwegian users: The language code for Norwegian
  bokmål changed from 'no' to 'nb' recently (in 2003). During the transition
  period, while some message catalogs for this language are installed under
  'nb' and some older ones under 'no', it's recommended for Norwegian users to
  set the LANGUAGE environment variable to 'nb:no' so that both newer and
  older translations are used.

Version 0.13.1 - December 2003

* Bug fixes in the testsuite and in the examples.

Version 0.13 - November 2003

* Programming languages support:

  - Shell:

    xgettext now also supports shell scripts. It recognizes invocations of
    the programs 'gettext', 'ngettext', the functions 'eval_gettext',
    'eval_ngettext', as well as the deprecated GNU bash builtin syntax $"...".
    New function library:
      gettext.sh - shell functions for internationalized shell scripts.
    New program:
      envsubst - substitutes environment variables in shell format strings.

  - Perl:

    xgettext now also supports Perl.

  - PHP:

    "xgettext --language=PHP" now supports the plural handling functions
    ngettext, dngettext, dcngettext (introduced in PHP 4.2.0).

  - ObjectiveC:

    "xgettext --language=ObjectiveC" now supports the @"..." string syntax,
    the NSLocalizedString function and the ObjectiveC specific format strings.

    All the tools that manipulate PO files can work with .strings files
    as well, if given the --stringtable-input and/or --stringtable-output
    option. To create a .strings file from a PO or POT file, use
    "msgcat --stringtable-output". To create a PO or POT file from a
    .strings file, use "xgettext".

  - GCC-source:

    xgettext's --language option now supports the value "GCC-source". This
    is like --language=C, except that in this mode, xgettext recognizes the
    special kind of format strings used in the GCC sources and marks them
    as 'gcc-internal-format'.

  - C++ with Qt:

    xgettext has a new option --qt that triggers the recognition and marking
    of Qt format strings.

    msgfmt has a new option --qt that generates binary message catalogs in
    Qt's .qm format.

* Data formats support:

  - Glade:
    xgettext now also supports Glade version 2.

* xgettext has a more reliable detection of format strings.  It now
  recognizes format strings depending on their position, for example as the
  second argument of fprintf(), regardless whether the literal string contains
  format directives.  This behaviour can be customized through the --flag
  option.

* libgettextpo library:

  - New functions for testing the obsolete/fuzzy/*-format flags of a message.
  - New convenience functions for extracting and analyzing the header entry.

* Portability:

  - C format strings with positions, as they arise when a translator needs to
    reorder a sentence, are now supported on all platforms. On those few
    platforms (NetBSD and Woe32) for which the native printf()/fprintf()/...
    functions don't support such format strings, replacements are provided
    through <libintl.h>.

  - A new configuration option --disable-libasprintf allows to build all of
    gettext except libasprintf; this is necessary on platforms for which
    libtool cannot create shared libraries with C++ code.

* Documentation:

  - Complete examples illustrating the use of gettext, including program
    sources, Makefile and autoconf infrastructure, have been added. They
    cover the following programming languages:
      C           (text mode, GNOME)
      C++         (text mode, Qt, KDE, GNOME)
      ObjectiveC  (text mode, GNUstep, GNOME)
      Shell       (text mode)
      Python      (text mode)
      Lisp        (text mode)
      librep      (text mode)
      Smalltalk   (text mode)
      Java        (text mode, AWT, Swing)
      awk         (text mode)
      Pascal      (text mode)
      YCP         (libyui)
      Tcl         (text mode, Tk)
      Perl        (text mode)
      PHP         (text mode)

Version 0.12.1 - May 2003

* Bug fixes.

Version 0.12 - May 2003

* The gettext package is now separated into two subpackages:
  - gettext-runtime: Runtime libraries and programs.
  - gettext-tools: Tools and documentation for developers and translators.
  The 'gettext-runtime' package is very small and should be installed on every
  system that has users who desire to use internationalization. Whereas the
  'gettext-tools' package is only for developers and translators.

* The po/Makevars file has a new field MSGID_BUGS_ADDRESS, which program
  maintainers should fill in, to help feedback from the translators to the
  program maintainers.
  xgettext, accordingly, has a new option --msgid-bugs-address.

* Programming languages support:

  - C++

    A new C++ class, called gnu::autosprintf, makes it possible to use
    C format strings in C++. This is needed for proper internationalization
    of C++ programs.

  - Java

    All the tools that manipulate PO files can work with .properties files
    as well, if given the --properties-input and/or --properties-output
    option. To create a .properties file from a PO or POT file, use
    "msgcat --properties-output".

  - Smalltalk

    xgettext now also supports Smalltalk.

  - PHP

    xgettext now also supports PHP.

  - Python

    "xgettext --language=Python" now supports the plural handling functions
    ngettext, dngettext, ungettext (introduced in Python 2.3).

  - A new autoconf macro AM_PO_SUBDIRS is added. It is like AM_GNU_GETTEXT,
    for packages written in other languages than C/C++.

* A new library libgettextpo, with public header file "gettext-po.h",
  provides functions for reading PO files into memory. It is useful for
  applying PO files to areas not covered by the GNU gettext programs.
  New documentation section:
  - Writing your own programs that process PO files.

* New documentation sections:
  - Prioritizing messages: How to determine which messages to translate first.
  - Names: Marking Proper Names for Translation.

* xgettext now supports msgid strings in other encodings than ASCII.
  xgettext has a new option --from-code that specifies the encoding of the
  source files. The resulting POT files are UTF-8 encoded.

* Tools for translators:

  - msgmerge has a new option -N/--no-fuzzy-matching that inhibits the fuzzy
    search for untranslated messages.

  - msgattrib has new options --only-file and --ignore-file that cause the
    specified attribute manipulation to apply to selected messages only.

* Compatibility with automake-1.7.

* In documentation section po/LINGUAS:
  - Document the optional "languages" en@quot and en@boldquot.

* New configuration option --enable-relocatable.  See the INSTALL file for
  details.

Version 0.11.5 - August 2002

* Bug fixes in the gettext.m4 autoconf macros.

Version 0.11.4 - July 2002

* The tools now know about the ISO C 99 <inttypes.h> format string directive
  macros PRId64, PRIxMAX etc.

Version 0.11.3 - July 2002

* New program:
    autopoint - copies standard gettext infrastructure

* The documentation makes it clear that 'gettextize' is a wizard and
  migration tool.

* gettextize has a new option --dry-run.

* Improved portability to Solaris, OSF/1 and Linux/libc5.

* Improved interoperability with GCC 3.1.

* New documentation sections:
  - CVS Issues
  - mkinstalldirs
  - config.h.in

Version 0.11.2 - April 2002

* Bug fixes in the gettext.m4 autoconf macros.

* New documentation section:
  - Preparing Translatable Strings

Version 0.11.1 - March 2002

* xgettext now also supports Python, Tcl, Awk and Glade.

* msgfmt can create (and msgunfmt can dump) Tcl message catalogs.

* msggrep has a new option -C that allows to search for strings in translator
  comments.

* Bug fixes in the gettext.m4 autoconf macros.

Version 0.11 - January 2002

* New programs:
    msgattrib - attribute matching and manipulation on message catalog,
    msgcat - combines several message catalogs,
    msgconv - character set conversion for message catalog,
    msgen - create English message catalog,
    msgexec - process translations of message catalog,
    msgfilter - edit translations of message catalog,
    msggrep - pattern matching on message catalog,
    msginit - initialize a message catalog,
    msguniq - unify duplicate translations in message catalog.

* msgfmt can create (and msgunfmt can dump) Java ResourceBundles.

* xgettext now also supports Lisp, Emacs Lisp, librep, Java, ObjectPascal,
  YCP.

* The tools now know about format strings in languages other than C.
  They recognize new message flags named lisp-format, elisp-format,
  librep-format, smalltalk-format, java-format, python-format, ycp-format.
  When such a flag is present, the msgfmt program verifies the consistency
  of the translated and the untranslated format string.

* The msgfmt command line options have changed.  Option -c now also checks
  the header entry, a check which was previously activated through -v.
  Option -C corresponds to the compatibility checks previously activated
  through -v -v.  Option -v now only increases verbosity and doesn't
  influence whether msgfmt succeeds or fails.  A new option
  --check-accelerators is useful for GUI menu item translations.

* msgcomm now writes its results to standard output by default. The options
  -d/--default-domain and -p/--output-dir have been removed.

* Manual pages for all the programs have been added.

* PO mode changes:
  - New key bindings for 'po-previous-fuzzy-entry',
    'po-previous-obsolete-entry', 'po-previous-translated-entry',
    'po-previous-untranslated', 'po-undo', 'po-other-window', and
    'po-select-auxiliary'.
  - Support for merging two message catalogs, based on msgcat and ediff.

* A fuzzy attribute of the header entry of a message catalog is now ignored
  by the tools, i.e. it is used even if marked fuzzy.

* gettextize has a new option --intl which determines whether a copy of the
  intl directory is included in the package.

* The Makefile variable @INTLLIBS@ is deprecated. It is replaced with
  @LIBINTL@ (in projects without libtool) or @LTLIBINTL@ (in projects with
  libtool).

* New packaging hints for binary package distributors. See file PACKAGING.

* New documentation sections:
  - Manipulating
  - po/LINGUAS
  - po/Makevars
  - lib/gettext.h
  - autoconf macros
  - Other Programming Languages

Version 0.10.40 - September 2001

* The libintl library is now covered by the GNU LGPL.  The tools are still
  covered by the GNU GPL.

Version 0.10.39 - July 2001

* This is a bug-fix release.

* Now uses libtool-1.4.  Linking with the libintl shared library is easier.

* The autoconf macros now work with both autoconf-2.13 and autoconf-2.50.

Version 0.10.38 - May 2001

* This is a bug-fix release.

* Manual pages for the GNU libintl library functions have been added.

Version 0.10.37 - April 2001

This is a bug-fix release.

Version 0.10.36 - March 2001, by Ulrich Drepper and Bruno Haible

* General plural handling. New functions ngettext, dngettext, dcngettext.

* Locales which differ only in the character encoding, for example ja_JP and
  ja_JP.UTF-8, can now share the same message catalogs. gettext converts
  the messages to the appropriate character encoding on the fly.

* The tools now correctly process PO files in CJK encodings.

* Support for non-GNU gettext has been dropped.  Previously, on Solaris, the
  system's gettext was used (unless --with-included-gettext was specified),
  which led to problems with PO files that were not 100% translated.

* Support for the catgets wrapper has been dropped.  This means that gettext
  now always supports the LANGUAGE environment variable, message inheritance,
  automatic charset conversion etc.

* Support for the old Linux specific .msg catalog format has been dropped.

* When the included GNU libintl is installed (i.e. on GNU platforms, when
  the configure option --with-included-gettext is given, or on non-GNU
  platforms, when the configure option --disable-nls is not given), it is
  also installed as a shared library, unless the configure option
  --disable-shared is given.

* PO mode changes:

** PO mode does not use recursive edit anymore, many edits may be worked on
   simultaneously in a single PO file.

** PO mode may handle many translation files at once while correlating related
   entries, for helping multilingual or cultured translators.

** On recent Emacses, PO mode automatically use proper fonts when available.

** PO mode supports marking of C++ sources.

** highlights original message while editing the translation

** PO mode has commands to mail messages to teams or to the translation
   coordinator, with automatic inclusion of the current PO file.

Version 0.10.35 - April 1998, by Ulrich Drepper

* by default the emulation of gettext using the catgets() functions of
  the C library is not selected anymore.  GNU gettext has so many nice
  extensions that this became unreasonable.  Using --with-catgets the
  emulation still can be requested.

* extend xgettext program to handle other file formats other than C/C++.
  For now it also handles PO file.  Using this feature one can concatenate
  arbitrary PO files.

* Tcl module with gettext interface

* Korean translation by Bang Jun Young

* xgettext writes to stdout when default domain name is set to -

* codeset name normalization

* msgmerge program now has all features tupdate has (and more).
  tupdate itself will be removed soon

* po/Makefile.in.in now uses msgmerge instead of tupdate

* escape notation in .po files are only used when explicitly selected

* changed interface of msgunfmt to conform to GNU coding standard

* msgmerge now knows how to handle obsolete entries.  If a formerly obsolete
  entry is used again msgmerge will find it

* better implementation of comment extraction in xgettext.

* better C format string implementation.  The xgettext will classify
  strings as being a format string, or not, in the .po file.  The
  programmer can override the decision explicitly for each string
  by specifying 'xgettext:c-format' and 'xgettext:no-c-format'
  respectively in a C comment preceding the string.

* msgmerge program now always produces output.  Fuzzy or non-existing
  translations are no reason for holding back the result.

* reasonable header entry format implemented

* Norwegian translation by Karl Anders �gard

* Configure command line option '--with-gnu-gettext' is renamed to
  '--with-included-gettext'

* gettextize now can determine whether the aclocal.m4 of the project
  is sufficient

* use automake for Makefile.in generation

* by default now only c-format is emitted in xgettext.  If using the new
  --debug option one can enable printing possible-c-format to see who
  decided about the string: xgettext or the programmer

* the installed libintl.h file no longer depends on HAVE_LOCALE_H being
  defined.  After running configure we know whether this file exists.

* wrapping of lines in PO file output finally enabled.
  A new special comment no-wrap prevents wrapping.

* add --statistics option to msgfmt to get information about number of
  translated, untranslated, and fuzzy messages

* change behaviour of --verbose option to msgfmt.  This no longer
  causes the check on the messages to be performed.  The check for leading
  and trailing \n is always performed and the check of the format specifiers
  is performed when --check is given.

* shared library support based On Gord Matzigkeit's libtool package

* msgcomm program by Peter Miller to extract messages shared by input
  files

* many more translations.

Version 0.10 - December 1995, by Ulrich Drepper

* implement --shell-script option for gettext program

* implement object-oriented, lazy message handling :-)
  Consult the manual for more/any information

* implement locale name aliasing, similar to the one used
  in the X Window System

* support for GNU gettext sources in central place to support
  use in development environments of other projects

* implement CEN syntax for environment variable values

* msgcmp program to find matches in two .po files

* programs now have exit status != 0 if errors occurred

* libintl.a is now selfcontained and can be used without context in
  other projects (even on systems missing alloca)

* gettextize now automatically runs config.status

* swedish message catalog

* new options for xgettext: -D/--directory to change in specified directory
  before processing the input files and -f/--files-from to specify file from
  which the names of the input files are read.
  The later option in necessary for large projects such as GNU C Library.

* new programs msgmerge and msgunfmt by Peter Miller.  The code of the other
  programs is now also much cleaner.

Version 0.9 - August 1995, by Ulrich Drepper

* again many improvements on the manual

* norwegian message catalog

* compilation now works with --disable-nls

* better checks

Version 0.8 - July 1995, by Ulrich Drepper

* much improved manual (although still far from being complete)

* improved PO mode; it now can prepare C sources for use with gettext
  by marking translatable strings

* better support for sparse System V systems

* check goal (kind of)

* more input tests and warnings

* better support for integration in other packages

* many bugs fixed

Version 0.7 - June 1995, by Ulrich Drepper

* New GNU package providing functionality to internationalize and
localize other programs.

* Implementation of the Uniforum(*) proposal for internationalization
on top of X/Open(*) style catgets functions.

* Complete implementation of the Uniforum functions for system
lacking either of them or those who which to have a different
implementation with many advantages.

* Implementation of the three tools for message catalog handling
described in the Uniforum.

* Emacs po-mode for handling portable message object files which are
the basis of the work of the package.


(*) Some history:  The POSIX working groups have so far been unable to
agree on one set of message catalog handling functions for the C Library.
For now there are competing proposals, one by the Uniforum group, led by
Sun, and the other by X/Open.  Although the latter is surely implemented
on more systems, it is not perceived as the clear leader.