[development] Re: [drupal:dries] /modules contact.module
steven at acko.net
Sun Jan 15 20:17:27 UTC 2006
>So the idea is to allow for changes in mark-up via .po files?
Not at all. The main rule is to avoid markup in translatable strings,
unless it would split up text that needs to be together for proper
translation. Unfortunately there are some cases where people disagree.
What everyone happily agrees on is links:
bad: t("You may change permissions on the %accesscontrol page.") with
%accesscontrol => l(t('access control'), 'admin/access', ...).
good: t("You may change permissions on the <a href="%url">access
control</a> page.") with %url => url('admin/access');
The link caption is part of the sentence, so it should be translated
along with it. In some languages, the page title 'access control' would
be in a nominative, while "on the access control page" would be in a
dative (or equivalent).
The same rule applies to similar short inline elements, like <strong> or
For block level elements where the inside is a stand-alone string, there
is also no debate:
bad: t('<h2>Some title</h2>');
good: '<h2>'. t('Some title') .'</h2>';
The help texts are a different story. An important point is whether
different paragraphs of a help text belong together in one t(...) or
not. If they do, then the '<p>' tags must be part of the translatable
string (otherwise it would contain unmatched '</p><p>' inside it). If
they don't, each paragraph can have its own '<p>'. t(...) .'</p>' call.
But unless I'm mistaken, Stefan's proposal a while ago was not just
about moving the '<p>' outside the t() but also out of hook_help() and
into the theme. This is a different issue and it was rejected because of
multi-paragraph help; it would have to contain unmatched '</p><p>' as well.
More information about the development