...->loc_('This is a text.');
...->loc_npx( 'appointment', 'This is {dates :num} date.', 'This are {dates :num} dates.', 1, dates => 1, );
...->loc_m( 'Send email to <strong>[_1]</strong>.', # ^^^^ 'Max Mustermann <mustermann@example.com>', );
Bei Maketext kann man dem Platzhalter das Attribut :html nicht geben.
...->loc_mp( 'appointment', 'This are [*,_1,date,dates].', # ^^^ 1, );
Bei Maketext ist man mit dem Plural etwas eingeschränkt.
Prinzipiell kann man HTML auch mit übersetzen, jedoch ist es 2. Wahl nach plain Text.
JavaScript wird auch mit übersetzt.
...->loc_('... <a href="foo.de" on...="...">...</a> ...');
Man läuft Gefahr HTML und JavaScript mit der Übersetzung zu zerstören.
HTML geht unwahrscheinlicher kaputt, weil primitiv. JavaScript geht nicht kaputt.
Die Lösung ist hier HTML::Zoom und leeres a-Tag, weil es erst während dem Rendern konfiguriert wird. (Patrick Grämer)
<span class="...">... <a>...</a> ...</span>
->replace_content( \$ctx->loc_('<a>...</a>') ) ->then ->collect({ filter => sub { $_ ->select('a') ->set_attribute('href' => 'foo.de'); }, passthrough => 1, })
<script type="text/javascript"> var language_locales = { "LC_NUMERIC":{ "decimal_point":".", "thousands_sep":",", "grouping":["3","3"] }, "LC_MONETARY":{ "n_sep_by_space":"0", "currency_symbol":"£", "p_sign_posn":"1", "negative_sign":"-", "int_curr_symbol":"GBP ", "frac_digits":"2", "p_sep_by_space":"0", "positive_sign":"", "n_cs_precedes":"1", "p_cs_precedes":"1", "int_frac_digits":"2", "mon_grouping":["3","3"], "n_sign_posn":"1", "mon_thousands_sep":",", "mon_decimal_point":"."} }; var language_tag = "i-default"; $(function() { $.datepicker.setDefaults($.datepicker.regional['en-GB']);
Locale::TextDomain::OO::Extract
Locale::TextDomain::OO::Process
https://metacpan.org/.../example/21_process_utf-8.pl
Das Beispiel sagt schon alles, wie der Ablauf ist. Wenn man mit mo-Files arbeitet, muss man am Ende noch ausführen:
$process->spew(mo => "../2nd_${language}_${domain}_clean.mo");
Locale::Utils::Autotranslator
Locale::Utils::Autotranslator
https://metacpan.org/.../example/01_my_translator_utf-8.pl
Das Beispiel zeigt auch, wie die Platzhalter beim Übersetzungstool ankommen.