Commit Graph

213 Commits (f695bdd843520729aa73cd063c22f1ebd1a01f1f)

Author SHA1 Message Date
intrigeri df82b5e62a po: when possible, disable use of Text::WrapI18N in po4a; else warn about too old po4a
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-16 15:07:05 +01:00
intrigeri 7919e70282 po(todo): more test results
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-15 23:06:11 +01:00
intrigeri 3ba976d1d3 po: pages in underlay dirs are not translatable
Fixes build break due to read-only underlay dirs, e.g. basewiki.

Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-15 23:04:57 +01:00
intrigeri 7ca396d6ee po/todo: some testing results
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-15 21:32:22 +01:00
intrigeri 48de7f9c7b po: more security-related reports
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-15 20:01:54 +01:00
intrigeri c8e3136d00 po/todo: update
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 18:59:07 +01:00
intrigeri 226c61f1aa po/todo: update
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 17:25:54 +01:00
intrigeri fae3cef41a po(formbuilder_setup): remove the rename/remove buttons on slave pages
This has to be done after the rename/remove plugins have added
their buttons, so we set this hook to be run last.

The canrename/canremove hooks already ensure this is forbidden
at the backend level, so this is only UI sugar.

Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 16:02:25 +01:00
intrigeri 226abb373a po/todo: update
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 15:14:49 +01:00
intrigeri 586e6e3362 po/todo: remove silly ideas.
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 14:18:40 +01:00
intrigeri 724dbabc4a po: do not allow to create pages of type po
The main reason to do so is to bypass the "favor the type of linking page on
page creation" logic, which is unsuitable when a broken link is clicked on
a slave (PO) page.

Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 14:09:34 +01:00
intrigeri 12178c2a64 po/todo: added better implementation ideas
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 13:43:08 +01:00
intrigeri 07c6a6a1fc po/todo: remove completed item
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 12:50:51 +01:00
intrigeri f0e2ce4360 po/todo: added bugreport about new page's type
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-02 12:14:55 +01:00
intrigeri 6fe1e3b66d po/todo: update
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 23:36:57 +01:00
intrigeri c821cee108 po(cansave): check PO validity using new isvalidpo function
... because Po4a's parser does not care about malformed PO data.
Use gettext's msgfmt program instead.

Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 23:12:08 +01:00
intrigeri 09d0321f15 po(TODO): the plugin code will need to be gettextized, at some point
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 22:18:27 +01:00
intrigeri b24f236dfa po: use the new canrename hook to prevent translation renames in the CGI
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 16:52:43 +01:00
intrigeri 5852f03efa po(todo): test results for markup languages support, thoughts about renaming/deleting
Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 16:18:37 +01:00
intrigeri 85f865b5d9 po: added postscan hook, to make pages depend on the pages linking to them
... so that nicepagetitle hook's effects, such as translation status displayed
in links, are updated when the linked page changes.

The replacement of 'my %backlinks' with 'our %backlinks' in Render.pm made this
work: previously, every postscan hook was called with an almost empty
%backlinks, which defeated all my attempts to implement this feature.

This feature hits performance a bit. Its cost was quite small in my real-world
use-cases (a few percents bigger refresh time), but could be bigger in worst
cases. Time will tell.

NB: this hack could also be used by my meta branch. It may even be a ikiwiki
optional feature.

Signed-off-by: intrigeri <intrigeri@boum.org>
2009-01-01 01:08:10 +01:00
intrigeri bbeb9a4a14 po/todo: reflect current link-related work status
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-12-31 17:10:33 +01:00
intrigeri c0c6b8d79e po/todo: reflect current status of links-related work
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-12-31 15:23:59 +01:00
intrigeri 149a3e65a7 po: fix redirect after edit, using a somehow tricky hack
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-12-31 13:02:48 +01:00
intrigeri bd10381103 po: delete translations of deleted master pages
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-12-31 11:47:18 +01:00
intrigeri 40324175aa po/todo: added test results
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-13 00:54:46 +01:00
intrigeri 190c641c8a po(otherlanguages): return pages that should exist
... instead of already existing ones.
This fixes the "missing otherlanguages links on master pages just created via
the CGI" bug.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-12 23:27:30 +01:00
intrigeri 10c4e858b8 po(change): flush Memoize cache, to fix bug after rename/remove
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-12 21:18:48 +01:00
intrigeri 776be85a22 po/todo: first pass of robustness tests, added todo for remove/rename
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-12 20:13:40 +01:00
intrigeri 86c58119e0 po/todo: added robustness tests that have to be done
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-12 15:54:20 +01:00
intrigeri eba2dee941 po: compute internal links from a slave page relative to its master page
e.g. a link appearing on a slave page links to its masterpage's subpages.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-12 15:04:50 +01:00
intrigeri b19d0d3d24 Merge commit 'upstream/po' into prv/po 2008-11-12 01:08:57 +01:00
Joey Hess 3937e1fb16 patch and a few comments 2008-11-11 18:33:04 -05:00
intrigeri ef536f46bd po/todo: bug report about linking to subpages from translation pages
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 23:08:13 +01:00
intrigeri b7a4e5a51c po/todo: fixed internal links
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 22:29:41 +01:00
intrigeri 18c086ec04 po/todo: added note about backlinks not being updated
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 20:04:58 +01:00
intrigeri 4c45dfce19 po/todo: update
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 17:30:19 +01:00
intrigeri f0e796d9a1 po(change): fix uninitialized variables when running IkiWiki::refresh()
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 16:04:40 +01:00
intrigeri 43a1d36378 po: added HOMEPAGEURL template variable, documented when to use it
Hopefully all links should now be consistent with the chosen linking behavior,
but who knows...

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 15:27:39 +01:00
intrigeri 18331e9261 po/todo: added bug report for weird Perl warnings
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 15:25:23 +01:00
intrigeri 6a9dafdc1d po/todo: updated page formats, broken links, documentation
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 05:17:26 +01:00
intrigeri f2dc003cfb po/doc: first fuzzy-testing results for po4a and msgmerge
Chapter #1, in which we learn po4a could help to DoS ikiwiki + po,
whereas msgmerge seems reluctant to cooperate.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-11 03:23:02 +01:00
intrigeri e397888a77 po/doc: more security research results
Apart of the fuzzying part, I'm done with what I can do without help.

