Code Monkey home page Code Monkey logo

pootle's Introduction

logo Pootle

Join the chat at https://gitter.im/translate/pootle Build Status Code Health Test Coverage Requirements

Docs | Changes | Issues | Community Support | Contributing | Development Channel

Pootle is an online translation and localization tool. It works to lower the barrier of entry, providing tools to enable teams to work towards higher quality while welcoming newcomers.

Pootle is a Server

Pootle is written in Python using the Django framework and therefore can be installed on any web server that supports serving WSGI applications.

A number of translation projects for a number of languages can be hosted on Pootle. Teams can manage their files, permissions, projects, and translate on-line. Files can be downloaded for offline translation.

Installation

⚠️ Only works with Python2

pip install --pre Pootle

Don't forget to read the installation guide for important details.

Copying

Pootle is released under the General Public License, version 3 or later. See the LICENSE file for details.

pootle's People

Contributors

alaaosh avatar alexanderlaw avatar arky avatar chhitz avatar chrisoelmueller avatar claudep avatar clouserw avatar dupuy avatar dwaynebailey avatar friedelwolff avatar imankulov avatar jason-p-pickering avatar jleclanche avatar johennes avatar julen avatar kant avatar khaledhosny avatar kscanne avatar lawlor avatar llimeht avatar mixaill avatar nihathrael avatar peterbe avatar pfennig59 avatar phlax avatar requires avatar safaalfulaij avatar sumpfralle 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pootle's Issues

Integrate with POEdit

Version: 0.6.3

Add support to POEdit to be able to translate files on a Pootle site directly

Create ZIPs for XLIFF, CSV and other formats

Version: 0.6.3

Suggested by Samuel Murray on translate-discuss-af:

Currently you can go to any directory level in Pootle and download a ZIP of all
PO files to allow you to work on the files using an offline tool.

However, only PO files can be downloaded in a ZIP archive you cannot download a
ZIP of XLIFF files or a ZIP of CSV files.

Please add the ability to download ZIP archives of all files in Pootle.

Uploading file without browsing causes traceback

Version: 0.6.3

To reproduce:
In a new language in a new project, click “upload file” without first browsing.

Traceback (most recent call last):
File “/home/fwolff/python//lib/python/jToolkit/web/simplewebserver.py”, line
172, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/home/fwolff/python//lib/python/jToolkit/web/simplewebserver.py”, line
369, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/home/fwolff/download/translate/src/Pootle/users.py”, line 167, in handle
return self.getpage(pathwords, session, argdict)
File “/home/fwolff/download/translate/src/Pootle/pootle.py”, line 264, in getpage
return indexpage.ProjectIndex(project, session, argdict)
File “/home/fwolff/download/translate/src/Pootle/indexpage.py”, line 267, in
init
self.handleactions()
File “/home/fwolff/download/translate/src/Pootle/indexpage.py”, line 326, in
handleactions
raise ValueError(self.localize(“Cannot upload file, no file attached”))
ValueError: Cannot upload file, no file attached

error registering username with non-ascii characters

Version: 0.6.3

Pootle 0.6.3-20050626 and jToolkit 0.6.5 give this traceback upon
attempting to register a new user with a username that contains
non-ascii characters (I used u’m\xd0\x9c\xd0\x91’ as my username).

