in reply to Re: locating specific function calls
in thread locating specific function calls
Ok, let tell me a little more about the plan.
When your program needs to support multiple languages, then you can use gettext. Its use has various syntaxes, of which Locale::TextDomain seems to be the nicest: __x("found {count} files", count => 6). To use gettext(), the string needs to be translated into all supported languages.
After translation, these messages have to go somewhere. Of course, you can simply die/warn/croak, but a generally applicable module is not sure about the destination of the output. More complex applications have to apply nasty tricks to catch and handle "die()" in third-party code. With Log::Dispatch and Log::Log4perl you can help the message find its way cleaner, but do not translate
So, what I want to do, is link the translation framework with the distribution network. Any piece of distributed text must be translated, and therefore I would like to avoid the explicit call to __x(). I try to write this:
with "compile-time" parameter checking. In stead of the uncheckeduse Log::Report textdomain => 'my-domain'; report trace => "{count} files", count => 10;
use Log::Report textdomain => 'my-domain'; report trace => __x("{count} files", count => 10);
In the major module of a set of related modules, you will be able to say:
etc: I do not want to repeat configuration information in each pm file. And I do not want to limit the whole application (containing multiple distributions) to one domain. The default use of the current modules have these limitations: I wish to change the default.use Log::Report textdomain => 'my-domain' , directory => '/usr/share/locale';
In the "main" script, you must be able to say something like:
use Log::Report destinations => [ CRITICAL => 'syslog' , 'ERRORS-' => 'die' , 'TRACE,INFO' => 'ignore' ];
Be aware: all syntax still under development, and will certainly be clearer.
To come back to my original question: I want to simplify the use and automatically check the "report()" calls without running the program.
|
---|