aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/some_strings_are_not_internationalized.mdwn
blob: a1b38257a5f5fdf66c383f47cf1ca3b64dc7fd80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
A lot of strings in ikiwiki are hardcoded and not taken for locales resources through gettext. This is bad because ikiwiki is thus difficult to spread for non-english users.

I mean that, for instance in CGI.pm, line like:

`my @buttons=("Save Page", "Preview", "Cancel");`

should be written as

`my @buttons=(gettext("Save Page"), gettext("Preview"), gettext("Cancel"));`

> Yes, these need to be fixed. But note that the localised texts come back
> into ikiwiki and are used in various places, including plugins.
> Including, possibly, third-party plugins. So localising the buttons would
> seem to require converting from the translations back into the C locale
> when the form is posted. --[[Joey]]

>> Wouldn't it be more easy to change all calls to the corrects ones (including in plugins) ?
>> For instance in the same file (CGI.pm): `elsif ($form->submitted eq gettext("Save Page")) {`.
>> That way no conversion to the C locale is needed.
>> gettext use should just be publicized in documentation (at least in [[plugins/write]]). --[[bbb]]

>>> It would be easy, but it could break third-party plugins that hardcode
>>> the english strings. It's also probably less efficient to run gettext
>>> over and over. --[[Joey]]

In standards templates things seems wrongly written too. For instance in page.tmpl line like:

`<li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>`

should be written as

`<li><a href="<TMPL_VAR EDITURL>" rel="nofollow"><TMPL_VAR EDITURL_TEXT</a></li>`

with EDITURL_TEXT variable initialized in Render.pm through a gettext call. 

Am I wrong ?

> No, that's not a sane way to localise the templates. The templates can be
> translated by making a copy and modifying it, or by using a tool to
> generate .mo files from the templates, and generate translated templates
> from .po files. (See [[todo/l10n]] for one attempt.) But pushing the
> localisation of random strings in the templates through the ikiwiki
> program defeats the purpose of having templates at all. --[[Joey]]

If not I can spend some time preparing patches for such corrections if it can help.

-- [[/users/bbb]]