AppController.h
AppController.m
BUGS
BUGS
BUGS
BUGS
BUGS
BUGS
ChangeLog
Doxyfile.am
Doxyfile.global
FAQ.html
GNU_Gettext.html
GNU_Gettext_GettextResourceManager.html
GNU_Gettext_GettextResourceSet.html
GNUmakefile
GNUmakefile
GettextResource.html
Hello.h
Hello.java
Hello.java
Hello.java
Hello.java
Hello.m
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
INSTALL
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LINGUAS
LocaleAliases
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.am
Makefile.common
Makevars
Makevars
Makevars
Makevars
Makevars
Makevars
Makevars
Makevars
POTFILES.in
POTFILES.in
POTFILES.in
POTFILES.in
POTFILES.in
POTFILES.in
POTFILES.in
POTFILES.in
README
README
README
Test15.class
Test15.java
TestAWT.class
TestAWT.class
TestAWT.java
TestAWT.java
acinclude.m4.in
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
af.po
allclasses-frame.html
am_edit
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
ast.po
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autoclean.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autogen.sh
autopoint.1.html
autosprintf_all.html
begin.html
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bg.po
bind_textdomain_codeset.3.html
bindtextdomain.3.html
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
ca.po
compile
conf.change.pl
config.guess
config.pl
config.sub
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.ac
configure.in.bot.end
configure.in.in
configure.in.min
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
cs.po
csharpcomp.m4
csharpcomp.sh.in
csharpexec-test.exe
csharpexec.m4
csharpexec.sh.in
cvs-clean.pl
cvs.sh
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
da.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
de.po
debianrules
depcomp
deprecated-list.html
detect-autoconf.sh
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
el.po
envsubst.1.html
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
eo.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
es.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fi.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
fr.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
ga.po
gettext.1.html
gettext.3.html
gettext_1.html
gettext_10.html
gettext_11.html
gettext_12.html
gettext_13.html
gettext_14.html
gettext_15.html
gettext_16.html
gettext_17.html
gettext_18.html
gettext_19.html
gettext_2.html
gettext_20.html
gettext_21.html
gettext_22.html
gettext_23.html
gettext_24.html
gettext_25.html
gettext_26.html
gettext_27.html
gettext_28.html
gettext_29.html
gettext_3.html
gettext_30.html
gettext_4.html
gettext_5.html
gettext_6.html
gettext_7.html
gettext_8.html
gettext_9.html
gettext_abt.html
gettext_fot.html
gettext_toc.html
gettextize.1.html
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gl.po
gnome-gnorba-check.m4
gnome-gnorba-check.m4
gnome-gnorba-check.m4
gnome-orbit-check.m4
gnome-orbit-check.m4
gnome-orbit-check.m4
gnome.m4
gnome.m4
gnome.m4
gtk--.m4
gtk.m4
hello-1.pl.in
hello-2.pl.in
hello.awk
hello.c
hello.c
hello.c
hello.cc
hello.cc
hello.cc
hello.cc
hello.cc
hello.cs
hello.cs
hello.desktop.in.in
hello.gresource.xml
hello.gschema.xml
hello.jl.in
hello.lisp.in
hello.m
hello.m
hello.pas
hello.php
hello.py.in
hello.scm
hello.sh
hello.st.in
hello.tcl
hello.tcl
hello.ui
hello.ycp
hellowindow.cc
hellowindow.h
help-doc.html
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hr.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
hu.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
id.po
index-all.html
index.html
index.html
install-sh
installpaths
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
it.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
ja.po
javacomp.m4
javacomp.sh.in
javaexec.m4
javaexec.sh.in
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
ky.po
libtool.m4.in
ltmain.sh
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
lv.po
main.m
missing
mkinstalldirs
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
ms.po
msgattrib.1.html
msgcat.1.html
msgcmp.1.html
msgcomm.1.html
msgconv.1.html
msgen.1.html
msgexec.1.html
msgfilter.1.html
msgfmt.1.html
msggrep.1.html
msginit.1.html
msgmerge.1.html
msgunfmt.1.html
msguniq.1.html
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
mt.po
namespaces.html
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
nb.po
ngettext.1.html
ngettext.3.html
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nl.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
nn.po
overview-tree.html
package-frame.html
package-list
package-summary.html
package-tree.html
packages.html
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pl.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
pt_BR.po
qt.m4
recode-sr-latin.1.html
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ro.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
ru.po
serialized-form.html
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sk.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sl.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sq.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
sr.po
stylesheet.css
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
sv.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
ta.po
textdomain.3.html
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tr.po
tutorial.html
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
uk.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
vi.po
wxwidgets.m4
xgettext.1.html
ylwrap
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_CN.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_HK.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
zh_TW.po
gettext_3.html
GNU gettext utilities: 3. The Format of PO Files
The GNU gettext toolset helps programmers and translators
at producing, updating and using translation files, mainly those
PO files which are textual, editable files. This chapter explains
the format of PO files.
A PO file is made up of many entries, each entry holding the relation
between an original untranslated string and its corresponding
translation. All entries in a given PO file usually pertain
to a single project, and all translations are expressed in a single
target language. One PO file entry has the following schematic
structure:
| | white-space
# translator-comments
#. extracted-comments
#: reference…
#, flag…
#| msgid previous-untranslated-string
msgid untranslated-string
msgstr translated-string
|
The general structure of a PO file should be well understood by
the translator. When using PO mode, very little has to be known
about the format details, as PO mode takes care of them for her.
A simple entry can look like this:
| | #: lib/error.c:116
msgid "Unknown system error"
msgstr "Error desconegut del sistema"
|
Entries begin with some optional white space. Usually, when generated
through GNU gettext tools, there is exactly one blank line
between entries. Then comments follow, on lines all starting with the
character #. There are two kinds of comments: those which have
some white space immediately following the # - the translator
comments -, which comments are created and maintained exclusively by the
translator, and those which have some non-white character just after the
# - the automatic comments -, which comments are created and
maintained automatically by GNU gettext tools. Comment lines
starting with #. contain comments given by the programmer, directed
at the translator; these comments are called extracted comments
because the xgettext program extracts them from the program's
source code. Comment lines starting with #: contain references to
the program's source code. Comment lines starting with #, contain
flags; more about these below. Comment lines starting with #|
contain the previous untranslated string for which the translator gave
a translation.
All comments, of either kind, are optional.
After white space and comments, entries show two strings, namely
first the untranslated string as it appears in the original program
sources, and then, the translation of this string. The original
string is introduced by the keyword msgid, and the translation,
by msgstr. The two strings, untranslated and translated,
are quoted in various ways in the PO file, using "
delimiters and \ escapes, but the translator does not really
have to pay attention to the precise quoting format, as PO mode fully
takes care of quoting for her.
The msgid strings, as well as automatic comments, are produced
and managed by other GNU gettext tools, and PO mode does not
provide means for the translator to alter these. The most she can
do is merely deleting them, and only by deleting the whole entry.
On the other hand, the msgstr string, as well as translator
comments, are really meant for the translator, and PO mode gives her
the full control she needs.
The comment lines beginning with #, are special because they are
not completely ignored by the programs as comments generally are. The
comma separated list of flags is used by the msgfmt
program to give the user some better diagnostic messages. Currently
there are two forms of flags defined:
-
fuzzy
-
This flag can be generated by the msgmerge program or it can be
inserted by the translator herself. It shows that the msgstr
string might not be a correct translation (anymore). Only the translator
can judge if the translation requires further modification, or is
acceptable as is. Once satisfied with the translation, she then removes
this fuzzy attribute. The msgmerge program inserts this
when it combined the msgid and msgstr entries after fuzzy
search only. See section Fuzzy Entries.
-
c-format
-
-
no-c-format
-
These flags should not be added by a human. Instead only the
xgettext program adds them. In an automated PO file processing
system as proposed here, the user's changes would be thrown away again as
soon as the xgettext program generates a new template file.
The c-format flag indicates that the untranslated string and the
translation are supposed to be C format strings. The no-c-format
flag indicates that they are not C format strings, even though the untranslated
string happens to look like a C format string (with ‘%’ directives).
When the c-format flag is given for a string the msgfmt
program does some more tests to check the validity of the translation.
See section Invoking the msgfmt Program, Special Comments preceding Keywords and C Format Strings.
-
objc-format
-
-
no-objc-format
-
Likewise for Objective C, see Objective C Format Strings.
-
python-format
-
-
no-python-format
-
Likewise for Python, see Python Format Strings.
-
python-brace-format
-
-
no-python-brace-format
-
Likewise for Python brace, see Python Format Strings.
-
java-format
-
-
no-java-format
-
Likewise for Java MessageFormat format strings, see Java Format Strings.
-
java-printf-format
-
-
no-java-printf-format
-
Likewise for Java printf format strings, see Java Format Strings.
-
csharp-format
-
-
no-csharp-format
-
Likewise for C#, see C# Format Strings.
-
javascript-format
-
-
no-javascript-format
-
Likewise for JavaScript, see JavaScript Format Strings.
-
scheme-format
-
-
no-scheme-format
-
Likewise for Scheme, see Scheme Format Strings.
-
lisp-format
-
-
no-lisp-format
-
Likewise for Lisp, see Lisp Format Strings.
-
elisp-format
-
-
no-elisp-format
-
Likewise for Emacs Lisp, see Emacs Lisp Format Strings.
-
librep-format
-
-
no-librep-format
-
Likewise for librep, see librep Format Strings.
-
ruby-format
-
-
no-ruby-format
-
Likewise for Ruby, see Ruby Format Strings.
-
sh-format
-
-
no-sh-format
-
Likewise for Shell, see Shell Format Strings.
-
awk-format
-
-
no-awk-format
-
Likewise for awk, see awk Format Strings.
-
lua-format
-
-
no-lua-format
-
Likewise for Lua, see Lua Format Strings.
-
object-pascal-format
-
-
no-object-pascal-format
-
Likewise for Object Pascal, see Object Pascal Format Strings.
-
smalltalk-format
-
-
no-smalltalk-format
-
Likewise for Smalltalk, see Smalltalk Format Strings.
-
qt-format
-
-
no-qt-format
-
Likewise for Qt, see Qt Format Strings.
-
qt-plural-format
-
-
no-qt-plural-format
-
Likewise for Qt plural forms, see Qt Format Strings.
-
kde-format
-
-
no-kde-format
-
Likewise for KDE, see KDE Format Strings.
-
boost-format
-
-
no-boost-format
-
Likewise for Boost, see Boost Format Strings.
-
tcl-format
-
-
no-tcl-format
-
Likewise for Tcl, see Tcl Format Strings.
-
perl-format
-
-
no-perl-format
-
Likewise for Perl, see Perl Format Strings.
-
perl-brace-format
-
-
no-perl-brace-format
-
Likewise for Perl brace, see Perl Format Strings.
-
php-format
-
-
no-php-format
-
Likewise for PHP, see PHP Format Strings.
-
gcc-internal-format
-
-
no-gcc-internal-format
-
Likewise for the GCC sources, see GCC internal Format Strings.
-
gfc-internal-format
-
-
no-gfc-internal-format
-
Likewise for the GNU Fortran Compiler sources, see GFC internal Format Strings.
-
ycp-format
-
-
no-ycp-format
-
Likewise for YCP, see YCP Format Strings.
It is also possible to have entries with a context specifier. They look like
this:
| | white-space
# translator-comments
#. extracted-comments
#: reference…
#, flag…
#| msgctxt previous-context
#| msgid previous-untranslated-string
msgctxt context
msgid untranslated-string
msgstr translated-string
|
The context serves to disambiguate messages with the same
untranslated-string. It is possible to have several entries with
the same untranslated-string in a PO file, provided that they each
have a different context. Note that an empty context string
and an absent msgctxt line do not mean the same thing.
A different kind of entries is used for translations which involve
plural forms.
| | white-space
# translator-comments
#. extracted-comments
#: reference…
#, flag…
#| msgid previous-untranslated-string-singular
#| msgid_plural previous-untranslated-string-plural
msgid untranslated-string-singular
msgid_plural untranslated-string-plural
msgstr[0] translated-string-case-0
...
msgstr[N] translated-string-case-n
|
Such an entry can look like this:
| | #: src/msgcmp.c:338 src/po-lex.c:699
#, c-format
msgid "found %d fatal error"
msgid_plural "found %d fatal errors"
msgstr[0] "s'ha trobat %d error fatal"
msgstr[1] "s'han trobat %d errors fatals"
|
Here also, a msgctxt context can be specified before msgid,
like above.
Here, additional kinds of flags can be used:
-
range:
-
This flag is followed by a range of non-negative numbers, using the syntax
range: minimum-value..maximum-value. It designates the
possible values that the numeric parameter of the message can take. In some
languages, translators may produce slightly better translations if they know
that the value can only take on values between 0 and 10, for example.
The previous-untranslated-string is optionally inserted by the
msgmerge program, at the same time when it marks a message fuzzy.
It helps the translator to see which changes were done by the developers
on the untranslated-string.
It happens that some lines, usually whitespace or comments, follow the
very last entry of a PO file. Such lines are not part of any entry,
and will be dropped when the PO file is processed by the tools, or may
disturb some PO file editors.
The remainder of this section may be safely skipped by those using
a PO file editor, yet it may be interesting for everybody to have a better
idea of the precise format of a PO file. On the other hand, those
wishing to modify PO files by hand should carefully continue reading on.
An empty untranslated-string is reserved to contain the header
entry with the meta information (see section Filling in the Header Entry). This header
entry should be the first entry of the file. The empty
untranslated-string is reserved for this purpose and must
not be used anywhere else.
Each of untranslated-string and translated-string respects
the C syntax for a character string, including the surrounding quotes
and embedded backslashed escape sequences. When the time comes
to write multi-line strings, one should not use escaped newlines.
Instead, a closing quote should follow the last character on the
line to be continued, and an opening quote should resume the string
at the beginning of the following PO file line. For example:
| | msgid ""
"Here is an example of how one might continue a very long string\n"
"for the common case the string represents multi-line output.\n"
|
In this example, the empty string is used on the first line, to
allow better alignment of the H from the word ‘Here’
over the f from the word ‘for’. In this example, the
msgid keyword is followed by three strings, which are meant
to be concatenated. Concatenating the empty string does not change
the resulting overall string, but it is a way for us to comply with
the necessity of msgid to be followed by a string on the same
line, while keeping the multi-line presentation left-justified, as
we find this to be a cleaner disposition. The empty string could have
been omitted, but only if the string starting with ‘Here’ was
promoted on the first line, right after msgid.(2) It was not really necessary
either to switch between the two last quoted strings immediately after
the newline ‘\n’, the switch could have occurred after any
other character, we just did it this way because it is neater.
One should carefully distinguish between end of lines marked as
‘\n’ inside quotes, which are part of the represented
string, and end of lines in the PO file itself, outside string quotes,
which have no incidence on the represented string.
Outside strings, white lines and comments may be used freely.
Comments start at the beginning of a line with ‘#’ and extend
until the end of the PO file line. Comments written by translators
should have the initial ‘#’ immediately followed by some white
space. If the ‘#’ is not immediately followed by white space,
this comment is most likely generated and managed by specialized GNU
tools, and might disappear or be replaced unexpectedly when the PO
file is given to msgmerge.
This document was generated by Bruno Haible on July, 26 2020 using texi2html 1.78a.