The "Running po4a on untrusted content" section needs at least a quick glance
from an experimented Perl programmer.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-10 23:52:50 +01:00
intrigeri 44bb872a97 po/todo(security): many research results
... and some questions to Joey (hint: look for your name)

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-08 22:08:50 +01:00
intrigeri 41d13673c6 po/todo++: support other file formats than markdown
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-08 12:21:54 +01:00
intrigeri 86edd539f4 po/todo: mostly security research
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-08 02:13:37 +01:00
intrigeri 3c6c129100 po: started research on gettext/po4a security
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-08 00:08:44 +01:00
intrigeri a0ac346079 po: finished backlinks implementation
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-07 22:17:54 +01:00
intrigeri 34ab884242 po: implemented linking/backlinks specification for po_link_to=negotiated
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-07 21:27:00 +01:00
intrigeri 61a01d3388 po: write detailed specification of wished backlinks behaviour
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-07 16:33:28 +01:00
intrigeri daa04ae436 po: fix link to homepage in special case
... by wrapping IkiWiki::urlto in order to workaround hard-coded
/index.$config{htmlext}, which is wrong when usedirs=0 and po_link_to=current
and translatable homepage

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 17:28:04 +01:00
intrigeri 8b001dbb00 po: redesign (once more) automatic POT/PO files update
Now use the change hook to update these files, check them into VCS, and trigger
IkiWiki::refresh as needed. The needsbuild hook's help was required to prevent
infinite looping.

