• Home
  • Raw
  • Download

Lines Matching +refs:po +refs:previous +refs:fuzzy +refs:entry

352 * po/POTFILES.in::              @file{POTFILES.in} in @file{po/}
353 * po/LINGUAS:: @file{LINGUAS} in @file{po/}
354 * po/Makevars:: @file{Makevars} in @file{po/}
355 * po/Rules-*:: Extending @file{Makefile} in @file{po/}
370 * AM_PO_SUBDIRS:: AM_PO_SUBDIRS in @file{po.m4}
371 * AM_XGETTEXT_OPTION:: AM_XGETTEXT_OPTION in @file{po.m4}
879 @cindex files, @file{.po} and @file{.mo}
880 The letters PO in @file{.po} files means Portable Object, to
937 │ ├────> msgmerge ──────> LANG.po ────>────────╯ │
941 │ ├─── New LANG.po <────────────────────╯
963 | +----> msgmerge ------> LANG.po ---->--------' |
967 | +--- New LANG.po <--------------------'
1040 The first time through, there is no @file{@var{lang}.po} yet, so the
1042 @file{@var{package}.pot} to @file{@var{lang}.po}, where @var{lang}
1054 While adding the translated messages into the @file{@var{lang}.po}
1086 evolving over time, so the translations carried by @file{@var{lang}.po}
1099 existing @file{@var{lang}.po} file, by comparing it with a newer
1104 obsolete, in @file{@var{lang}.po}, those already translated entries
1112 @file{@var{lang}.po} file offering translations for all strings.
1440 contains some @file{@var{ll}.po} files; often they are kept together in a
1441 directory called @file{po/}. Each @file{@var{ll}.po} file contains the
1447 @cindex file format, @file{.po}
1454 A PO file is made up of many entries, each entry holding the relation
1458 target language. One PO file @dfn{entry} has the following schematic
1467 #| msgid @var{previous-untranslated-string}
1476 A simple entry can look like this:
1502 contain the previous untranslated string for which the translator gave
1522 do is merely deleting them, and only by deleting the whole entry.
1534 @item fuzzy
1535 @kwindex fuzzy@r{ flag}
1541 this @code{fuzzy} attribute. The @code{msgmerge} program inserts this
1542 when it combined the @code{msgid} and @code{msgstr} entries after fuzzy
1744 #| msgctxt @var{previous-context}
1745 #| msgid @var{previous-untranslated-string}
1768 #| msgid @var{previous-untranslated-string-singular}
1769 #| msgid_plural @var{previous-untranslated-string-plural}
1777 Such an entry can look like this:
1780 #: src/msgcmp.c:338 src/po-lex.c:699
1803 The @var{previous-untranslated-string} is optionally inserted by the
1804 @code{msgmerge} program, at the same time when it marks a message fuzzy.
1809 very last entry of a PO file. Such lines are not part of any entry,
1819 entry with the meta information (@pxref{Header Entry}). This header
1820 entry should be the first entry of the file. The empty
2399 in @ref{po/Makevars} and @ref{AM_XGETTEXT_OPTION}.
2464 candidate for translation (@code{po-tags-search}).
2468 Mark the last string found with @samp{_()} (@code{po-mark-translatable}).
2474 keywords (@code{po-select-mark-and-mark}).
2478 @efindex po-tags-search@r{, PO Mode command}
2479 The @kbd{,} (@code{po-tags-search}) command searches for the next
2505 left by the previous search, and goes through all program sources,
2520 @efindex po-mark-translatable@r{, PO Mode command}
2521 @efindex po-select-mark-and-mark@r{, PO Mode command}
2522 The @kbd{M-,} (@code{po-mark-translatable}) command will mark the
2524 (@code{po-select-mark-and-mark}) command will request that you type
2527 untranslated entry for the string being marked, and make it the
2528 current entry (making it easy for you to immediately proceed to its
2618 useful for @code{msgfmt} to test all the strings in the @file{.po} file.
2624 only a heuristic. In the @file{.po} file the entry is marked using the
2653 would prevent translating the @file{.po} file. The method to prevent
2908 the previous sections apply without changes.)
2941 initialization function: It is sufficient that all entry points of the
3008 @code{xgettext} creates a file named @file{@var{domainname}.po}. You
3013 was fuzzy, and the suffix @samp{.pot} wasn't in use at that time.)
3031 @file{@var{LANG}.po}, as a copy of the @file{@var{package}.pot} template
3033 and in the header entry (the first entry, near the beginning of the file).
3040 $ cd po
3046 @file{@var{LANG}.po}. Then she modifies the initial comments and
3047 the header entry of this file.
3061 @cindex header entry of a PO file
3069 Modifying the header entry can already be done using PO mode: in Emacs,
3070 type @kbd{M-x po-mode RET} and then @kbd{RET} again to start editing the
3071 entry. You should fill in the following fields.
3370 (cons '("\\.po\\'\\|\\.po\\." . po-mode) auto-mode-alist))
3371 (autoload 'po-mode "po-mode" "Major mode for translators to edit PO files" t)
3374 Later, whenever you edit some @file{.po}
3375 file, or any file having the string @samp{.po.} within its name,
3376 Emacs loads @file{po-mode.elc} (or @file{po-mode.el}) as needed, and
3390 (modify-coding-system-alist 'file "\\.po\\'\\|\\.po\\."
3391 'po-find-file-coding-system)
3392 (autoload 'po-find-file-coding-system "po-mode")
3408 po-mode-map, which is a genuine Emacs mode, in a way that is not derived
3409 from text mode in any way. Functions found on @code{po-mode-hook},
3417 3 fuzzy entries (@pxref{Fuzzy Entries}), 10 untranslated entries
3420 the fuzzy entries were unfuzzied, the untranslated entries were translated
3431 Undo last modification to the PO file (@code{po-undo}).
3435 Quit processing and save the PO file (@code{po-quit}).
3439 Quit processing, possibly after confirmation (@code{po-confirm-and-quit}).
3443 Temporary leave the PO file window (@code{po-other-window}).
3449 Show help about PO mode (@code{po-help}).
3453 Give some PO file statistics (@code{po-statistics}).
3457 Batch validate the format of the whole PO file (@code{po-validate}).
3462 @efindex po-undo@r{, PO Mode command}
3463 The command @kbd{_} (@code{po-undo}) interfaces to the Emacs
3475 @efindex po-quit@r{, PO Mode command}
3476 @efindex po-confirm-and-quit@r{, PO Mode command}
3477 The commands @kbd{Q} (@code{po-quit}) and @kbd{q}
3478 (@code{po-confirm-and-quit}) are used when the translator is done with the
3488 @efindex po-other-window@r{, PO Mode command}
3489 The command @kbd{0} (@code{po-other-window}) is another, softer way,
3502 @efindex po-help@r{, PO Mode command}
3503 The command @kbd{h} (@code{po-help}) displays a summary of all available PO
3509 @efindex po-statistics@r{, PO Mode command}
3510 The command @kbd{=} (@code{po-statistics}) computes the total number of
3511 entries in the PO file, the ordinal of the current entry (counted from
3516 @efindex po-validate@r{, PO Mode command}
3517 The command @kbd{V} (@code{po-validate}) launches @code{msgfmt} in
3538 @emindex current entry of a PO file
3540 an entry. The only exceptions are the special case when the cursor
3541 is after the last entry in the file, or when the PO file is
3542 empty. The entry where the cursor is found to be is said to be the
3543 current entry. Many PO mode commands operate on the current entry,
3545 the PO file, this also selects on which entry commands operate.
3557 Redisplay the current entry (@code{po-current-entry}).
3561 Select the entry after the current one (@code{po-next-entry}).
3565 Select the entry before the current one (@code{po-previous-entry}).
3569 Select the first entry in the PO file (@code{po-first-entry}).
3573 Select the last entry in the PO file (@code{po-last-entry}).
3577 Record the location of the current entry for later use
3578 (@code{po-push-location}).
3582 Return to a previously saved entry location (@code{po-pop-location}).
3586 Exchange the current entry location with the previously saved one
3587 (@code{po-exchange-location}).
3592 @efindex po-current-entry@r{, PO Mode command}
3594 to select the current entry in PO mode, including commands which
3597 current entry in PO mode, which usual Emacs commands moving
3599 (@code{po-current-entry}) has the sole purpose of redisplaying the
3600 current entry properly, after the current entry has been changed by
3618 @efindex po-next-entry@r{, PO Mode command}
3620 @efindex po-previous-entry@r{, PO Mode command}
3621 The commands @kbd{n} (@code{po-next-entry}) and @kbd{p}
3622 (@code{po-previous-entry}) move the cursor the entry following,
3624 cursor is on the last entry of the PO file, or if @kbd{p}
3625 is given while the cursor is on the first entry, no move is done.
3628 @efindex po-first-entry@r{, PO Mode command}
3630 @efindex po-last-entry@r{, PO Mode command}
3631 The commands @kbd{<} (@code{po-first-entry}) and @kbd{>}
3632 (@code{po-last-entry}) move the cursor to the first entry, or last
3633 entry, of the PO file. When the cursor is located past the last
3634 entry in a PO file, most PO mode commands will return an error saying
3635 @samp{After last entry}. Moreover, the commands @kbd{<} and @kbd{>}
3637 is not into some PO file entry, and one may use them for nicely
3643 a particular entry, that she needs to browse the remainder of the
3650 @efindex po-push-location@r{, PO Mode command}
3652 @efindex po-pop-location@r{, PO Mode command}
3654 onto a special stack. The command @kbd{m} (@code{po-push-location})
3655 merely adds the location of current entry to the stack, pushing
3657 @kbd{r} (@code{po-pop-location}) consumes the top stack element and
3658 repositions the cursor to the entry associated with that top element.
3664 maybe for taking a look at the entry associated with the top
3669 @efindex po-exchange-location@r{, PO Mode command}
3670 The command @kbd{x} (@code{po-exchange-location}) simultaneously
3671 repositions the cursor to the entry associated with the top element of
3673 location of the current entry before the move. Consequently, repeating
3676 first entry, use @kbd{m}, then position to the second entry, and
3684 PO file entry, because there are so many different ways to split and
3688 particular string encoded into the @code{msgid} field of some entry.
3709 @item M-x po-normalize
3710 @efindex po-normalize@r{, PO Mode command}
3715 The special command @kbd{M-x po-normalize}, which has no associated
3718 It also removes any crumb after the last entry. This command may be
3724 @kbd{M-x po-normalize} presently makes three passes over the entries.
3775 string), so making the previous example appear:
3791 Each PO file entry for which the @code{msgstr} field has been filled with
3792 a translation, and which is not marked as fuzzy (@pxref{Fuzzy Entries}),
3793 is said to be a @dfn{translated} entry. Only translated entries will
3795 Other entry types will be excluded; translation will not occur for them.
3798 Some commands are more specifically related to translated entry processing.
3803 Find the next translated entry (@code{po-next-translated-entry}).
3807 Find the previous translated entry (@code{po-previous-translated-entry}).
3812 @efindex po-next-translated-entry@r{, PO Mode command}
3814 @efindex po-previous-translated-entry@r{, PO Mode command}
3815 The commands @kbd{t} (@code{po-next-translated-entry}) and @kbd{T}
3816 (@code{po-previous-translated-entry}) move forwards or backwards, chasing
3817 for an translated entry. If none is found, the search is extended and
3820 @evindex po-auto-fuzzy-on-edit@r{, PO Mode variable}
3823 variable @code{po-auto-fuzzy-on-edit} is not @code{nil}, the entry having
3824 received a new translation first becomes a fuzzy entry, which ought to
3825 be later unfuzzied before becoming an official, genuine translated entry.
3830 @cindex fuzzy entries
3832 @cindex attributes of a PO file entry
3833 @cindex attribute, fuzzy
3834 Each PO file entry may have a set of @dfn{attributes}, which are
3837 has the name @code{fuzzy}, and entries having this attribute are said
3838 to have a fuzzy translation. They are called fuzzy entries, for short.
3846 what it thinks to be the old translation for the new modified entry.
3850 might mark some entries as being fuzzy.
3852 @emindex moving by fuzzy entries
3853 Also, the translator may decide herself to mark an entry as fuzzy
3854 for her own convenience, when she wants to remember that the entry
3856 related to fuzzy entry processing.
3861 @c better append "-entry" all the time. -ke-
3862 Find the next fuzzy entry (@code{po-next-fuzzy-entry}).
3866 Find the previous fuzzy entry (@code{po-previous-fuzzy-entry}).
3870 Remove the fuzzy attribute of the current entry (@code{po-unfuzzy}).
3875 @efindex po-next-fuzzy-entry@r{, PO Mode command}
3877 @efindex po-previous-fuzzy-entry@r{, PO Mode command}
3878 The commands @kbd{f} (@code{po-next-fuzzy-entry}) and @kbd{F}
3879 (@code{po-previous-fuzzy-entry}) move forwards or backwards, chasing for
3880 a fuzzy entry. If none is found, the search is extended and wraps
3884 @efindex po-unfuzzy@r{, PO Mode command}
3885 @evindex po-auto-select-on-unfuzzy@r{, PO Mode variable}
3886 The command @kbd{@key{TAB}} (@code{po-unfuzzy}) removes the fuzzy
3887 attribute associated with an entry, usually leaving it translated.
3888 Further, if the variable @code{po-auto-select-on-unfuzzy} has not
3890 for another interesting entry to work on. The initial value of
3891 @code{po-auto-select-on-unfuzzy} is @code{nil}.
3893 The initial value of @code{po-auto-fuzzy-on-edit} is @code{nil}. However,
3894 if the variable @code{po-auto-fuzzy-on-edit} is set to @code{t}, any entry
3895 edited through the @kbd{@key{RET}} command is marked fuzzy, as a way to
3897 is that an entry becomes fuzzy (if not already) whenever the translator
3899 @kbd{@key{TAB}} to pick another entry to work on, clearing the fuzzy attribute
3901 to chase another entry, leaving the entry fuzzy.
3904 @efindex po-fade-out-entry@r{, PO Mode command}
3906 (@code{po-fade-out-entry}) over any translated entry to mark it as being
3907 fuzzy, when she wants to easily leave a trace she wants to later return
3908 working at this entry.
3911 command, the translator is asked for confirmation, if fuzzy string
3924 by the appearance of a new untranslated entry for the modified string.
3926 The usual commands moving from entry to entry consider untranslated
3932 of seeking for an untranslated entry, editing a translation for
3934 Some commands are more specifically related to untranslated entry
3940 Find the next untranslated entry (@code{po-next-untranslated-entry}).
3944 Find the previous untranslated entry (@code{po-previous-untransted-entry}).
3948 Turn the current entry into an untranslated one (@code{po-kill-msgstr}).
3953 @efindex po-next-untranslated-entry@r{, PO Mode command}
3955 @efindex po-previous-untransted-entry@r{, PO Mode command}
3956 The commands @kbd{u} (@code{po-next-untranslated-entry}) and @kbd{U}
3957 (@code{po-previous-untransted-entry}) move forwards or backwards,
3958 chasing for an untranslated entry. If none is found, the search is
3962 @efindex po-kill-msgstr@r{, PO Mode command}
3963 An entry can be turned back into an untranslated entry by
3965 (@code{po-kill-msgstr}). @xref{Modifying Translations}.
3979 The usual commands moving from entry to entry consider obsolete
3988 may apply to obsolete entries, carefully leaving the entry obsolete
3993 entry processing.
3998 Find the next obsolete entry (@code{po-next-obsolete-entry}).
4002 Find the previous obsolete entry (@code{po-previous-obsolete-entry}).
4006 Make an active entry obsolete, or zap out an obsolete entry
4007 (@code{po-fade-out-entry}).
4012 @efindex po-next-obsolete-entry@r{, PO Mode command}
4014 @efindex po-previous-obsolete-entry@r{, PO Mode command}
4015 The commands @kbd{o} (@code{po-next-obsolete-entry}) and @kbd{O}
4016 (@code{po-previous-obsolete-entry}) move forwards or backwards,
4017 chasing for an obsolete entry. If none is found, the search is
4020 PO mode does not provide ways for un-commenting an obsolete entry
4027 @efindex po-fade-out-entry@r{, PO Mode command}
4028 @emindex obsolete active entry
4029 @emindex comment out PO file entry
4030 However, it is possible to comment out an active entry, so making
4033 The command @kbd{@key{DEL}} (@code{po-fade-out-entry}) pushes the current entry
4034 a little further towards annihilation. If the entry is active (it is a
4035 translated entry), then it is first made fuzzy. If it is already fuzzy,
4036 then the entry is merely commented out, with confirmation. If the entry
4039 entry, usually one which is untranslated. @xref{Modifying Translations}.
4075 Interactively edit the translation (@code{po-edit-msgstr}).
4082 (@code{po-msgid-to-msgstr}).
4086 Save the translation on the kill ring, and delete it (@code{po-kill-msgstr}).
4091 (@code{po-kill-ring-save-msgstr}).
4096 (@code{po-yank-msgstr}).
4101 @efindex po-edit-msgstr@r{, PO Mode command}
4102 The command @kbd{@key{RET}} (@code{po-edit-msgstr}) opens a new Emacs
4105 the current PO file entry, all ready for edition, expunged of all quoting
4114 @efindex po-msgid-to-msgstr@r{, PO Mode command}
4115 The command @kbd{@key{LFD}} (@code{po-msgid-to-msgstr}) initializes, or
4118 the original string, disregarding any previous work.
4120 @evindex po-auto-edit-with-msgid@r{, PO Mode variable}
4122 entry, the @kbd{@key{LFD}} command be automatically executed. If you set
4123 @code{po-auto-edit-with-msgid} to @code{t}, the translation gets
4125 The default value for @code{po-auto-edit-with-msgid} is @code{nil}.
4141 @efindex po-kill-msgstr@r{, PO Mode command}
4143 @efindex po-kill-ring-save-msgstr@r{, PO Mode command}
4144 The command @kbd{k} (@code{po-kill-msgstr}) merely empties the
4145 translation string, so turning the entry into an untranslated
4146 one. But while doing so, its previous contents is put apart in
4148 (@code{po-kill-ring-save-msgstr}) has also the effect of taking a
4150 the entry alone, and does @emph{not} remove the translation from the
4151 entry. Both commands use exactly the Emacs kill ring, which is shared
4170 @efindex po-yank-msgstr@r{, PO Mode command}
4171 The command @kbd{y} (@code{po-yank-msgstr}) completely replaces the
4172 translation of the current entry by a string taken from the kill ring.
4184 When a string is yanked into a PO file entry, it is fully and
4186 have. Further, if the entry is obsolete, PO mode then appropriately
4203 of a new untranslated entry for the modified string, and the fact
4204 that the entry translating the original or unmodified string becomes
4206 by retrieving the unmodified translation from the obsolete entry,
4207 then initializing the untranslated entry @code{msgstr} field with
4208 this retrieved translation. Once this done, the obsolete entry is
4211 When the translator finds an untranslated entry and suspects that a
4213 to mark the current entry location, then starts chasing obsolete
4216 for deleting the obsolete entry, knowing that @kbd{@key{DEL}} also @emph{kills}
4218 Then, @kbd{r} returns to the initial untranslated entry, and @kbd{y}
4255 Interactively edit the translator comments (@code{po-edit-comment}).
4260 (@code{po-kill-comment}).
4265 (@code{po-kill-ring-save-comment}).
4270 (@code{po-yank-comment}).
4282 @efindex po-edit-comment@r{, PO Mode command}
4283 The command @kbd{#} (@code{po-edit-comment}) opens a new Emacs window
4284 containing a copy of the translator comments on the current PO file entry.
4286 to add a comment to the entry, and she is presented with an empty screen.
4294 @evindex po-subedit-mode-hook@r{, PO Mode variable}
4295 Functions found on @code{po-subedit-mode-hook}, if any, are executed after
4299 @efindex po-kill-comment@r{, PO Mode command}
4301 @efindex po-kill-ring-save-comment@r{, PO Mode command}
4303 @efindex po-yank-comment@r{, PO Mode command}
4304 The command @kbd{K} (@code{po-kill-comment}) gets rid of all
4306 The command @kbd{W} (@code{po-kill-ring-save-comment}) takes
4308 them undisturbed in the current entry. The command @kbd{Y}
4309 (@code{po-yank-comment}) completely replaces the translator comments
4318 translator comment to document why the previous translation was
4321 the previous translation in her translator comments. To do so, she
4322 may initialize the translator comments with the previous translation,
4324 previous translation on the kill ring, she merely has to type @kbd{M-w}
4325 prior to @kbd{#}, and the previous translation will be right there,
4333 (@code{yank-pop}) to get the previous translation where she likes.
4346 Complete edition (@code{po-subedit-exit}).
4350 Abort edition (@code{po-subedit-abort}).
4354 Consult auxiliary PO files (@code{po-subedit-cycle-auxiliary}).
4360 @efindex po-subedit-exit@r{, PO Mode command}
4364 (@code{po-subedit-exit}) may be used to return the edited translation into
4369 @efindex po-subedit-abort@r{, PO Mode command}
4373 (@code{po-subedit-abort}) to merely get rid of edition, while preserving
4379 @efindex po-subedit-cycle-auxiliary@r{, PO Mode command}
4380 The command @w{@kbd{C-c C-a}} (@code{po-subedit-cycle-auxiliary})
4387 Functions found on @code{po-subedit-mode-hook}, if any, are executed after
4411 PO file buffer, she may decide to start modifying another entry. Each entry
4413 edit the translation @emph{and} the comment of a single entry, or to
4433 Some of these special comments relate the PO file entry to
4436 When the translator gets to an untranslated entry, she is fairly
4457 @emindex find source fragment for a PO file entry
4459 program source context for a PO file entry.
4465 (@code{po-cycle-source-reference}).
4470 (@code{po-select-source-reference}).
4475 (@code{po-consider-source-path}).
4480 (@code{po-ignore-source-path}).
4485 @efindex po-cycle-source-reference@r{, PO Mode command}
4487 @efindex po-select-source-reference@r{, PO Mode command}
4488 The commands @kbd{s} (@code{po-cycle-source-reference}) and @kbd{M-s}
4489 (@code{po-select-source-reference}) both open another window displaying
4493 the entry has no source context references, or if all references
4502 When @kbd{s} is typed for the first time, or for a PO file entry which
4504 command reacts by giving the first context available for this entry,
4506 current PO file entry, and the translator wandered off to do other
4512 the next available contexts for this particular entry, getting back
4525 @efindex po-consider-source-path@r{, PO Mode command}
4527 @efindex po-ignore-source-path@r{, PO Mode command}
4537 The command @kbd{S} (@code{po-consider-source-path}) is used to interactively
4539 @kbd{M-S} (@code{po-ignore-source-path}) is used to select, with completion,
4558 PO files, and also for showing contexts for the entry under work.
4565 Seek auxiliary files for another translation for the same entry
4566 (@code{po-cycle-auxiliary}).
4570 Switch to a particular auxiliary file (@code{po-select-auxiliary}).
4574 Declare this PO file as an auxiliary file (@code{po-consider-as-auxiliary}).
4579 (@code{po-ignore-as-auxiliary}).
4584 @efindex po-consider-as-auxiliary@r{, PO Mode command}
4586 @efindex po-ignore-as-auxiliary@r{, PO Mode command}
4587 Command @kbd{A} (@code{po-consider-as-auxiliary}) adds the current
4589 (@code{po-ignore-as-auxiliary} just removes it.
4592 @efindex po-cycle-auxiliary@r{, PO Mode command}
4593 The command @kbd{a} (@code{po-cycle-auxiliary}) seeks all auxiliary PO
4594 files, round-robin, searching for a translated entry in some other language
4595 having an @code{msgid} field identical as the one for the current entry.
4603 @efindex po-select-auxiliary@r{, PO Mode command}
4604 The command @kbd{C-c C-a} (@code{po-select-auxiliary}) asks the translator
4608 the current entry, and if yes, this entry becomes current. Otherwise,
4660 msgcat -o compendium.po file1.po file2.po
4664 for the same string. Those occurrences will be marked as @code{fuzzy}
4666 @file{file1.po}:
4676 and @file{file2.po}:
4690 #, fuzzy, c-format
4693 "#-#-#-#-# file1.po #-#-#-#-#\n"
4695 "#-#-#-#-# file2.po #-#-#-#-#\n"
4703 finally to remove the @code{fuzzy} mark.
4710 msgcat --use-first -o compendium.po file1.po file2.po
4713 A good compendium file must not contain @code{fuzzy} or untranslated
4715 files or postprocess the result using @samp{msgattrib --translated --no-fuzzy}.
4727 msggrep --location src/getopt.c -o compendium.po file.po
4743 msgmerge --compendium compendium.po -o file.po /dev/null file.pot
4754 msgcat --use-first -o update.po compendium1.po compendium2.po file.po
4755 msgmerge update.po file.pot | msgattrib --no-obsolete > file.po
4818 @samp{msgattrib} can be used to select and extract only the fuzzy
4898 fuzzy messages of a PO file. Also, when a message is set fuzzy because
4899 the msgid changed, they want to see the differences between the previous
4951 Thus, a command like @samp{msgcat vi.po} will produce colorized output
4953 @samp{msgcat vi.po | less -R}, it will not produce colorized output. To
4955 @samp{msgcat --color vi.po | less -R}.
5018 The default style file is @file{$prefix/share/gettext/styles/po-default.css},
5023 @item po-vim.css
5026 @item po-emacs-x.css
5029 @item po-emacs-xterm.css
5030 @itemx po-emacs-xterm16.css
5031 @itemx po-emacs-xterm256.css
5081 This matches the header entry of a PO file.
5089 @item .fuzzy
5090 This matches a fuzzy message (i.e.@: a message which has a translation that
5108 #| msgid @var{previous-untranslated-string}
5116 source file reference comments, flag comments, previous message comments,
5139 @item .fuzzy-flag
5140 This matches the `fuzzy' flag inside flag comment lines.
5142 @item .previous-comment
5143 This matches the comments containing the previous untranslated string (entire
5146 @item .previous
5147 This matches the previous untranslated string including the string delimiters,
5188 present in the previous untranslated string. (Not yet implemented in this
5192 In an untranslated string or in a previous untranslated string, this matches
5197 In a previous untranslated string, this matches a part of the string that
5252 msgcat --to-code=UTF-8 --color xyz.po | less -R
5258 less xyz.po
5286 *.po)
5331 The functions are declared in the header file @samp{<gettext-po.h>}, and are
5468 @samp{<gettext-po.h>}.
5479 @samp{<gettext-po.h>}.
5628 The @code{po_message_prev_msgctxt} function returns the previous
5629 @code{msgctxt}, the previous context of @var{message}. Return
5630 @code{NULL} for a message that does not have a previous context.
5634 The @code{po_message_set_prev_msgctxt} function changes the previous
5637 previous msgctxt.
5641 The @code{po_message_prev_msgid} function returns the previous
5643 @code{NULL} if there is no previous @code{msgid} stored.
5647 The @code{po_message_set_prev_msgid} function changes the previous
5654 The @code{po_message_prev_msgid_plural} function returns the previous
5657 without plural without any stored previous @code{msgid_plural}.
5662 previous @code{msgid_plural} (untranslated English plural string) of a
5664 removes the stored previous @code{msgid_plural} if @code{NULL} is
5680 is marked as fuzzy.
5683 @deftypefun {void} po_message_set_fuzzy (po_message_t@tie{}@var{message}, int@tie{}@var{fuzzy})
5684 The @code{po_message_set_fuzzy} function changes the fuzzy mark of
5715 the header entry (@pxref{Header Entry}) from a file loaded in memory.
5720 Returns the header entry of a domain from @var{file}, a PO file loaded in
5722 default domain. Returns @code{NULL} if there is no header entry.
5726 Returns the value of @var{field} in the @var{header} entry. The return
5732 Returns a freshly allocated string which contains the entry from
5800 the inclusion of @samp{<gettext-po.h>}.
6716 header entry of the PO file (the one with the empty @code{msgid} string).
6752 between the singular and plural form. An appropriate header entry
6773 is using. A header entry would look like this:
6814 Other languages using the same header entry are:
6836 Exceptional case in the language family. The header entry would be:
6852 The header entry would be:
6867 The header entry would be:
6882 The header entry would be:
6898 The header entry would look like this:
6915 The header entry would look like this:
6936 The header entry would look like this:
6953 The header entry would look like this:
6970 The header entry would look like this:
6986 The header entry would look like this:
7094 For this reason, GNU @code{gettext} caches previous translation results.
7164 the @file{po/} directory of GNU @code{gettext} knows by default both of the
7213 @code{catgets} allows same original entry to have different translations,
7864 Suppose you are translating a PO file, and it contains an entry like this:
7877 Such an entry denotes a message with plural forms, that is, a message where
7884 header entry of the PO file. It contains the number of plural forms and a
7902 forms. The first thing you need to do is to ensure that the entry contains
8016 $ msguniq $HOME/gettextlogused > missing.po
8026 $ sed -n -e 's,^domain "\(.*\)"$,\1,p' < missing.po | sort | uniq
8039 She takes the latest copy of @file{$lang.po} from the Translation Project,
8040 or from the package (in most cases, @file{$package/po/$lang.po}), or
8048 $ msggrep --domain=$domain missing.po | grep -v '^domain' \
8049 > $domain-missing.po
8050 $ msgattrib --set-obsolete --ignore-file $domain-missing.po $domain.$lang.po \
8051 > $domain.$lang-urgent.po
8054 The she translates @file{$domain.$lang-urgent.po} by use of a PO file editor
8062 $ msgmerge --no-fuzzy-matching $domain.$lang-urgent.po $package/po/$domain.pot \
8063 > $domain.$lang.po
8066 Then she can submit @file{$domain.$lang.po} and proceed to the next domain.
8157 tool and the @file{Makefile} in the @file{po/} directory therefore
8181 Your @file{po/} directory should receive all PO files submitted to you
8182 by the translator teams, each having @file{@var{ll}.po} as a name.
8198 PO files in @file{po/} for distribution.
8243 * po/POTFILES.in:: @file{POTFILES.in} in @file{po/}
8244 * po/LINGUAS:: @file{LINGUAS} in @file{po/}
8245 * po/Makevars:: @file{Makevars} in @file{po/}
8246 * po/Rules-*:: Extending @file{Makefile} in @file{po/}
8257 @node po/POTFILES.in
8258 @subsection @file{POTFILES.in} in @file{po/}
8261 The @file{po/} directory should receive a file named
8292 it is recommended to list in @file{po/POTFILES.in} the real source file
8296 @node po/LINGUAS
8297 @subsection @file{LINGUAS} in @file{po/}
8300 The @file{po/} directory should also receive a file named
8333 in the @file{po/} directory. You can copy them from GNU gettext's @file{po/}
8336 @node po/Makevars
8337 @subsection @file{Makevars} in @file{po/}
8340 The @file{po/} directory also has a file named @file{Makevars}. It
8341 contains variables that are specific to your project. @file{po/Makevars}
8342 gets inserted into the @file{po/Makefile} when the latter is created.
8347 single message domain and, accordingly, a single @file{po/} directory.
8348 Only packages which have multiple @file{po/} directories at different
8356 @node po/Rules-*
8357 @subsection Extending @file{Makefile} in @file{po/}
8360 All files called @file{Rules-*} in the @file{po/} directory get appended to
8361 the @file{po/Makefile} when it is created. They present an opportunity to
8363 with @file{po/Makefile.in.in}.
8368 building catalogs @file{en@@quot.po} and @file{en@@boldquot.po}. The
8369 effect of @file{en@@quot.po} is that people who set their @code{LANGUAGE}
8373 enable this catalog, simply add @code{en@@quot} to the @file{po/LINGUAS}
8374 file. The effect of @file{en@@boldquot.po} is that people who set
8379 @file{po/LINGUAS} file.
8439 AC_OUTPUT([@var{existing configuration files} po/Makefile.in],
8444 for substitution in the @file{po/} directory.
8445 Note the @samp{.in} suffix used for @file{po/} only. This is because
8446 the distributed file is really @file{po/Makefile.in.in}.
8496 @file{po.m4}, @file{progtest.m4} from GNU @code{gettext}'s @file{m4/}
8501 you are upgrading from a previous release of GNU @code{gettext}, you
8511 @file{lib-prefix.m4}, @file{nls.m4}, @file{po.m4}, @file{progtest.m4} from
8579 you also process the subdirectory @samp{po}. Special
8593 SUBDIRS = doc lib src po
8597 A delicate point is the @samp{dist:} goal, as @file{po/Makefile} will later
8849 * AM_PO_SUBDIRS:: AM_PO_SUBDIRS in @file{po.m4}
8850 * AM_XGETTEXT_OPTION:: AM_XGETTEXT_OPTION in @file{po.m4}
8861 @code{AM_PO_SUBDIRS}, thus preparing the @file{po/} directories of the
8968 @subsection AM_PO_SUBDIRS in @file{po.m4}
8971 The @code{AM_PO_SUBDIRS} macro prepares the @file{po/} directories of the
8981 variables in each @file{po/} directory.
8984 @subsection AM_XGETTEXT_OPTION in @file{po.m4}
8988 used in the invocations of @code{xgettext} in the @file{po/} directories
9004 @samp{XGETTEXT_OPTIONS} variable in @file{po/Makevars}.
9118 from @code{@var{parser}.y}, or @code{po/Makefile.in.in} autoinstalled
9225 file and do @code{make update-po} manually.
9260 $ (cd po; make update-po)
9285 Internationalized packages have usually many @file{@var{ll}.po}
9420 your language to @file{po-mode.el}.
9823 variable in @file{po/Makevars} (@pxref{po/Makevars}) should be adjusted to
9827 in @file{po/Makefile.in.in}. It is recommended to make one @code{xgettext}
9977 @item po-mode marking
10019 @code{pot}, @code{po}
10318 @code{po}
10418 The programmer produces a desktop entry file template with only the
10420 @code{xgettext} (usually by listing the template in @code{po/POTFILES.in}).
10423 desktop entry file.
10509 real, this was somewhat independently of these previous discussions.
10537 @code{glocale} effort. Then, Ulrich got people from the previous