Mercurial > p > roundup > code
annotate roundup/scripts/roundup_gettext.py @ 7800:2d4684e4702d
fix: enhancement to history command output and % template fix.
Rather than using the key field, use the label field for descriptions.
Call cls.labelprop(default_to_id=True) so it returns id rather than
the first sorted property name.
If labelprop() returns 'id' or 'title', we return nothing. 'id' means
there is no label set and no properties named 'name' or 'title'. So
have the caller do whatever it wants (prepend classname for example)
when there is no human readable name. This prevents %(name)s%(key)s
from producing: 23(23).
Also don't accept the 'title' property. Titles can be too
long. Arguably we could: '%(name)20s' to limit the title
length. However without ellipses or something truncating the title
might be confusing. So again pretend there is no human readable name.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 12 Mar 2024 11:52:17 -0400 |
| parents | 32a5a54536b5 |
| children | d1c29284ccd9 |
| rev | line source |
|---|---|
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2 # |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
3 # Copyright 2004 Richard Jones (richard@mechanicalcat.net) |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
5 """Extract translatable strings from tracker templates""" |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4766
diff
changeset
|
7 from __future__ import print_function |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
8 import os |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
9 import sys |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
10 |
|
4766
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
11 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
12 # --- patch sys.path to make sure 'import roundup' finds correct version |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
13 import os.path as osp |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
14 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
15 thisdir = osp.dirname(osp.abspath(__file__)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
16 rootdir = osp.dirname(osp.dirname(thisdir)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
17 if (osp.exists(thisdir + '/__init__.py') and |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
18 osp.exists(rootdir + '/roundup/__init__.py')): |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
19 # the script is located inside roundup source code |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
20 sys.path.insert(0, rootdir) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
21 # --/ |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
22 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
23 |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
24 from roundup.i18n import _ |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
25 from roundup.cgi.TAL import talgettext |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
26 |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
27 # name of message template file. |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
28 # i don't think this will ever need to be changed, but still... |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
29 TEMPLATE_FILE = "messages.pot" |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
30 |
| 6044 | 31 |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
32 def run(): |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
33 # return unless command line arguments contain single directory path |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
34 if (len(sys.argv) != 2) or (sys.argv[1] in ("-h", "--help")): |
| 6044 | 35 print(_("Usage: %(program)s <tracker home>") % |
| 36 {"program": sys.argv[0]}) | |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
37 return |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
38 # collect file paths of html templates |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
39 home = os.path.abspath(sys.argv[1]) |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
40 htmldir = os.path.join(home, "html") |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
41 if os.path.isdir(htmldir): |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
42 # glob is not used because i want to match file names |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
43 # without case sensitivity, and that is easier done this way. |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
44 htmlfiles = [filename for filename in os.listdir(htmldir) |
| 6044 | 45 if os.path.isfile(os.path.join(htmldir, filename)) |
| 46 and filename.lower().endswith(".html")] | |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
47 else: |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
48 htmlfiles = [] |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
49 # return if no html files found |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
50 if not htmlfiles: |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4766
diff
changeset
|
51 print(_("No tracker templates found in directory %s") % home) |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
52 return |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
53 # change to locale dir to have relative source references |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
54 locale = os.path.join(home, "locale") |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
55 if not os.path.isdir(locale): |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
56 os.mkdir(locale) |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
57 os.chdir(locale) |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
58 # tweak sys.argv as this is the only way to tell talgettext what to do |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
59 # Note: unix-style paths used instead of os.path.join deliberately |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
60 sys.argv[1:] = ["-o", TEMPLATE_FILE] \ |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
61 + ["../html/" + filename for filename in htmlfiles] |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
62 # run |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
63 talgettext.main() |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
64 |
| 6044 | 65 |
|
2803
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
66 if __name__ == "__main__": |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
67 run() |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
68 |
|
a7b755646ffd
Extract translatable strings from tracker templates
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
69 # vim: set et sts=4 sw=4 : |