This more rigorous way of doing this fixes recentchanges (that was previously
not updated in some cases), and probably is a better long-term solution than the
two previously tested ones.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 15:54:55 +01:00
intrigeri c8cc03c824 po: doc/todo update
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 14:22:54 +01:00
intrigeri 802be94104 po: use prep_writefile before creating any files in refreshpot and refreshpo
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 14:17:33 +01:00
intrigeri a4cbfce763 po: reported parentlinks misbehaviour in special case
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 14:12:05 +01:00
intrigeri 769be3d48e po: po_link_to is safe, and fallbacks to a working value if needed
warnings are displayed if it is set to an invalid or incompatible value
(e.g. po_link_to=negotiated and disabled usedirs)

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 13:47:09 +01:00
intrigeri 419de149a6 po: mark po_translatable_pages as a safe configuration setting
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 13:29:48 +01:00
intrigeri 34afa2c07d po: po_master_language and po_slave_languages are safe config settings
... and check their validity in checkconfig

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 13:26:45 +01:00
intrigeri c96dd00480 po: added license and copyright
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 13:01:33 +01:00
intrigeri 1f54c13ec2 Merge commit 'upstream/po' into prv/po
Conflicts:

	IkiWiki/Plugin/po.pm
	doc/plugins/po.mdwn

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-06 12:28:31 +01:00
Joey Hess fe580240d4 need license 2008-11-05 15:02:22 -05:00
Joey Hess b609ae76ed response 2008-11-05 14:58:35 -05:00
Joey Hess 6fbe214d91 fixed one security problem, two more need review 2008-11-05 14:47:50 -05:00
Joey Hess 7e95723dad avoid hitting the shell with system() 2008-11-05 14:45:45 -05:00
Joey Hess b76ee8a96d minor wording improvements/changes 2008-11-05 14:22:02 -05:00
intrigeri bd2dd8c603 po plugin: more detailed backlinks todo item
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-05 12:50:42 +01:00
intrigeri 225e21f6c5 po plugin: redesign refresh mechanism after master page update
manually triggering IkiWiki::refresh() was at least dubious, and more or less
buggy (it randomly broke the whole backlinks feature); thinking a bit more to
add the necessary bits to @needsbuild seems like a better way. don't play with
ikiwiki's internals if not absolutely needed.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-04 23:32:32 +01:00
intrigeri bc5b875de8 po plugin: remove broken parentlinks for home page's translations
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-04 20:05:21 +01:00
intrigeri 61c4129aaa po plugin: updated doc/todo
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-04 19:24:37 +01:00
intrigeri 78155454a4 po plugin: updated doc+todo
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-03 01:21:06 +01:00
intrigeri c7fbcf6c5e po plugin: slave pages link to the master's discussion page
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-03 00:52:27 +01:00
intrigeri c0d1f2cace po plugin: updated todo / doc
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-02 23:10:59 +01:00
intrigeri c696239b6b po plugin: added TODO about charset/encoding in new translations
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-11-02 18:07:01 +01:00
intrigeri 654adc105e po plugin: todo++
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-20 14:30:22 +02:00
intrigeri 8211910566 po plugin: set every configuration item to unsafe
We will check later which ones are actually safe enough for websetup.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-19 17:19:42 +02:00
intrigeri b4316fd941 po plugin: doc fix
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-19 00:15:44 +02:00
intrigeri f096a9d798 po plugin: added ISTRANSLATION and ISTRANSLATABLE template variables
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-19 00:05:13 +02:00
intrigeri 72dc1a5f02 po plugin: todo++
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-19 00:04:35 +02:00
intrigeri a0deb3038c po plugin: do not allow msgmerge to create backup files
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 19:18:22 +02:00
intrigeri d0c4d5061d po plugin: todo++
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:13 +02:00
intrigeri 7b7865150f po plugin: add correct dependencies on pages using OTHERLANGUAGES
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:13 +02:00
intrigeri 93b316f7c1 po plugin: todo++
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:13 +02:00
intrigeri 1d76762517 po plugin: initial implementation of automatic POT/PO update
The updated or created PO files are put under version control.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri c852203be8 po plugin: todo++ more security checks needed
... when creating new files.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri 58c77a01f7 po plugin: create missing POT/PO files in needsbuild hook
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri f42cf38076 po plugin: documentation work
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri 6add615928 po plugin: added and documented PERCENTTRANSLATED template variable
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri 1a670d3aca po plugin: make translation percentage available in OTHERLANGUAGES loop
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri d8c2800674 po plugin: documented custom PageSpec tests, reorganized doc a bit
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:12 +02:00
intrigeri 6f858cd59f po plugin: todo update wrt. newly translatable pages
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri d07c6b707d po plugin: todo++ : security note about system()
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri 27bfe18f51 po plugin: updated todo wrt. automatic POT/PO update/creation
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri d4f787ef52 po plugin: make any slave page dependent on the corresponding master page
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri 9332457e6c po plugin: todo++: create POT/PO when the plugin is enabled
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri 37222492a5 po plugin: updated doc to reflect current status of automatic PO files update
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:11 +02:00
intrigeri a28559798a po plugin: created OTHERLANGUAGES template loop
It currently only provides basic translations/master pages links.
Updated documentation accordingly.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri 32cc0b336a po plugin: po_slave_languages is a hash, rather than a hash of hashes
The latter seems to be unsupported by ikiwiki config system.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri d39f69da7f po plugin: fix formatting in documentation
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri ae827a43f8 po plugin: build %translations at scan time
... so that we can consider it as complete at preprocess time

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri 458ccebdd3 po plugin: added *.pot to wiki_file_prune_regexps
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri e163b037bf po plugin: move translatable pages to setup file, refactor
Replaced [[!translatable]] directive with po_translatable_pages setting.

Moved istranslatable/istranslation code to helper functions leaving place for
future caching and/or memoization. The PageSpec functions still work.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:10 +02:00
intrigeri 886f35153b po plugin: added note about not publishing .pot files
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri b852b0655c po plugin: added todo note about optimization
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri 23dccccdf2 po plugin: update doc (move finished item from todo)
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri 79d6f52d30 po plugin: implemented po_link_to=current
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri fdc7974b2a po plugin: implemented po_link_to=negotiated
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri 9c25f5cfe9 po plugin: rewrite internal linking specification
(not implemented yet)

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:09 +02:00
intrigeri cc4736d9ee po plugin: clearer file naming specs
i.e. clarify that master pages do not have to obey a special naming convention,
so that migration from/to this plugin is smooth

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:08 +02:00
intrigeri 24726f2836 po plugin: add one more pagespec function to the specification
(not implemented yet)

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:08 +02:00
intrigeri a926f9840e po plugin: linking behavior specification
(no implementation yet)

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:08 +02:00
intrigeri bd50ba3e83 po plugin: switch to page.LL.html naming convention
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:08 +02:00
intrigeri 968106cc80 po plugin: enhance documentation
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:07 +02:00
intrigeri 45d08022bb po plugin: name rendered master pages like slave ones (page.html.LL)
Apache's content negotiation transparently redirects any old URL (page.html) to
the new one, depending on the client preferred language (i.e. a German browser
will be fed with page.html.de). Transition to this naming convention is then
really smooth.

This naming convention allows one to deliberately display the master page, even
if her browser is configured for another language.

Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:07 +02:00
intrigeri fae57e807a po plugin: initial documentation, along with huge TODO list
Signed-off-by: intrigeri <intrigeri@boum.org>
2008-10-18 15:49:07 +02:00