[development] translation for the installer?
Gabor Hojtsy
gabor at hojtsy.hu
Fri Jul 14 21:35:44 UTC 2006
On Fri, 14 Jul 2006, Jeremy Andrews wrote:
>>> Where you run into a problem is when there's shared
>>> messages, ie as is desired by the requirements api which
>>> could also be used by Drupal itself when enabling
>>> modules, as well as by the installer during initial
>>> setup. Any text displayed by Drupal is already wrapped
>>> in t(), so I think the logical thing to do is to expand t
>>> () to support both reading mappings from text fiels in
>>> addition to from the database. Then t() could be
>>> consistently used in all code, including the installer.
>>
>> t() is called at least several dozen times per page, any
>> complication should be avoided. The installer is a one time
>> thing and should not impact the running of the site.
>
> Yes, but my point is that there are instances where the same
> message will need to displayed by the installer and by Drupal
> core. All messages displayed by drupal core are wrapped in
> t(). So either t() needs to support non-database
> translations, or...?
>
> A specific example of where this could happen is in the
> forthcoming requirements api.
I think of the installer as that small piece of code setting up the
database. After the database is set up, Drupal is loaded fully (with the
database in there, module tables created and possibly a translation
imported). So we only need a special case for the "without database" phase
of the installer.
Since parsing a big complete PO file for a translation is a major pain for
every installer HTTP request, the parsed PO file should only contain the
strings relevant for the installer (which are irrelevant later anyway). To
reliably extract these strings for a translation template file, it is a
lot easier to have a differently named function. Although since common.inc
is not loaded in install time, t() is not defined, so we could reuse the
t() name with a different function definition, and this would not affect
t() runtime performance [just in case someone finds a way to reliably
extract install time t() calls].
Am I right in thinking that the requirements API based stuff will load
after the database is ready, so that a full bootstrap can be made and
normal translation support utilized?
Gabor
More information about the development
mailing list