Giter Club home page Giter Club logo

translate's Introduction

Translate Toolkit

Join the chat at https://gitter.im/translate/pootle

Build Status

Test Coverage

Requirements

Released version

Supported Python versions

License

The Translate Toolkit is a set of software and documentation designed to help make the lives of localizers both more productive and less frustrating. The Toolkit is part of the Translate project, hosted at <https://github.com/translate>.

The software includes programs to convert localization formats to the common PO, and emerging XLIFF format. There are also programs to check and manage PO and XLIFF files. Online documentation includes guides on using the tools, running a localization project and how to localize various projects from OpenOffice.org to Mozilla.

At its core the software contains a set of classes for handling various localization storage formats: DTD, properties, OpenOffice.org GSI/SDF, CSV, MO, Qt .ts, TMX, TBX, WordFast txt, Gettext .mo, Windows RC, and of course PO and XLIFF. It also provides scripts to convert between these formats.

Also part of the Toolkit are Python programs to create word counts, merge translations and perform various checks on translation files.

Important Links

Joining the Translate Project

If you would like to join the translate project mailing list then visit: <http://lists.sourceforge.net/lists/listinfo/translate-devel>.

The vision of the Translate Project is to be a meta project for localizers built on the premise that your language deserves to be a project on its own right not a poor cousin of the main project.

Most projects are inattentive to the needs and difficulties experienced by localizers. To that end the aim is to work towards creating tools and documentation that allows localizers to focus on what they do best: translating software.

Requirements

There are several extra requirements which you might to install to get full feature set. This cal be easily specified during pip installation:

# Install with XML support
pip install translate-toolkit[XML]

# Install all optional dependencies
pip install translate-toolkit[all]

Note