2005-06-30 15:28:33: Traceback (most recent call last):
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
170, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
367, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/users.py”, line 161, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/pootle.py”, line 177, in getpage
return self.registerpage(session, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/users.py”, line 297, in registerpage
displaymessage, redirecturl = self.handleregistration(session, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/users.py”, line 237, in
handleregistration
userexists = session.loginchecker.userexists(username)
File “/usr/lib/python2.3/site-packages/jToolkit/web/session.py”, line 329, in
userexists
return hasattr(self.users, username)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 1-2:
ordinal not in range(128)

matt

Cannot add multiple files in same project

Version: 0.6.3

Originally posted by Simos Xenitellis:

I want to add several .po files for a Project under Pootle, using the Web
interface. However, Pootle expects only one .po per Project, as it restricted
the filename to “el.po” (or “el_GR.po”), as shown by the error message:

“ValueError: invalid GNU-style file name mytest.el.po: must match ‘el.po’ or
‘el[_-][A-Z]{2,3}.po’”

Therefore, I might use Pootle in the wrong way?

I want to add a new project called “GNOME Documentation”, including all the
files from http://kvota.net/doc-l10n/by-modules.html
Should’t I be able to upload these from the graphical interface in the same project?

Upload of Serbian pootle.po file fails

Version: 0.6.3

When uploading the Serbian pootle.po file the following backtrace occurs. The
jToolkit.po file uploaded succesfully. My first guess is that this may be to do
with plural forms. Here’s the traceback

127.0.0.1 – dwayne [11/Jul/2005 08:17:09] “POST /sr/pootle/index.html HTTP/1.1”
500 -
2005-07-11 08:17:10: Traceback (most recent call last):
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 170, in
serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 367, in
handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/var/www/pootle/src/Pootle/users.py”, line 161, in handle
return self.getpage(pathwords, session, argdict)
File “/var/www/pootle/src/Pootle/pootle.py”, line 279, in getpage
return indexpage.ProjectIndex(project, session, argdict)
File “/var/www/pootle/src/Pootle/indexpage.py”, line 265, in init
self.handleactions()
File “/var/www/pootle/src/Pootle/indexpage.py”, line 326, in handleactions
self.project.uploadpofile(self.session, self.dirname, uploadfile.filename,
uploadfile.contents)
File “/var/www/pootle/src/Pootle/projects.py”, line 389, in uploadpofile
origpofile.mergefile(newpofile, session.username)
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 633, in mergefile
self.mergeitem(oldpo, newpo, username)
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 611, in mergeitem
unchanged = po.unquotefrompo(oldpo.msgstr, False) ==
po.unquotefrompo(newpo.msgstr, False)
File “/var/www/pootle/src/translate/storage/po.py”, line 75, in unquotefrompo
return joiner.join([extractpoline(line) for line in postr])
File “/var/www/pootle/src/translate/storage/po.py”, line 66, in extractpoline
extracted =
quote.extractwithoutquotes(line,‘"’,‘"’,backslash,includeescapes=isnewlineortabescape)0
File “/var/www/pootle/src/translate/misc/quote.py”, line 98, in
extractwithoutquotes
for pos in range(len(source)):
TypeError: len() of unsized object

Number of plurals not working

Version: 0.9

Originally posted by Ramon Casha:

In my language (Maltese – mt), the number of plurals is set to 4, but in the
translation screens I’m only prompted for plural forms 0 and 1.

TypeError: unsubscriptable object when export in xliff format

Version: 0.6.3

Originally posted by (unknown user):

Using a po2xliff test.po test.xlif works fine, but using todays version of
Pootle and translatino tools this is the error the I get on the logs:

2005-11-18 02:10:22: 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 167, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/pootle.py”, line 318, in getpage
etag, filepath_or_contents = project.convert(pofilename, extension)
File “/usr/lib/python2.3/site-packages/Pootle/projects.py”, line 1084, in convert
contents = converterclass().convertfile(pofile)
File “/usr/lib/python2.3/site-packages/translate/convert/po2xliff.py”, line
221, in convertfile
xlifffile.addtransunit(filename, transunitnode, True)
File “/usr/lib/python2.3/site-packages/translate/convert/po2xliff.py”, line
48, in addtransunit
return self.slow_addtransunit(filename, transunitnode, createifmissing)
File “/usr/lib/python2.3/site-packages/translate/convert/po2xliff.py”, line
69, in slow_addtransunit
bodynode = self.getbodynode(filenode, createifmissing=createifmissing)
File “/usr/lib/python2.3/site-packages/translate/convert/po2xliff.py”, line
96, in getbodynode
return bodynodes0
TypeError: unsubscriptable object

Encoding issue when viewing suggestions (UnicodeDecodeError)

Version: 0.6.3

Originally posted by Simos Xenitellis:

When I try to view the pending suggestions I get a UnicodeDecodeError
from Python.

I am running
Pootle 0.6.3.20050630
jToolkit 0.7
translate-toolkit 0.8rc3.20050630

I use the Greek language, meaning that this error may not appear in a language
that is latin-based (english, etc) since iso-8859-1 characters can also be valid
UTF-8 as well.

The traceback is:
Exception happened during processing of request from (‘127.0.0.1’, 51807)
Traceback (most recent call last):
File “/usr/lib/python2.4/SocketServer.py”, line 222, in handle_request
self.process_request(request, client_address)
File “/usr/lib/python2.4/SocketServer.py”, line 241, in process_request
self.finish_request(request, client_address)
File “/usr/lib/python2.4/SocketServer.py”, line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
72, in init
File “/usr/lib/python2.4/SocketServer.py”, line 521, in init
self.handle()
File “/usr/lib/python2.4/BaseHTTPServer.py”, line 314, in handle
self.handle_one_request()
File “/usr/lib/python2.4/BaseHTTPServer.py”, line 308, in handle_one_request
method()
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
240, in do_GET
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
193, in serve_request
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
221, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
365, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/templateserver.py”, line
94, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/server.py”, line 328, in
sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 345,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 406,
in getbody
File “/usr/lib/python2.4/site-packages/Pootle/pagelayout.py”, line 194, in
getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 123,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 123,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 123,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 123,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/table.py”, line 129,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/table.py”, line 119,
in getrowcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/table.py”, line 38, in
gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 132,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 52,
in gethtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 116,
in getcontents
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 123,
in getcontentshtml
File “/usr/lib/python2.4/site-packages/jToolkit/widgets/widgets.py”, line 129,
in getcontentshtml
File “/usr/lib/python2.4/encodings/utf_8.py”, line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: ‘utf8’ codec can’t decode bytes in position 33-34: invalid data

You cannot add project to the "Template" language

Version: 0.6.3

If you define and create a new project. You can never access the template
language in order to add POT files. You should be able to initiate POT files in
this “language” by accessing it from the:
http://pootle.wordforge.org/projects/XXXX/admin.html
pages.

Update from CVS does not work

Version: 0.6.3

Originally posted by Cecilia:

To reproduce:
- choose a project
- choose a language
- click on “Update” label
I get:
TypeError: matchitems() got an unexpected keyword argument ‘usesources’

See attached traceback:

Traceback (most recent call last): File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line

173, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
445, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/users.py”, line 167, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/pootle.py”, line 264, in getpage
return indexpage.ProjectIndex(project, session, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/indexpage.py”, line 267, in init
self.handleactions()
File “/usr/lib/python2.4/site-packages/Pootle/indexpage.py”, line 339, in
handleactions
self.project.updatepofile(self.session, self.dirname, updatefile)
File “/usr/lib/python2.4/site-packages/Pootle/projects.py”, line 421, in
updatepofile
matches = origpofile.matchitems(currentpofile, usesources=False)
TypeError: matchitems() got an unexpected keyword argument ‘usesources’

Pootle doesn't like non-ascii language names

Version: 0.6.3

Originally posted by Matt Chisholm:

I’m using
Pootle-0.6.3.20050806
translate-toolkit-0.8rc3.20050806
jtoolkit-0.7

If the following bug is a result of these antique versions, then
please chide me about it and I’ll shut up. (I haven’t had time to
upgrade the version of pootle on the BitTorrent Translation Project
servers.) However, the traceback is coming ultimately from jToolkit,
which is still up-to-date on my system at version 0.7.

I was wondering if Pootle supported non-ascii language names, so I
changed
“Armenian”
to
u’\xd5\x80\xd5\xa1\xd5\xb5\xd5\xa5\xd6\x80\xd5\xa5\xd5\xb6’
(the correct language name for Armenian).

Upon reloading the page, this traceback came back:

Exception happened during processing of request from (‘192.168.2.33’, 43470)
Traceback (most recent call last):
File “/usr/lib/python2.3/SocketServer.py”, line 222, in handle_request
self.process_request(request, client_address)
File “/usr/lib/python2.3/SocketServer.py”, line 241, in process_request
self.finish_request(request, client_address)
File “/usr/lib/python2.3/SocketServer.py”, line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
72, in init
BaseHTTPServer.BaseHTTPRequestHandler.init(self, request, client_address
, server)
File “/usr/lib/python2.3/SocketServer.py”, line 521, in init
self.handle()
File “/usr/lib/python2.3/BaseHTTPServer.py”, line 324, in handle
self.handle_one_request()
File “/usr/lib/python2.3/BaseHTTPServer.py”, line 318, in handle_one_request
method()
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
240, in do_GET
self.serve_request(path, argdict)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
193, in serve_request
self.sendpage(thepage)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
221, in sendpage
response = self.server.sendpage(self, thepage)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
365, in sendpage
return self.jtoolkitserver.sendpage(req, thepage)
File “/usr/lib/python2.3/site-packages/jToolkit/web/templateserver.py”, line 8
8, in sendpage
builtpage = widgets.PlainContents(self.buildpage(template, thepage.templatev
ars, req.session.localize))
File “/usr/lib/python2.3/site-packages/jToolkit/web/templateserver.py”, line 1
01, in buildpage
response = template.expand(context, innerid=innerid, localize=localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 261, in e
xpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 194, in t
alexpand
repeatnodes.append(self.talexpand(srcnode, context, localize, repeatvar))
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 194, in t
alexpand
repeatnodes.append(self.talexpand(srcnode, context, localize, repeatvar))
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 247, in t
alexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/usr/lib/python2.3/site-packages/jToolkit/xml/taldom.py”, line 224, in t
alexpand
attrvalue = str(self.taleval(attrexpr, context))
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 10-16: ord
inal not in range(128)

Mail not sent to registered users

Version: 0.7a1

Originally posted by Oscar Manuel Gómez Senovilla:

Registered users don’t receive email for activation code. Manual user activation
as admin of that user has to be performed as workaround.

Problem with generation of MO file

Version: 0.6.3

Originally posted by Simos Xenitellis:

I tried the July 1st snapshot.
I get the traceback:

2005-07-03 02:09:39: Traceback (most recent call last):
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
172, in serve_request
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
369, in handle
File “/usr/lib/python2.4/site-packages/Pootle/users.py”, line 167, in handle
File “/usr/lib/python2.4/site-packages/Pootle/pootle.py”, line 358, in getpage
File “/usr/lib/python2.4/site-packages/Pootle/projects.py”, line 1085, in getmo
File “/usr/lib/python2.4/site-packages/Pootle/pootlefile.py”, line 174, in getmo
AttributeError: ‘module’ object has no attribute ‘pocompile’

Pootle gives ascii codec error when setting goal name

Version: 0.6.3

Originally posted by Simos Xenitellis:

The traceback is
2005-07-10 21:29:31: Traceback (most recent call last):
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
172, in serve_request
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
369, in handle
File “/usr/lib/python2.4/site-packages/Pootle/users.py”, line 167, in handle
File “/usr/lib/python2.4/site-packages/Pootle/pootle.py”, line 272, in getpage
File “/usr/lib/python2.4/site-packages/Pootle/indexpage.py”, line 266, in init
File “/usr/lib/python2.4/site-packages/Pootle/indexpage.py”, line 346, in
handleactions
File “/usr/lib/python2.4/site-packages/Pootle/projects.py”, line 294, in
setgoalfiles
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-5:
ordinal not in range(128)

It happens when you try to create a goal with a non-latin1 name (for example,
Greek).

Change localize() calls with var substitution to calls that pass vars to jToolkit

Version: 0.7a1

jToolkit has been patched to allow us to fallback to English if the localised
string has the incorrect variable count (bug #28)

We now need to change all instance of localize() that involve variable
substitution to the form that passes the variables to jToolkit.

Probably best to do this after the templating work.

Improve per product language support

Version: 0.7a1

Originally posted by Oscar Manuel Gómez Senovilla:

In the language page for a product, there isn’t option for deleting a language.
Also, the rest of the options in the same aren’t clear, and I’m still not sure
of what the checkbox does, along with the “update from templates” link. Maybe a
“title” tag in the link or a more verbose text could help (since I don’t know
the function of each link).

Better granularity in admin rights

Version: 0.6.3

Hello everybody,

In the (Greek) Pootle server I have the ADMIN rights. I saw that I
could remove some rights from other ADMINs. As I have seen in CMSs it
would be better if someone (better two users) had the right of the
superadmin and only he could appoint other users to admins.
In a few words, we should add and distinguish the rights of a
superadmin from the admin.

Regards,
Petros Velonis

Show comments in translation mode

Version: 0.6.3

In translation, it is very useful (or sometimes even critical) to show developer
comment. They may contain important information on how to translate some
strings. Take this example from gnome-panel, where translators are proven to do
it wrong REPEATEDLY:

  1. . Translators:
  2. . This controls whether the GNOME panel clock should display time in 24 hour mode
  3. . or 12 hour mode by default. The only valid values for this are “24” and
  4. . “12”. If your locale uses 24 hour time notation, translate this to “24”.
  5. . If your locale uses 12 hour time notation with am/pm, translate this to “12”.#.
  6. . Do NOT translate this into anything else than “24” or “12”. For example,
  7. . if you translate this to “۲۴” or anything else that isn’t “24” or
  8. . “12”, things will not work.
  9. .
  10. : ../applets/clock/clock.schemas.in.h:11

msgid “24”

  1. msgstr “24”

If translators notice the comment, they wouldn’t translate it into some
erroneous value. Even though whether translators are careless is another issue,
providing some means (link, link title, dialog etc) to notify them can be quite
essential in some cases.

Make Pootle HTML 4.01 Transitional compliant

Version: 0.6.3

The aim is to eventually make Pootle and jToolkit XHTML compliant.

This first stage is to make Pootle HTML 4.01 Transitional compliant. Changes to
Pootle have already been committed to CVS. The attached patch makes changes to
jToolkit to ensure compliance and makes capitalisation changes that will be
needed for XHTML.

Some change I was unsure of – in these I commented the original. These relate
to the invalid tags: type=‘td’ and type=‘button’

Can't add user by admin interface

Version: 0.6.3

Originally posted by Oscar Manuel Gómez Senovilla:

When adding a user through the admin interface, and using the upper box, no
matter what I do, I always get “ValueError: Please set the users full name or
leave it blank”, and the user is not added.

If I use the lower box, no error, but the user is not added.

Error searching for a term that is not present in the po file

Version: 0.6.3

[From Matt Chisholm]

In Pootle-0.6.3.20050626, starting from a Pootle URL of this format:

http://$SERVER/$LL/$PROJECT/$LL.po?translate=1&view=1

I can cause this traceback by searching for a term that is not present in
my po file:

2005-06-30 19:37:36: Traceback (most recent call last):
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
170, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.3/site-packages/jToolkit/web/simplewebserver.py”, line
367, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.3/site-packages/Pootle/users.py”, line 161, 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 65, in
init
pagelinks = self.getpagelinks(“?translate=1&view=1”, rows)
File “/usr/lib/python2.3/site-packages/Pootle/translatepage.py”, line 91, in
getpagelinks
lastitem = min(pofilelen-1, self.firstitem + pagesize – 1)
TypeError: unsupported operand type(s) for +: ‘NoneType’ and ‘int’

When segments does not exist, return errorstr in non-debuging mode

Version: 0.7a1k

Originally posted by Alberto Escudero:

I am not sure if consider this a bug but a “debugging” code :)

  1. Write an error out, in case this is a real problem instead of an absence of an

index
errorstr = str(e).strip() + “\n” + self.errorhandler.traceback_str()

What other kind of errors are expected?

Make it a debug option

2006-04-01 18:09:13: could not open index, so going to create, error follows:
java.io.FileNotFoundException:
/home/aep/test4/po/ooo/sw/.poindex-ooo-sw/segments (No such file or directory)
Traceback (most recent call last):
File “/usr/local/lib/python2.4/site-packages/jToolkit/data/indexer.py”, line
304, in init
tempreader = indexer.IndexReader.open(self.storeDir)
JavaError: java.io.FileNotFoundException:
/home/aep/test4/po/ooo/sw/.poindex-ooo-sw/segments (No such file or directory)

po file are reported as empty (wrong attributes in pootlefile.py)

Version: 0.6.3

Originally posted by Carlo Vanini:

I’m using Pootle-0.6.3.20060201 with jToolkit-0.7.7 and
translate-toolkit-0.9a1.20060201 and python-2.4 on OpenBSD.

The initial problem was that pootle reported there were 0 strings in the .po
file I uploaded (no matter what project or language). Then uploading another
time the file the merging process revealed the error:

File “/home/pootle/pootle/Pootle/pootlefile.py”, line 557, in matchitems for newpo in newpofile.pounits:

AttributeError: ‘pofile’ object has no attribute ‘pounits’

replacing any occourence of ‘pounits’ with ‘units’ in Pootle/pootlefile.py
solved the problems.

running PootleServer ---trace causes traceback

Version: 0.6.3

Originally posted by Cecilia:

to reproduce:
- run “PootleServer — trace”
- open browser on http://localhost:8080/
- I get “UnboundLocalError: local variable ‘space’ referenced before assignment”
- If I refresh the page, it works

All urls should be relative to the baseurl

Version: 0.6.3

Originally posted by Oscar Manuel Gómez Senovilla:

Several static pages and images use a URL depending on the root of the site,
instead of the URL specified in the baseurl parameter in pootle.prefs, causing
not to be seen.

AttributeError: 'module' object has no attribute 'setcell'

Version: 0.6.3

Originally posted by Matt Chisholm:

This traceback happens when loading
/admin/languages.html in the latest Pootle, 0.6.3.20050806

2005-08-07 17:12:27: 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 247, in
getpag\e return adminpages.LanguagesAdminPage(self.potree, session,
self.instance)
File “/usr/lib/python2.3/site-packages/Pootle/adminpages.py”, line 72, in
i\nit
contents = [homelink, indexlink, self.getlanguages()]
File “/usr/lib/python2.3/site-packages/Pootle/adminpages.py”, line 141, in
ge\tlanguages
projects.setcell(rownum, colnum, table.TableCell(optionwidget))
AttributeError: ‘module’ object has no attribute ‘setcell’

And here is a patch:


Pootle/adminpages.py

+ Pootle/adminpages.py
@ -138,7 +138,7 @
optionwidget = widgets.Select(optiondict,
options=optiondict[“selectoptions”])
else:
optionwidget = widgets.Input(optiondict)
- projects.setcell(rownum, colnum, table.TableCell(optionwidget))
- languages.setcell(rownum, colnum, table.TableCell(optionwidget))
colnum += 1
submitbutton = widgets.Input({"type":“submit”, “name”:“changelanguages”,
value(“Save changes”)})
languageform = widgets.Form([languages, submitbutton], {"name":
“languages”, “action”:""})

Granting rights to a non-existing user returns error

Version: 0.7a1

Originally posted by Oscar Manuel Gómez Senovilla:

When adding a user for granting rights on a language, apart from being
case-sensitive (not bad, but there could be a suggestion if there’s a non-case
sensitive match before throwing error), a code error is returned:

2006-03-30 23:52:08: Traceback (most recent call last):
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
173, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
445, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/users.py”, line 167, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/pootle.py”, line 266, in getpage
return adminpages.TranslationProjectAdminPage(self.potree, project, session,
argdict)
File “/usr/lib/python2.4/site-packages/Pootle/adminpages.py”, line 447, in
init
raise IndexError(self.localize(“Cannot set rights for username %s – user
does not exist”) % username)
IndexError: Cannot set rights for username xxxxx – user does not exist

I suggest to show a formal page saying something like “the user doesn’t exist”,
and proper navigation links.

Improve options and admin navigation

Version: 0.7a1

Originally posted by Oscar Manuel Gómez Senovilla:

When I’m told to tell the pootle version I’m using, it’s hard to find the link
for the about url. Also, admin options like user rights managements are hard to
find and assign.

Searching with non-ascii text causes crash

Version: 0.7a1

Searching using this test: ٷٷٷٺٻḒḓḼḽṄṅṉṊṰṱ (non-ascii text including Venda)
causes the following traceback:

2006-03-24 03:13:32: Traceback (most recent call last):
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
173, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
445, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/users.py”, line 167, in handle
return self.getpage(pathwords, session, argdict)
File “/usr/lib/python2.4/site-packages/Pootle/pootle.py”, line 273, in getpage
return translatepage.TranslatePage(project, session, argdict, dirfilter)
File “/usr/lib/python2.4/site-packages/Pootle/translatepage.py”, line 50, in
init
self.finditem()
File “/usr/lib/python2.4/site-packages/Pootle/translatepage.py”, line 260, in
finditem
self.pofilename, self.item = self.project.searchpoitems(self.pofilename,
self.lastitem, search).next()
File “/usr/lib/python2.4/site-packages/Pootle/projects.py”, line 782, in
searchpoitems
if pogrepfilter.filterelement(thepo):
File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 85, in
filterelement
if self.matches(unquotedid): return True
File “/usr/lib/python2.4/site-packages/translate/tools/pogrep.py”, line 60, in
matches
found = teststr.find(self.searchstring.decode(“UTF-8”)) != -1
File “/usr/lib/python2.4/encodings/utf_8.py”, line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-14:
ordinal not in range(128)

This relates to changes made to the command line version of pogrep. We need the
ability to tell pogrep what encoding the search test is in

User "nobody" can remove other's rights

Version: 0.6.3

If someone gives the user “nobody” admin rights for a project in Pootle, any
anonymous user can remove all rights from any other user (nobody, default, or
any specific user). With “assign” rights a similar situation can result.

Suggested improvement: remove “assign” and “administrate” rights for the user
“nobody” under all circumstances so that it can never be assigned to “nobody”.

Allow quick jump in translate mode

Version: 0.6.3

Currently pootle expects translators to translate sequentially, from entry 1 to
the last one. However, translators may not always work in such manner; for
example, if first part of strings are difficult to understand, translators may
choose to translate latter part, then revisit first part again later. It would
be much more convenient to allow jumping to anywhere in translate mode, which is
partially implemented in view mode.

In view mode, people are permitted to jump to previous page, next page or last
page. If same can be implemented in translate mode, and even bigger jump is
allowed, including allowing translator to enter page number manually, that
would be more convenient, like:

Start | Previous ?? | Items ?? to ?? of ??? | Next ?? | End
-———
Jump to entry: 100 | 200 | 300 | 400 | 500 | |

  1. -———

The text entry field is for entering entry number manually.

Ability to erase from interface .po files from projects

Version: 0.6.3

Originally posted by Simos Xenitellis:

We use the std filestyle, where several .po files exist for the same language in
a single project.

We would like to be able to get files translated as usual and once completed to
disappear from the project. One way to do this is to delete them, from the Web
interface.

We are able to add .po files to projects, we would also like to take them off,
both tasks to be achieved from the web interface, so no need for SSH access, etc.

Capability for versions in projects

Version: 0.6.3

Originally posted by Oscar Manuel Gómez Senovilla:

This is a RFE. I think that products (projects) should have a way to create
versions inside themselves, before passing to the language. So, I think instead
of the current structure po/$project/$language, it should be something like
po/$project/$version/$language.

There are strong reasons for this. Take that, for instance, you have to choose
among one of the existing in
ftp://ftp.linux.cz/pub/localization/OpenOffice.org/devel/POT/2.0.1/, and it’s no
good to create different projects and not to take profit of previous work.

A related issue (not sure if it’s for another bug, or not a bug at all) is to
import a translation of a previous version of the same language.

Pootle uses live strings with incorrect variable counts and fuzzy markings

Version: 0.6.3

Here is a traceback where the translation did not contain the correct number of
variables. Mostly these are strings that are marked fuzzy in the PO file. So
two issues here:

1) Pootle.po strings marked fuzzy should be ignored
2) We need to check on the variable counts before using a translation that
contains variables. Maybe we simply use it and if it fails we trap the error
and use the English instead.

Anyway here is the traceback:

27.0.0.1 – esodan [01/Aug/2005 10:49:21] “GET /es/ HTTP/1.1” 500 -
2005-08-01 10:49:21: Traceback (most recent call last):
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 170, in
serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 367, in
handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/var/www/pootle/src/Pootle/users.py”, line 161, in handle
return self.getpage(pathwords, session, argdict)
File “/var/www/pootle/src/Pootle/pootle.py”, line 269, in getpage
return indexpage.LanguageIndex(self.potree, languagecode, session)
File “/var/www/pootle/src/Pootle/indexpage.py”, line 158, in init
projectlinks = self.getprojectlinks()
File “/var/www/pootle/src/Pootle/indexpage.py”, line 183, in getprojectlinks
projectitems = [self.getprojectitem(projectcode) for projectcode in
projectcodes]
File “/var/www/pootle/src/Pootle/indexpage.py”, line 197, in getprojectitem
stats = pagelayout.ItemStatistics(self.describestats(project, projectstats,
numfiles))
File “/var/www/pootle/src/Pootle/pagelayout.py”, line 317, in describestats
wordstats = self.localize(“d/%d words (%d%) translated”) %
(translatedwords, totalwords, percentfinished)
TypeError: not all arguments converted during string formatting

Updating languages in project causes traceback

Version: 0.6.3

To reproduce:
Create new project, click on “Update languages”

Traceback (most recent call last):
File “/home/fwolff/python//lib/python/jToolkit/web/simplewebserver.py”, line
172, in serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/home/fwolff/python//lib/python/jToolkit/web/simplewebserver.py”, line
369, in handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/home/fwolff/download/translate/src/Pootle/users.py”, line 167, in handle
return self.getpage(pathwords, session, argdict)
File “/home/fwolff/download/translate/src/Pootle/pootle.py”, line 185, in getpage
return adminpages.ProjectAdminPage(self.potree, projectcode, session, argdict)
File “/home/fwolff/download/translate/src/Pootle/adminpages.py”, line 379, in
init
raise ValueError(“No languagecode given in doupdatelanguage”)
ValueError: No languagecode given in doupdatelanguage

"nobody" and "default" should not be valid usernames

Version: 0.7a1

Users can be created with the names “nobody” or “default” which can interfere
with rights management in a project.

For example, if the user “nobody” is created, and admin rights (say) are
assigned to him, the anonymous user (any user not logged in) receives admin
rights for that project. Such a user will perhaps also not receive the rights of
the default user.

Error when submiting a string change

Version: 0.6.3

Originally posted by Oscar Manuel Gómez Senovilla:

When submitting after modifiying a string, I always get:

TypeError: encode() argument 1 must be string, not None

However, the strings seems to have submitted correctly.

The Admin page does not load due to encoding (ascii) error

Version: 0.6.3

Originally posted by Simos Xenitellis:

When accesing the admin page (/admin/), Pootle reports:

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-5:
ordinal not in range(128)

The trace reveals:
Exception happened during processing of request from (‘127.0.0.1’, 42306)
Traceback (most recent call last):
File “/usr/lib/python2.4/SocketServer.py”, line 222, in handle_request
self.process_request(request, client_address)
File “/usr/lib/python2.4/SocketServer.py”, line 241, in process_request
self.finish_request(request, client_address)
File “/usr/lib/python2.4/SocketServer.py”, line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
72, in init
File “/usr/lib/python2.4/SocketServer.py”, line 521, in init
self.handle()
File “/usr/lib/python2.4/BaseHTTPServer.py”, line 314, in handle
self.handle_one_request()
File “/usr/lib/python2.4/BaseHTTPServer.py”, line 308, in handle_one_request
method()
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
240, in do_GET
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
193, in serve_request
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
221, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/simplewebserver.py”, line
365, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/templateserver.py”, line
88, in sendpage
File “/usr/lib/python2.4/site-packages/jToolkit/web/templateserver.py”, line
101, in buildpage
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 263, in expand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 195, in talexpand
repeatnodes.append(self.talexpand(srcnode, context, localize, repeatvar))
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 249, in talexpand
targetchild = self.talexpand(srcchild, context, localize)
File “/var/www/meta/usr/lib/python2.4/site-packages/jToolkit/xml/taldom.py”,
line 205, in talexpand
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-5:

  1. ordinal not in range(128)

The offending fragment of code is:
content = str(self.taleval(parameter, context))
1. ``parameter’’ has the value:
“option/title”
2. ``context’’ has the value:
“{’session’: {’status’: u’logged in as simos‘, ’issiteadmin’: True,
‘isopen’: True}, ‘options’: [{’name’: ‘option-homepage’, ‘value’: ‘home/’,
‘title’: u’\u0391\u03c1\u03c7\u03b9\u03ba\u03ae
\u03a3\u03b5\u03bb\u03af\u03b4\u03b1’}, {’name’: ‘option-description’, ‘value’:
‘\xce\x91\xcf\x85\xcf\x84\xcf\x8c\xcf\x82
\xce\xb5\xce\xaf\xce\xbd\xce\xb1\xce\xb9 \xce\xbf
\xce\x95\xce\xbb\xce\xbb\xce\xb7\xce\xbd\xce\xb9\xce\xba\xcf\x8c\xcf\x82
\xce\x95\xce\xbe\xcf\x85\xcf\x80\xce\xb7\xcf\x81\xce\xb5\xcf\x84\xce\xb7\xcf\x84\xce\xae\xcf\x82
\xce\x95\xce\xbe\xce\xb5\xce\xbb\xce\xbb\xce\xb7\xce\xbd\xce\xb9\xcf\x83\xce\xbc\xce\xbf\xcf\x8d
\xce\x9b\xce\xbf\xce\xb3\xce\xb9\xcf\x83\xce\xbc\xce\xb9\xce\xba\xce\xbf\xcf\x8d
\xce\xbc\xce\xad\xcf\x83\xcf\x89
\xce\x94\xce\xb9\xce\xb1\xce\xb4\xce\xb9\xce\xba\xcf\x84\xcf\x8d\xce\xbf\xcf\x85’,
‘title’: u’\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae’}, {’name’:
‘option-baseurl’, ‘value’: ‘/’, ‘title’: u’URL \u0392\u03ac\u03c3\u03b7\u03c2’},
{’name’: ‘option-title’, ‘value’:
u’\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03cc Pootle’, ‘title’:
u’\u03a4\u03af\u03c4\u03bb\u03bf\u03c2’}], u’option’: {’name’:
‘option-homepage’, ‘value’: ‘home/’, ‘title’:
u’\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03a3\u03b5\u03bb\u03af\u03b4\u03b1’}}”

Allow languages in ab-CD style

Version: 0.7a1

Originally posted by Oscar Manuel Gómez Senovilla:

Currently, it seems that any form other than two letters code is not allowed.
That is good for many cases or products, but at least most mozilla products
follow this convention. Also, it seems that the separator can be “-” or “_”.

Adding Greek translations for jToolkit and Pootle

Version: 0.6.3

Originally posted by Simos Xenitellis:

The Greek translations are available at:
http://translate.os.cs.teiath.gr/el/pootle/jToolkit.po
http://translate.os.cs.teiath.gr/el/pootle/pootle.po

jToolkit crashes if "title" in pootle.prefs has non-latin1 characters

Version: 0.6.3

Originally posted by Simos Xenitellis:

If a user edits pootle.prefs and adds a “title” with non-ascii characters
(such as Unicode), then jToolkit gives an error.
Specifically, it says the ascii codec could not convert a character starting at
position 0, “0xce”. Unicode UTF-8 characters with codepoint over 128 start with
“0xce”.

The patch:

diff ur jToolkit-0.7-old/jToolkit/web/server.py jToolkit-0.7/jToolkit/web/server.py
-
- jToolkit-0.7-old/jToolkit/web/server.py 2005-06-26 21:39:28.000000000 0300
+
+ jToolkit-0.7/jToolkit/web/server.py 2005-07-01 21:46:50.000000000 +0300
@ -54,7 +54,7 @

def gettitle(self, session): """returns the title for the login page"""

- return session.localize(“Login for %s”) %
self.getinstancename(session.instance)
- return session.localize(“Login for %s”) %
self.getinstancename(unicode(session.instance))

def handleextraargs(self, extraargs): """process the arguments given, and add neccessary args to a hidden widgets list"""

Uploaded PO files should update the PO header on Pootle

Version: 0.6.3

> Hi everybody :)
>
> I’ve just updated my translation on the BitTorrent Pootle, and I
> notice that the header section of the file is not filled out
> correctly. It does not include the plurals header for my language,
> nor the translator identity in the first section, nor the translation
> team.
>
> How automatic is this in Pootle?

A bit of experimentation shows that uploading a po file to Pootle
seems to just preserve the header section on the po file that is
already on the Pootle server, and ignore what’s in the uploaded file.

I have no idea whether this is the correct behavior or not.

matt

Error accessing Polish Gaim .PO or .CSV file

Version: 0.6.3

The following traceback was found (the problem cleared up later):
127.0.0.1 – - [02/Jul/2005 06:35:40] “GET /pl/gaim/pl.po HTTP/1.1” 500 -
2005-07-02 06:35:40: Traceback (most recent call last):
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 170, in
serve_request
thepage = self.server.handle(self, self.pathwords, argdict)
File “/var/www/demo/jSuite.py/jToolkit/web/simplewebserver.py”, line 367, in
handle
return self.jtoolkitserver.handle(req, pathwords, argdict)
File “/var/www/pootle/src/Pootle/users.py”, line 161, in handle
return self.getpage(pathwords, session, argdict)
File “/var/www/pootle/src/Pootle/pootle.py”, line 303, in getpage
pofile = project.getpofile(pofilename)
File “/var/www/pootle/src/Pootle/projects.py”, line 950, in getpofile
pofile.pofreshen()
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 137, in pofreshen
self.readpofile()
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 121, in readpofile
self.classifyelements()
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 420, in classifyelements
if self.getsuggestions(item):
File “/var/www/pootle/src/Pootle/pootlefile.py”, line 477, in getsuggestions
thepo = self.transelements[item]
IndexError: list index out of range

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.