...->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.