Please check requirements/*.txt:

pip install -r requirements/optional.txt

Will install all optional dependencies convering support for many other formats.

The Toolkit requires Python 3.8 or newer.

The package lxml is required. You should install version 4.6.3 or later. <http://lxml.de/> Depending on your platform, the easiest way to install might be through your system's package management. Alternatively you can try :

pip install lxml

which should install the newest version from the web.

For Mac OSX, the following pages might be of help: <http://lxml.de/build.html#building-lxml-on-macos-x> <http://lxml.de/installation.html#macos-x>

The package lxml has dependencies on libxml2 and libxslt. Please check the lxml site for the recommended versions of these libraries if you need to install them separately at all. Most packaged versions of lxml will already contain these dependencies.

When the environment variable USECPO is set to 1, the toolkit will attempt to use libgettextpo from the gettext-tools package (it might have a slightly different name on your distribution). This can greatly speed up access to PO files, but has not yet been tested as extensively. Feedback is most welcome.

The package iniparse is necessary for ini2po and po2ini: <https://pypi.org/project/iniparse/>

The python-Levenshtein package will improve performance for fuzzy matching if it is available. This can improve the performance of pot2po, for example. It is optional and no functionality is lost if it is not installed, only speed. <http://sourceforge.net/projects/translate/files/python-Levenshtein/>

Functions in the lang.data module can supply functions to translate language names using the pycountry package. It can even translate names in the format Language (Country) such as English (South Africa) This is used by Pootle and Virtaal. If the package is not installed, the language names will simply appear in English. It is therefore recommended you install the pycountry package.

The package vobject is needed for ical2po and po2ical.

The aeidon package is needed for sub2po and po2sub. Some Unicode encoded files (including most files from <http://dotsub.com/>) require version 0.14 or later.

Trados TXT TM support requires the BeautifulSoup parser <http://www.crummy.com/software/BeautifulSoup/>

Markdown support requires the mistletoe parser <https://github.com/miyuchina/mistletoe>

Program overview

Use --help to find the syntax and options for all programs.

  • Converters:

    oo2po    - convert between OpenOffice.org GSI files and PO
    oo2xliff - convert between OpenOffice.org GSI files and XLIFF
    moz2po   - convert between Mozilla files and PO
    csv2po   - convert PO format to CSV for editing in a spreadsheet program
    php2po   - PHP localisable string arrays converter.
    ts2po    - convert Qt Linguist (.ts) files to PO
    txt2po   - convert simple text files to PO
    html2po  - convert HTML to PO (beta)
    md2po    - convert Markdown to PO
    xliff2po - XLIFF (XML Localisation Interchange File Format) converter
    prop2po  - convert Java .properties files to PO
    po2wordfast - Wordfast Translation Memory converter
    po2tmx   - TMX (Translation Memory Exchange) converter
    pot2po   - PO file initialiser
    csv2tbx  - Create TBX (TermBase eXchange) files from Comma Separated
               Value (CSV) files
    ini2po   - convert .ini files to to PO
    ical2po  - Convert iCalendar files (*.ics) to PO
    sub2po   - Convert many subtitle files to PO
    resx2po  - convert .Net Resource (.resx) files to PO
  • Tools (Quality Assurance):

    pofilter - run any of the 40+ checks on your PO files
    pomerge  - merge corrected translations from pofilter back into
               your existing PO files.
    poconflicts - identify conflicting use of terms
    porestructure - restructures po files according to poconflict directives
    pogrep   - find words in PO files
  • Tools (Other):

    pocompile - create a Gettext MO files from PO or XLIFF files
    pocount   - count translatable file formats (PO, XLIFF)
    podebug   - Create comment in your PO files' msgstr which can
                then be used to quickly track down mistranslations
                as the comments appear in the application.
    posegment - Break a PO or XLIFF files into sentence segments,
                useful for creating a segmented translation memory.
    poswap    - uses a translation of another language that you
                would rather use than English as source language
    poterminology - analyse PO or POT files to build a list of
                    frequently occurring words and phrases

translate's People

Contributors

anderskaplan avatar bhaalsen avatar claudep avatar clouserw avatar deepsource-autofix[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar dg0yt avatar dupuy avatar dwaynebailey avatar friedelwolff avatar henry-torproject avatar jleclanche avatar jordimas avatar julen avatar khaledhosny avatar last-partizan avatar llimeht avatar nijel avatar nschonni avatar phlax avatar phoneixs avatar pre-commit-ci[bot] avatar queengooborg avatar rimas-kudelis avatar str4d avatar sumpfralle avatar surli avatar ta2-1 avatar unho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

translate's Issues

csv2po should report the line number of errors

Version: 0.8rc5

Currently and error will look like this:

processing 91 files…
templates/toolkit/chrome/global-platform/mac/platformKeys.properties.pot – csv
entry not found in pofile:
location source
original original
translation original

Ideally it should also report the line number in the CSV file so that it is easy
to find the relevant error.

moz2po work directly with Mozilla CVS

Version: 0.8rc5

Currently moz2po works well with XPI files. But Mozilla uses a different
structure internally for en-US for Firefox and Thudnerbird and a different
structure yet again for the languages that are translated.

This request is to allow moz2po to extract POT files from the en-US structure in
Mozilla’s CVS; and

For po2moz to be able to create files in the form ready for the
language/translated files structure in Mozilla CVS.

pofilter also having trouble with __str__

Version: 0.8rc5

pofilter: warning: Error processing: input
/tmp/tmp.SkbOze9685/browser/chrome/browser/migration/migration.properties.po,
output
nso-nso-missing-check/browser/chrome/browser/migration/migration.properties.po,
template None: Traceback (most recent call last):

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

418, in recursiveprocess
success = self.processfile(fileprocessor, options, fullinputpath,
fulloutputpath, fulltemplatepath)

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

471, in processfile
if fileprocessor(inputfile, outputfile, templatefile, **passthroughoptions):

File “/usr/lib/python2.4/site-packages/translate/filters/pofilter.py”, line

218, in runpofilter
outputfile.write(str(tofile))

File “/usr/lib/python2.4/site-packages/translate/storage/po.py”, line 714, in

str
pesrc = str(pe) + “\n”

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u0161’ in position
210: ordinal not in range(128)

po2oo says: "don't know what to do with input format .po"

Version: 0.8rc5

Originally posted by Erdal Ronahi:

I tried to use po2oo to make an kurdish sdf-file from .po files. All I get with
commands like

po2oo -i ooo2 -l ku -t en_US.sdf -o ku.sdf
po2oo -l ku -t en_US.sdf —nofuzzy -i ooo2 ku.sdf
po2oo -i ooo2 -l ku -t en_US.sdf -o ku.sdf

are error messages like

po2oo: warning: Couldn’t handle input file ooo-writer.po: don’t know what to do
with input format .po, template format .sdf

for every .po-file in the directory and the subdirectories.

Funny that po2oo shouldn’t know the input format .po, isn’t it there to convert
.po files?

It makes no difference whether the directory ooo2 does either contain small
.po-files (Rosetta style) or one big .po-file (14,1 MB) with all the
translations, the result is always the same.

moz2po inserts unneeded spaces

Version: 0.8rc2

Record like that…
<!ENTITY copyrightText “©1998-2005 Contributors. All rights
reserved. Mozilla Sunbird, Sunbird, and the
Sunbird logos are trademarks of the Mozilla
Foundation. All rights reserved.”>

…is converted with all (pretty formatting) spaces copied to .pot/.po, while it should be converted
with only one space separating words from “different” lines, like:
“©1998-2005 Contributors. All rights reserved. Mozilla Sunbird, Sunbird, and the Sunbird
logos are trademarks of the Mozilla Foundation. All rights reserved.”

#expand in .dtd is skipped

Version: 0.8rc2

As noted in https://bugzilla.mozilla.org/show_bug.cgi?id=308294#c5 , there is
such a text in other-licenses/branding/thunderbird/brand.dtd:

  1. expand <!ENTITY lang.version "**MOZILLA_LOCALE_VERSION**">

The “#expand” part is skipped in po2dtd.

Mozilla (Java) .properties file support is non-conformant

Version: 0.8rc2

I already reported this problem but I got not clear “Yes” or “No” since more
than a month so I submit it here.

Here is excerpt from
http://sourceforge.net/mailarchive/forum.php?thread_id=7333108&forum_id=36744:

David Fraser wrote:

> 1) Do you know whether this fits with how Mozilla uses these properties
> files? Since the filters are mostly used for Mozilla this is important.
> (i.e. does Mozilla handle escaped : and = correctly…) I can check this
> out myself but if someone else does the patch can go in quicker…

I haven"t checked Mozilla code but Mozilla Translator is Java program and it always escapes these characters (this is how I found this problem with Translate Toolkit), so I guess that Mozilla code handles such escapes.

> 2) I presume the changing of “\” + c to c at the end of the patch is to
> handle the : and =, but I wonder if this would be better handled
> explicitly for those characters (so that unexpected backslashes fall
> straight through…)

I think that it should be done the Java way ;-) http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream) “The method does not treat a backslash character, \, before a non-valid escape character as an error; the backslash is silently dropped. For example, in a Java string the sequence “\z” would cause a compile time error. In contrast, this method silently drops the backslash. Therefore, this method treats the two character sequence “\b” as equivalent to the single character “b”." The special treatment is needed on encoding. For example, usually # marks comment start.

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#store(java.io.OutputStream,%20java.lang.String)

“The key and element characters #, !, =, and : are written with a preceding backslash to ensure that they are properly loaded." Now I see another problem but I don"t know if it will ever break Translate Toolkit: property value that span several lines, all (except last) ending with backslash.

windows newline character is sometimes dropped from the end of a string

Version: 0.8rc2

Originally posted by David Farning:

running - roundtriptest against 0.8rc4.20051109
against -
firefox 1.0.7 de_DE.xpi

Example:

diff uBwbEir
de-DE.xpi.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
de-DE.xpi.new.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
-
- de-DE.xpi.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
2004-10-18 17:44:51.000000000 -0500
+
de-DE.xpi.new.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
2005-11-11 06:26:22.000000000 -0600
@ -1,16 +1,16 @
newfolder_dialog_title=Neuen Ordner erstellen
cmd_bm_collapsefolder_accesskey=E
cmd_bm_renamebookmark2=Adresse \u00E4ndern…
-cmd_bm_move_undo=R\u00FCckg\u00E4ngig: Lesezeichen verschieben
+cmd_bm_move_undo=R\u00FCckg\u00E4ngig\: Lesezeichen verschieben
cmd_bm_openinnewwindow=In neuem Fenster \u00F6ffnen
BookmarksLivemarkLoading=Dynamisches Lesezeichen wird geladen…
cmd_bm_newseparator_undo_accesskey=R
cmd_delete=L\u00F6schen
-cmd_bm_delete_undo=R\u00FCckg\u00E4ngig: Lesezeichen l\u00F6schen
-EnterExport=Lesezeichendatei exportieren:

I don’t belive that most email clients will show the presences of ^M
(windows return) but if you look at
http://www.rtklib.org/roundtriptests/ff_1.0.7_xpi/de-DE.diff in an
editor such as vi you will see that sometimes the ^M is dropped

thanks
-dtf

pogrep fails when encoding missing from header

Version: 0.8rc5

I had to change line 31 in pogrep.py to:
self.searchstring = searchstring

For the search facility to work correctly in Pootle

However there is still a problem with pogrep on the command line:
pogrep “ضضط” —errorlevel=traceback po duh

Produces the following traceback:
pogrep: warning: Error processing: input po/highlight/xh/html.po, output
duh/highlight/xh/html.po, template None: Traceback (most recent call last):

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

418, in recursiveprocess
success = self.processfile(fileprocessor, options, fullinputpath,
fulloutputpath, fulltemplatepath)

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

471, in processfile
if fileprocessor(inputfile, outputfile, templatefile, **passthroughoptions):

File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 142,

in runpogrep
tofile = checkfilter.filterfile(fromfile)

File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 91, in

filterfile
matches = self.filterelement(thepo)

File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 81, in

filterelement
if self.matches(unquotedid): return True

File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 56, in

matches
found = teststr.find(self.searchstring) != -1

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xd8 in position 0: ordinal
not in range(128)

With the -e option it works correcly.

storage/po.py traceback: TypeError: int argument required

Version: 0.8rc2

Originally posted by Matt Chisholm:

This traceback occurs when you click ‘submit’ on a translated
message in Pootle.

2005-08-07 17:05:00: Traceback (most recent call last):
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
172, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
369, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/users.py”, line 174, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/pootle.py”, line 296, in getpage
return translatepage.TranslatePage(project, session, argdict,
dirfilter=pofilename)
File “/usr/lib/python2.3/site-packages/Pootle/translatepage.py”, line 44, in
init
self.receivetranslations()
File “/usr/lib/python2.3/site-packages/Pootle/translatepage.py”, line 215, in
receivetranslations
self.project.updatetranslation(self.pofilename, item, value, self.session)
File “/usr/lib/python2.3/site-packages/Pootle/projects.py”, line 1005, in
updatetranslation
pofile.setmsgstr(item, trans, session.prefs, languageprefs)
File “/usr/lib/python2.3/site-packages/Pootle/pootlefile.py”, line 383, in
setmsgstr
self.updateheaderplural(nplurals, pluralequation)
File “/usr/lib/python2.3/site-packages/translate/storage/po.py”, line 504, in
updateheaderplural
self.updateheader( Plural_Forms = “nplurals=%d; plural=%s;” % (nplurals,
plural) )
TypeError: int argument required

And here is a patch:


translate/storage/po.py

+ translate/storage/po.py
@ -499,7 +499,7 @

def updateheaderplural(self, nplurals, plural): """update the Plural-Form PO header"""

- if isinstance(nplurals, str):
- if isinstance(nplurals, str) or isinstance(nplurals, unicode):
nplurals = int(nplurals)
self.updateheader( Plural_Forms = “nplurals=%d; plural=%s;” % (nplurals,
plural) )

po2dtd: "\n" in msgstr is turned into plain "n"

Version: 0.8rc2

Both msgid and msgstr can contain new lines (\n), e.g.:
http://groups-beta.google.com/group/netscape.public.mozilla.l10n/browse_thread/thread/4766b9bbfea70a8c/d8cccbe811373a9d#d8cccbe811373a9d.
But the “\n” in msgstr (or msgid) is turned into “n” in .dtd which is plain wrong.

dtd2po should mange line endings in multilines DTD entities

Version: 0.8rc5

An entity such as:

<!ENTITY noupdatesfound.intro “There are no new updates available.
&brandShortName; may check
periodically for new updates.”>

Usually has a CRLF line ending after “may check” in the first line. I think
these line ending are ignored in DTD, just as in HTML, howver we are still
carrying them into the PO file.

The solution to Bug #79 removes the leading spaces in the first line.

moz2po - strangeness when label entity is marked DONT_TRANSLATE and accesskey is not

Version: 0.8rc2

Original report:
https://sourceforge.net/tracker/index.php?func=detail&aid=1244635&group_id=91920&atid=598865

Reported by: https://sourceforge.net/users/mcpatu/

Original report:
moz2po – errors with entity names in a comment
for example:

http://lxr.mozilla.org/seamonkey/source/editor/ui/locales/en-US/chrome/composer/editorPrefsOverlay.dtd

<!ENTITY editorCheck.label "Composer">
<!ENTITY editorCheck.accesskey "c">

when I do moz2po I get:

“error converting original dtd entity
editorCheck.accesskey”

it seems that it’s because of the comment … if I
remove editorCheck.label from the comment everything
goes OK

it also happens in:

http://lxr.mozilla.org/seamonkey/source/mail/locales/en-US/chrome/messenger/mailTasksOverlay.dtd

Doubled up KDE comments in moz2po

Version: 0.8rc2

In editor/ui/chrome/composer/pref-publish.dtd.po

There is the following 2 entries:

  1. : publishFtp.label

msgid ""
“_: Edit box appears beside this label\n”
“_: publishFtp.label\n”
“If publishing to a FTP site, enter the HTTP address to browse to:”
msgstr ""

  1. : publishhtp.label

msgid ""
“_: Edit box appears beside this label\n”
“_: publishhtp.label\n”
“If publishing to a FTP site, enter the HTTP address to browse to:”
msgstr ""

You can’t have two KDE comment. We need to work out how to turn that into one
comment.

po2dtd: No message when accesskey is not found

Version: 0.8rc2

When there are extra accesskey ampersands, convert/po2dtd.py:removeinvalidamps
shows warning. For consistency, I believe that there should be warning too in
convert/po2dtd.py:getaccesskey when accesskey ampersand is missing instead of
silently ignoring this problem. It may look like minor problem, but actually
it’s helpful for finding problems when updating dtd:s.

DTD convert escape to valid characters

Version: 0.8rc2

There are not many of these:

  1. : openingTitle

msgid “#2% of #1 Completed”
msgstr “#2% ya #1 yi herile”

Here % is the % sign.

But they are confusing enough to clutter translations.

It would be nice if we could convert these to the correct Unicode character and
convert them back to the HTML escapes when creating the DTD.

In the whole of Firefox and Thunderbird there are only 7 files with this syntax,
all of them are DTD files.

Being able to do this would be useful when translating proper HTML, so its use
should extend beyond mos2po but into html2po and others.

validchars should be able to detect messed encodings

Version: 0.8rc6

Currently validchars allows use to detect characters that are not part of a
language.

We could use the same list of characers to generate alternate representations of
that characters in multibyte formats like UTF-8. This would allow us to detect
garbled input files.

--multifile has no effect

Version: 0.8rc5

Originally posted by Erdal Ronahi:

When trying to break down the en-US.sdf file from OpenOffice into several
po-files using the options

—multifile=toplevel or
—multifile=onefile

no effect is seen. The message “processing 231 files” appears and indeed plenty
of files appear instead of few or one.

An example:

oo2po —multifile=toplevel en-US.sdf targetdir

By the way, in the description at
http://translate.sourceforge.net/wiki/toolkit/oo2po which reads

if an escaped character in the last char in a string it is dropped (\t \n ...)

Version: 0.8rc2

Originally posted by David Farning:

running - roundtriptests against 0.8rc4.20051109
against -
firefox 1.0.7 ca-AD.xpi

If the last character in a string is escaped it will be dropped.

example:

diff uBwbEir ca-AD.xpi.tmp/chrome/locale/global/printing.properties
ca-AD.xpi.new.tmp/chrome/locale/global/printing.properties
-
- ca-AD.xpi.tmp/chrome/locale/global/printing.properties 2004-10-22
08:39:44.000000000 -0500
+ ca-AD.xpi.new.tmp/chrome/locale/global/printing.properties
2005-11-11 06:25:02.000000000 -0600
@ -2,13 +2,13 @
#Wed Oct 20 04:35:55 CEST 2004
NS_ERROR_UNEXPECTED=S’ha produ\u00EFt un error inesperat durant la
impressi\u00F3.
NS_ERROR_GFX_PRINTER_COLORSPACE_NOT_SUPPORTED=S’ha produ\u00EFt un
problema en imprimir perqu\u00E8 la tasca d’impressi\u00F3 requereix
capacitats de color que la vostra impressora no permet.
-NS_ERROR_GFX_PRINTER_XPRINT_NO_XPRINT_SERVERS_FOUND=S’ha produ\u00EFt
un error d’impressi\u00F3: no s’ha pogut trobar cap servidor Xprint.
\nComproveu que la variable d’entorn XPSERVERLIST contingui un o m
\u00E9s servidors Xprint v\u00E0lids.
-noPrintFilename.alert=Heu escollit “Imprimeix a: Fitxer”, i el nom del
fitxer \u00E9s buit!
+NS_ERROR_GFX_PRINTER_XPRINT_NO_XPRINT_SERVERS_FOUND=S’ha produ\u00EFt
un error d’impressi\u00F3\: no s’ha pogut trobar cap servidor Xprint.
\nComproveu que la variable d’entorn XPSERVERLIST contingui un o m
\u00E9s servidors Xprint v\u00E0lids.
+noPrintFilename.alert=Heu escollit “Imprimeix a\: Fitxer”, i el nom
del fitxer \u00E9s buit\!
NS_ERROR_GFX_PRINTER_PRINTER_IO_ERROR=S’ha produ\u00EFt un problema
d’impressi\u00F3. Error d’E/S de la impressora.
NS_ERROR_GFX_PRINTER_XPRINT_BROKEN_XPRT=S’ha detectat una versi\u00F3
err\u00F2nia del servidor d’impressi\u00F3 X (Xprt). Fixeu-vos, que en
imprimir utilitzant aquest servidor Xprt podr\u00EDa fer-vos treballar
malament. Siusplau, contacteu amb el venedor del servidor per a una
versi\u00F3 fixada.
NS_ERROR_GFX_PRINTER_CMD_NOT_FOUND=S’ha produ\u00EFt un problema
d’impressi\u00F3. La impressora no permet l’\u00FAs d’una ordre
d’impressi\u00F3.
NS_ERROR_GFX_PRINTER_PRINTPREVIEW=Per mostrar l’exemple d’impressi
\u00F3 cal que hi hagi com a m\u00EDnim una impressora disponible.
-NS_ERROR_GFX_PRINTER_PRINT_WHILE_PREVIEW=No es pot imprimir mentre
esteu a la visualitzaci\u00F3 pr\u00E8via de la impressi
\u00F3.\t
+NS_ERROR_GFX_PRINTER_PRINT_WHILE_PREVIEW=No es pot imprimir mentre
esteu a la visualitzaci\u00F3 pr\u00E8via de la impressi\u00F3.
NS_ERROR_GFX_PRINTER_ACCESS_DENIED=S’ha produ\u00EFt un problema
d’impressi\u00F3. S’ha denegat l’acc\u00E9s a la impressora.
NS_ERROR_GFX_PRINTER_FILE_IO_ERROR=S’ha produ\u00EFt un error en
escriure el fitxer de sortida de la impressi\u00F3.
NS_ERROR_ABORT=S’ha abortat o cancel\u00B7lat el treball d’impressi
\u00F3.
@ -24,22 +24,22 @
fileConfirm.exists=%S ja existeix. El voleu reempla\u00E7ar?
NS_ERROR_GFX_PRINTER_ORIENTATION_NOT_SUPPORTED=S’ha produ\u00EFt un
problema d’impressi\u00F3 perqu\u00E8 l’orientaci\u00F3 de la p
\u00E0gina que heu especificat no la suporta la vostra impressora.
NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE=S’ha produ\u00EFt un problema
d’impressi\u00F3. No s’ha pogut obrir el fitxer de sortida.
-NS_ERROR_NOT_AVAILABLE=No es troba disponible
\t

+NS_ERROR_NOT_AVAILABLE=No es troba disponible
NS_ERROR_GFX_PRINTER_TOO_MANY_COPIES=S’ha produ\u00EFt un problema en
imprimir perqu\u00E8 heu sol\u00B7licitat massa c\u00F2pies.
fontname=serif
printpreview_error_dialog_title=S’ha produ\u00EFt un error en la
visualitzaci\u00F3 pr\u00E8via de la impressi\u00F3
NS_ERROR_GFX_PRINTER_PLEX_NOT_SUPPORTED=S’ha produ\u00EFt un error
d’impressi\u00F3 perqu\u00E8 el mode plex que heu especificat no \u00E9s
suportat per la vostra impressora.
NS_ERROR_GFX_PRINTER_DRIVER_CONFIGURATION_ERROR=S’ha produ\u00EFt un
problema en imprimir. El controlador de la impressora no est\u00E0 ben
configurat.
-NS_ERROR_GFX_PRINTER_DOC_WAS_DESTORYED=S’ha reempla\u00E7at la p
\u00E0gina mentre intentaveu imprimir. Si us plau, proveu-ho de
nou.\t

+NS_ERROR_GFX_PRINTER_DOC_WAS_DESTORYED=S’ha reempla\u00E7at la p
\u00E0gina mentre intentaveu imprimir. Si us plau, proveu-ho de nou.
NS_ERROR_GFX_PRINTER_ENDDOC=Ha fallat la impressi\u00F3 en completar-se
el document.
NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE=S’ha produ\u00EFt un problema
en imprimir. No s’ha trobat cap impressora.
-NS_ERROR_NOT_IMPLEMENTED=Encara no s’ha implementat alguna
funcionalitat de la impressi
\u00F3.\t
+NS_ERROR_NOT_IMPLEMENTED=Encara no s’ha implementat alguna
funcionalitat de la impressi\u00F3.

Please notice how the \t are sometimes dropped from the end of a line.
dropping tabs might not be too bad but I have noticed elsewhere that
newlines are dropped.

Please see http://www.rtklib.org/roundtriptests/ff_1.0.7_xpi/ca-AD.diff
for more information.

thanks
-dtf

Accelerators before variables should fail the accelerators test

Version: 0.8rc5

Currently we convert variables to their text equivalent. Thus:

S Options → S Options
About %PRODUCTNAME
→ About PRODUCTNAME

This causes a problem if the translator has missplaced an accelerator and placed
it next to the variable.

“%S &Options”
translates to:
“&%S Ikhetho”
which becomes
“&S Ikhetho”

Which will pass the accelerator test.

I have added a test to head to highlight this. But have not added a fix.

My current thoughts are that instead of striping the varioable markers that we
replace variables with some standard text. Thus we can reject accelerators that
appear at the beginning of that standard text.

po2dtd doesn't cope with removed spaces

Version: 0.8rc6

Bug #79 solved the compaction of pretty printed spaces. However merging back
seems to be a problem now:

Here is a traceback:

[dwayne@laptop-wifi convert]$ python po2dtd.py -t incompatible.dtd
incompatible.dtd.po incompatible.dtd.tn —errorlevel=traceback
processing 1 files…

po2dtd.py: warning: Error processing: input incompatible.dtd.po, output
incompatible.dtd.tn, template incompatible.dtd: Traceback (most recent call last):

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

418, in recursiveprocess
success = self.processfile(fileprocessor, options, fullinputpath,
fulloutputpath, fulltemplatepath)

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

471, in processfile
if fileprocessor(inputfile, outputfile, templatefile, **passthroughoptions):

File “po2dtd.py”, line 262, in convertdtd outputdtdsrc = str(outputdtd) File “/usr/lib/python2.4/site-packages/translate/storage/dtd.py”, line 276, in

str
source = self.getsource()

File “/usr/lib/python2.4/site-packages/translate/storage/dtd.py”, line 283, in

getsource
sources = [str(dtd) for dtd in self.dtdelements]

File “/usr/lib/python2.4/site-packages/translate/storage/dtd.py”, line 209, in

str
source = self.getsource()

File “/usr/lib/python2.4/site-packages/translate/storage/dtd.py”, line 220, in

getsource
raise StopIteration()

StopIteration

csv2po needs better error reporting

Version: 0.8rc2

When converting some files I get this error report which relates to a bad
encoding. The only problem is that it doesn’t tell me where the problem is. It
needs to report the line, column and character for easy lookup.

[dwayne@laptop openoffice2.0]$ csv2po —charset=windows-1250 -t phase5-templates
ts-5-returned ts-5-returned
processing 8 files…
could not find csv entry in po: ‘source’, u’original’, u’vuhundzuluxeri’

csv2po: warning: Error processing: input
ts-5-returned/officecfg/registry/data/org/openoffice/Office/UI.csv, output
ts-5-returned/officecfg/registry/data/org/openoffice/Office/UI.po, template
phase5-templates/officecfg/registry/data/org/openoffice/Office/UI.pot: ‘charmap’
codec can’t decode byte 0×83 in position 8: character maps to

Allow overriding of translations

Version: 0.8rc2

Some things that are in dtd files etc shouldn’t realy be in PO files for one of
three reasons:

1) Stuff that shouldn’t be translated at all
2) Stuff that is configuration (including True/False values)
3) Stuff that should be automatically translated based on the locale (e.g. URLs
with the locale in it)

It would be nice to have a configuration file that you can specify all of these
for a project

option for oo2po / po2oo to generate larger po files

Version: 0.8rc2

Originally posted by Matthias Klose:

currently over 200 po files are generated, many having only a few message
strings. would it be possible to generate/read the files per toplevel directory
as well (or having only one po file)?

csv2po experiencing and __str__ related conversion problem

Version: 0.8rc5

When running csv2po on about 90 files I got this error on about 5 of them:

csv2po: warning: Error processing: input
updates-final/Final_Sepedi/toolkit/chrome/global-platform/win/intl.properties.csv,
output nso/toolkit/chrome/global-platform/win/intl.properties.po, template
templates/toolkit/chrome/global-platform/win/intl.properties.pot: Traceback
(most recent call last):

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

418, in recursiveprocess
success = self.processfile(fileprocessor, options, fullinputpath,
fulloutputpath, fulltemplatepath)

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

471, in processfile
if fileprocessor(inputfile, outputfile, templatefile, **passthroughoptions):

File “/usr/lib/python2.4/site-packages/translate/convert/csv2po.py”, line 186,

in convertcsv
outputposrc = str(outputpo)

File “/usr/lib/python2.4/site-packages/translate/storage/po.py”, line 689, in

str
pesrc = str(pe) + “\n”

TypeError: str returned non-string (type NoneType)

Compiled MO files don't do plurals

Version: 0.8rc2

The pocompile module uses msgfmt.py code from other projects. This however does
not do plural forms. This needs to be added if the MO files download feature of
Pootle is to be valuable.

po2moz inserts extraneous comments closings into .dtd's

Version: 0.8rc2

When converting from po to mozilla’s l10n dtd’s, extraneous comments closings (—>) are inserted,
which leads to user interface (thunderbird in this case) failing to start.

I’m using jToolkit-0.7 rc3.20051029 and just reproduced with rc4.20051116.

I’m attaching pot and po and resulting dtd for two variants of this problem tar-gzipped.

Failed to convert a properties file

Version: 0.8rc6

Originally posted by Oscar Manuel Gómez Senovilla:

A properties file has been converted wrong. I expect to attach later.

unicode problems with using pomerge

Version: 0.8rc5

Seems that string containing Unicode characters are barfing when using pomerge:

PS Need a component for tools :(

[dwayne@laptop-wifi fftb11]$ pomerge —errorlevel=traceback -t
nso/browser/chrome/browser/preferences/preferences.properties.po
nso-nso-missing-check/browser/chrome/browser/preferences/preferences.properties.po
nso/browser/chrome/browser/preferences/preferences.properties.po
processing 1 files…

pomerge: warning: Error processing: input
nso-nso-missing-check/browser/chrome/browser/preferences/preferences.properties.po,
output nso/browser/chrome/browser/preferences/preferences.properties.po,
template nso/browser/chrome/browser/preferences/preferences.properties.po:
Traceback (most recent call last):

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

418, in recursiveprocess
success = self.processfile(fileprocessor, options, fullinputpath,
fulloutputpath, fulltemplatepath)

File “/usr/lib/python2.4/site-packages/translate/misc/optrecurse.py”, line

471, in processfile
if fileprocessor(inputfile, outputfile, templatefile, **passthroughoptions):

File “/usr/lib/python2.4/site-packages/translate/tools/pomerge.py”, line 111,

in mergepo
outputfile.write(str(outputpo))

File “/usr/lib/python2.4/site-packages/translate/storage/po.py”, line 689, in

str
pesrc = str(pe) + “\n”

File “/usr/lib/python2.4/site-packages/translate/storage/po.py”, line 366, in

str
postr = "".join(lines)

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc5 in position 17: ordinal
not in range(128)

newlines redistributed after moz conversion

Version: 0.8rc5

This is related to bug #77 (http://pootlebugzilla.sjsoft.com/show_bug.cgi?id=77) and its attached
testcases. Newlines are being re-distributed after cdonversion, differently in different examples. I
did both conversion from existing (formerly attached) example .po’s and also complete moz2po-po2
moz roundtrips. Toolkit is rc5.20051129.

In example #1 (msgFolderPickerOverlay.dtd) result is:

→<!- Labels —>
and the template dtd looks like:

—>

<— Labels —>

In example #2 (pref-notifications.dtd) everything is okay!

In example #3 (selectAddresses.dtd) output is:

- ****\* END LICENSE BLOCK ****\* →<!- Select addresses for mail message dialog —>

<!ENTITY
and the template dtd is:

- ****\* END LICENSE BLOCK ****\* —>

<!ENTITY

In example #4 (calendar.dtd) output is:
…>

<!ENTITY
and template dtd is:
…>

<!ENTITY

.

moz2po inserts unneeded spaces

Version: 0.8rc2

Record like that…
<!ENTITY copyrightText “©1998-2005 Contributors. All rights
reserved. Mozilla Sunbird, Sunbird, and the
Sunbird logos are trademarks of the Mozilla
Foundation. All rights reserved.”>

…is converted with all (pretty formatting) spaces copied to .pot/.po, while it should be converted
with only one space separating words from “different” lines, like:
“©1998-2005 Contributors. All rights reserved. Mozilla Sunbird, Sunbird, and the Sunbird
logos are trademarks of the Mozilla Foundation. All rights reserved.”

please relicense the translate-toolkit documentation, so that it can be included in Debian

Version: 0.8rc2

Originally posted by Matthias Klose:

the current package in Debian has the documentation removed from the source package.

please relicense the translate-toolkit documentation, so that it can be included
in Debian. The current Debian Free Software Guidelines don’t see the Creative
Commons – attribution share alike license as a free license.

dtd2po doesn't consider empty entity definitions

Version: 0.8rc2

This enhancement request is reported in
http://sourceforge.net/mailarchive/forum.php?thread_id=7333109&forum_id=36744 .
Here is copied text:

In
http://lxr.mozilla.org/seamonkey/source/browser/locales/en-US/chrome/browser/credits.dtd
, there is the following entity:

<!ENTITY credit.translation ""> There is no msgid/msgstr pair generated for it by dtd2po. Possible solution is generating msgid similar to that of entities with same definition. Perhaps prop2po suffers from the same problem. I don"t know how po2dtd and po2prop handle this.

pofilter block words

Version: 0.8rc2

It would be great if we could define a list of words to block for pofilter.

Eg. If your team decides not to translate the OpenOffice.org products: Impress,
Calc, Writer then it woul dbe nice to be able to define those on a per project
basis as being stopword or words that should not be translated.

dtd2po --duplicates=merge (default) is bad

Version: 0.8rc5

The new default —duplicates=merge is disaster: just try it on
http://lxr.mozilla.org/mozilla1.8/source/editor/ui/locales/en-US/chrome/composer/editorOverlay.dtd
and see what happens to accesskeys.

Yes, I admit Mozilla should choose convention and stick to it instead of using
random ways for same thing.

replacing \ with \\

Version: 0.8rc2

Originally posted by David Farning:

running - moz2po 0.8rc4.20051109
against -
firefox 1.0.7 ca-AD.xpi

All occurances of a single backslash that is not preceding a unicode
character are replaced with a double backslash.

example:

diff uBwbEir
ca-AD.xpi.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
ca-AD.xpi.new.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
-
- ca-AD.xpi.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
2004-10-22 08:39:45.000000000 -0500
+
ca-AD.xpi.new.tmp/chrome/locale/browser/bookmarks/bookmarks.properties
2005-11-11 06:25:10.000000000 -0600
@ -7,7 +7,7 @
cmd_bm_newseparator_undo_accesskey=s
cmd_delete=Suprimeix
cmd_bm_delete_undo=Desf\u00E9s suprimeix adre\u00E7a d’inter\u00E8s
-EnterExport=Exporta el fitxer d’adreces d’inter\u00E8s:
+EnterExport=Exporta el fitxer d’adreces d’inter\u00E8s\:
cmd_bm_newbookmark_redo_accesskey=R
cmd_bm_paste_undo=Desf\u00E9s enganxa
bookmarks_title=Gestor d’adreces d’inter\u00E8s
@ -20,7 +20,7 @
addBookmarkPromptMessage=Afegir adre\u00E7a d’inter\u00E8s a “%S” (%S)?
cmd_bm_expandfolder=Expandeix
cmd_bm_newseparator_redo=Ref\u00E9s nou separador
-ShortFindTitle=Cerca: ‘%S’
+ShortFindTitle=Cerca\: ‘%S’
cmd_bm_movebookmark=Mou l’adre\u00E7a d’inter\u00E8s…
cmd_bm_paste_redo_accesskey=R
cmd_bm_drag_undo=Desf\u00E9s arrosega adre\u00E7a d’inter\u00E8s

please see http://www.rtklib.org/roundtriptests/ff_1.0.7_xpi/ca-AD.diff
for more details.

thanks
-dtf

po2dtd: msgstr split strings should not be joined with "\n"

Version: 0.8rc2

Consider the following part of PO file for browser/chrome/help/platformStrings.dtd:

  1. : pref.menuPath

msgid ""
“”win menuPath\“>Tools > Options</”
“span>”unix menuPath\">Edit > "
“Preferences”mac menuPath"
“\”>&brandShortName; > Preferences"
msgstr ""
“”win menuPath\“>Tools > Options</”
“span>”unix menuPath\">Edit > "
“Preferences”mac menuPath"
“\”>&brandShortName; > Preferences"

The current po2dtd converts it to this:

<!ENTITY pref.menuPath ‘Tools > Options</
span>Edit >
Preferences
&brandShortName; > Preferences’>

As you may notice, “..Options</\nspan>..” is not valid XHTML and this leads to
errors when viewing help.

There are other examples as well, such as split URLs.

I think that these split msgstr should not be joined with “\n” but with "", and
dtd2po should not strip definition’s “\n” but preserve it. Patch will be
attached soon.

replacing single quotes with double quotes

Version: 0.8rc2

Originally posted by David Farning:

running - roundtriptests against translation-tools 0.8rc4.20051109
against -
firefox 1.5rc1 da.xpi

Example:

diff uBwbEir da.xpi.tmp/chrome/locale/browser/credits.dtd
da.xpi.new.tmp/chrome/locale/browser/credits.dtd
-
- da.xpi.tmp/chrome/locale/browser/credits.dtd 2005-09-26
19:13:30.000000000 -0500
+ da.xpi.new.tmp/chrome/locale/browser/credits.dtd 2005-11-11
13:48:34.000000000 -0600
@ -3,12 +3,11 @
<!ENTITY credit.core “Kerne udviklingsholdet”>
<!ENTITY credit.gecko “Gecko Layout Engine”>

  1. <!ENTITY credit.thanks “Specielt tak til”>
<!—

-<!ENTITY credit.translation

Translators

  • Name Here
”>
—>
+
<!ENTITY credit.translation “

Dansk oversættelse

  • Søren
    Lønbæk Nygaard Christensen
  • Søren Munk Skrøder
”>

<!ENTITY credit.visuals “Visuel design koordinator”>

diff uBwbEir da.xpi.tmp/chrome/locale/browser/help/platformStrings.dtd
da.xpi.new.tmp/chrome/locale/browser/help/platformStrings.dtd
-
- da.xpi.tmp/chrome/locale/browser/help/platformStrings.dtd 2005-08-19
15:05:32.000000000 -0500
+ da.xpi.new.tmp/chrome/locale/browser/help/platformStrings.dtd
2005-11-11 13:48:36.000000000 -0600
@ -22,18 +22,18 @
class="noWin">Preference’ >
<!ENTITY pref.pluralCaps ’Options<span

  1. class="noWin">Preferences’ >

-<!ENTITY ctrlKey ‘Ctrl’ >
+
+<!ENTITY ctrlKey “Ctrl”>

Please notice in the last line, the replacement of single quotes with
double quotes.

For more information please see
http://www.rtklib.org/roundtriptests/ff_1.5rc1_xpi/da.diff

thanks
-dtf

<!ENTITY % is not recognized by storage/dtd.py

Version: 0.8rc2

CVS MOZILLA_1_8_BRANCH
mozilla/browser/locales/en-US/chrome/overrides/netError.dtd has the following line:

<!ENTITY % brandDTD SYSTEM “chrome://branding/locale/brand.dtd”>
%brandDTD;

Unfortunately, storage/dtd.py doesn’t recognize parameter entities. Simple fix
is attached.

Newline escapes incorrect in oo2po conversion

Version: 0.8rc2

OOo GSI files converted to PO have newline escapes which should be \n appearing
as \n. This doesn’t break the roundtrip but it does make editing the files in
certain PO editor difficult and prevents some test in the editors from picking
up escaping faults.

Here is an example:

./wizards/source/formwizard.po

  1. : dbwizres.src#RID_DB_FORM_WIZARD_START___19.string.text

msgid “The join ‘’ and ‘’ has been selected twice.\nBut
joins may only be used once.”
msgstr ""

The \n should appear as \n

request oo2po --multifile option be abstracted to moz2po

Version: 0.8rc2

Originally posted by David Farning:

Thread Moved from [email protected] for tracking purposes

> One of the remaining problem areas in using rosetta to translate firefox
> is the fact the moz2po creates an individual .po for each .dtd
> or .properties file in the mozilla tree. This, as I understand it, is a
> problem because launchpad uses one .po file per application.
>
> I have been looking at the source code of the translation tools (moz2po
> and po2moz) for the feasibility of creating a single large .po directly
> form moz2po.
>
> Currently moz2po chugs recursively through the mozilla tree looking
> for .dtd or properties files. When one is found a new file of the same
> name with with .po appended is created in the po tree.
>
> It looks pretty straight forward modify the source to append a chunk to
> an existing .big.po instead of creating a new file in the output(po)
> tree.
>
> I have not worked very much with rosetta yet. I am wondering if anyone
> see any obvious short comings to this approach.

oo2po has a —multifile option. It would be an option to abstract that
to cover moz2po. That would sort out that problem for moz2po.

Complete handling of accelerator keys for Mozilla

Depends on:
- [x] #115 .properties files should be able to merge accelerators

Version: 0.8rc2

It seems that they also associate blah.accelerators with blah.title. I assume
this is think like group widgets.

Here is a section of:
./extensions/reporter/chrome/reportWizard.dtd.po

Which shows the linking.

# No ":" at the end
#: reportForm.behind_login.title
msgid "Web site is password-protected"
msgstr "Sayiti ra web ri sirheleriwile hi phasiwedi"

#: reportForm.behind_login.accesskey
msgid "P"
msgstr "P"

#: reportForm.problem_type.title
msgid "Problem Type:"
msgstr "Muxaka wa Xiphiqo:"

#: reportForm.problem_type.accesskey
msgid "T"
msgstr "T"

I have checked in the actual running program. I wouldn’t knwo where to look :(

I think we should have logic that:

  1. match the accelerator against .label, then if that fails
  2. match it against .title

pomerge did not merge some updated entries

Version: 0.8rc2

We’re missing the tools component.

The following itesm were not merged in a pomerge session.

The command:
pomerge -t xh -i xh-9-review-returned -o xh

Merged all entries except one.

Investigarting I could find nothing that would cause it not to be merged. The
location was correct and the msgid also. So their must be some corner case
catching this.

Files to be attached.

Error processing chatzilla.properties

Version: 0.8rc2

Origianlly reported:
https://sourceforge.net/tracker/index.php?func=detail&aid=1240387&group_id=91920&atid=598865

Reported by: https://sourceforge.net/users/lafriks/

Original report:
Error processing chatzilla.properties
moz2po: warning: Error processing: input
extensions/irc/xul/chatzilla.properties, output
po/extensions/irc/xul/chatzilla.properties.po, template
None: Error with string ‘cmd.label-user.format =
\xc2\xab$nickname\xc2\xbb\n’: ‘ascii’ codec can’t
decode byte 0xc2 in position 0: ordinal not in range(128)

It’s in line:
cmd.label-user.format = «$nickname»

truncating strings ending with &apos

Version: 0.8rc2

Originally posted by David Farning:

running - moz2po 0.8rc4.20051109
against -
firefox 1.0.7 af-ZA.xpi

in chrome/locale/global/mozilla.dtd

<!ENTITY mozilla.quote ‘En so uiteidelik het die dier geval en die ongelowiges het gejubbel.Maar alles is nie
verlore nie, want uit die as styg 'n groot voël op.Die
voël het neergekyk op die ongelowiges en het vuurand
donderblitse op hulle neergewerp. Dus was die dier
herskape met sy krag vernieu, en die volgelinge van
Mammon het in verskrikking gebeef.’>
<!ENTITY mozilla.from “van Die Boek van Mozilla, 7:15”>

Has it first ENTITY truncated to
in chrome/local/global.mozilla.dtd.po

msgstr “En so uiteidelik het die dier ”f\“>geval en die
ongelowiges het gejubbel.Maar alles is nie verlore nie, want uit die as
styg ’”

It looks like the &apos is read as a terminating signal.

Please see http://www.rtklib.org/roundtriptests/ff_1.0.7_xpi/af-ZA.diff
for a full report.

thanks
-dtf

moz2po does not parse empty strings

Version: 0.8rc2

Orignally reported as:
https://sourceforge.net/tracker/?func=detail&atid=598865&aid=1244627&group_id=91920

By: https://sourceforge.net/users/mcpatu/

moz2po does not parse empty strings
for example:

http://lxr.mozilla.org/seamonkey/source/browser/locales/en-US/chrome/browser/credits.dtd

<!ENTITY credit.translation "">

when I do moz2po I get:

“error converting original dtd entity credit.translation”

it seems that it’s because the string is empty

Document --duplicatestyle="msgid_comment"

Version: 0.8rc2

Origianl report:
https://sourceforge.net/tracker/index.php?func=detail&aid=1169932&group_id=91920&atid=598867

Reported by:
https://sourceforge.net/users/doko/

Origianl body:
translate-toolkit-0.8rc2

trying to extract POT files for OO.o 1.1.3 and 1.1.4,
it looks like you explicitely have to pass
—duplicatestyle=merge to generate the POT files,
which are laying around i.e. on ftp.linux.cz.

translate.convert.oo2po.py explictely overwrites the
duplicate style to msgid_comment.


Date: 2005-03-30 20:29
Sender: nobody
Logged In: NO

After a number of requests from languages where single words
can have multiple translation (verb/noun) we made
“msgid_comment” the default with “merge” being an option.

I’m not sure I understand the issue you raise:

1) Do you think the msgid_comment behaviour is producing an
error
2) Is non intuitive
3) Should not be the default?


ate: 2005-04-03 15:54
Sender: doko
Logged In: YES
user_id=60903

the duplicate style used for building the PO/POT files found
on ftp.linux.cz, is not the the default one, but no
examples/blogs or any other documentation hint on this
duplicate style. yes, I think it’s non intuitve, I don’t
really care, if it should be the default or not, but it
should be documented.

duplicate comment inserted

Version: 0.8rc2

Originally posted by David Farning:

running - roundtriptest against 0.8rc4.20051109
against -
firefox 1.0.7 en_GB.xpi

in the original chrome/locale/browser/browser.dtd

<!ENTITY mainWindow.title “&brandFullName;”>

<!ENTITY mainWindow.titlemodifier “&brandFullName;”>

<!ENTITY mainWindow.titlemodifiermenuseparator " – ">

<!ENTITY viewsourcetitle.preface "Source for: ">

yet after a roundtrip the following results

<!ENTITY mainWindow.title “&brandFullName;”>

<!ENTITY mainWindow.titlemodifier “&brandFullName;”>

<!ENTITY mainWindow.titlemodifiermenuseparator " – ">

<!ENTITY viewsourcetitle.preface "Source for: ">

Please notice the extra occurance of the line
“<!— LOCALIZATION NOTE : FILE Do not translate accesskey and commandkey
—> "

please see http://www.rtklib.org/roundtriptests/ff_1.0.7_xpi/en-GB.diff
for more details.

thanks
-dtf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.