Hi!
Hm, schade. Das wäre einfach gewesen.
Ich fürchte, dass in der serendipty_event_multilingual.pph noch ein Bug dann sein könnte in der Ersetzungslogik. Die UTF-8 Sonderzeichen im chinesischen Teil scheinen mir den RegEx-Parser durcheinanderzubringen.
Zentrale Stelle im Code dürfte das in Zeile 213 sein:
Code: Select all
$pattern = '/\{\{\!'.$this->neglang($language).'\}\}.*?\{\{--\}\}|\{\{\!'.$language.'\}\}|\{\{--\}\}/s'
Evtl hilft das schon, wenn DU es änderst zu:
Code: Select all
$pattern = '/\{\{\!'.$this->neglang($language).'\}\}.*?\{\{--\}\}|\{\{\!'.$language.'\}\}|\{\{--\}\}/ms';
denn das würde dafür sorgen dass auch Mehrzeilige Patterns evtl richtig ersetzt werden.
Die zweite mögliche Stelle könnte dieser code sein;
Code: Select all
function neglang($lang) {
/* Creates the negation pattern from a two letter language identifier. */
return '[^'.$lang[0].'][^'.$lang[1].']';
}
Hier scheint mir "cn" und "en" in Konflikt zu geraten, weil er im regulären Ausdruck alles ersetzt was im englischen Fall "nicht c und nicht n" ist, bei "en" und "cn" matcht beides mal das "n" am Ende.
Lange Rede, kurzer Sinn: Probier mal den Code zu iersetzen durch:
Code: Select all
function neglang($lang) {
/* Creates the negation pattern from a two letter language identifier. */
return '[^'.$lang.']';
}
das könnte aber evtl Seiteneffekte haben, also wenn möglich mal prüfen ob wenn dass dein ursprüngliches Problem behebt dass nicht andere Probleme aufreisst?
Vielen Dank fürs Testen!!!
Grüße,
Garvin