(double-posted in wp-testers and wp-polyglots, since it seems to me it might be of interest to both audiences)
--- This is about the Update Post button in the Publish section. By default, it is displayed through HTML, but it seems that its title string is re-assigned through JS at one time. Case in point: In French, "Update Post" is translated "Mettre à jour l'article", but for typographical correctness (in the spirit of our founding father, Matt's Curly Quotes patch for b2/cafelog :-) ), we chose to translate it "Mettre à jour l’article". It works great: the apostrophe (ok, "right single quote", but it reads better than ') is there in the button and all the strings where it's needed (and there are quite a few). BUT, if I click the Edit link from the "Published on..." line to open the scheduling tool, and then hit cancel, the button text gets updated to "Mettre à jour l’article" litterally before the tool closes: the ’ is no longer turned into a quote, it's just there. I'm guessing this is due to JS not parsing HTML entities. Could it be made to? Or should I forget about typographical correctness altogether? --- Additionally, and in the same typographical spirit, we chose to translate the date() arguments from "g:i:s a" to "G \\h i \\m\\i\\n s \\s", as it should be (http://fr.wikipedia.org/wiki/Heure_(temps)#Typographie_de_l.27heure). Typographically, as you can see, we need spaces between the time value and its symbol, and that brings to parts being sent to the next line. In this particular example (http://trac.wordpress.org/browser/trunk/wp-admin/admin-ajax.php#L722), I thought I solved it by using HTML entities for non-breaking spaces: "G \\h i \\m\\i\\n s \\s", quite a mouthful, sure, but it seems to work. But once the current edit is autosaved (using Ajax, hence JS/DOM update to the string), the string is rendered like this: "Brouillon enregistré à 11&11b51p;h&11b51p;27&11b51p;min&11b51p;51&11b51p;s". The "Last edited by %1$s on %2$s at %3$s" line does work as expected, though: it renders "Dernière modification par admin, le 9 novembre 2008 à 11 h 26 min 45 s", which is correct. The "M j, Y @ G:i|Publish box date format" line I had to trick-out, since it wouldn't display the 's as expected. After many trials and errors, I came up with "j F Y à\\&\\n\\b\\s\\p\\;G\\&\\n\\b\\s\\p\\;\\h\\&\\n\\b\\s\\p\\;i\\&\\n\\b\\s\\p\\;\\m\\i\\n" - yes, escaping each non-date characters, so each character from the 's. That gets tough to read, but at least it seems to work: it displays... Publié le : 27 octobre 2008 à 11 h 01 min Modifier ...and not... Publié le : 27 octobre 2008 à 11 h 01 min Modifier The "j F, Y @ G:i|revision date format" line also gets the "j F Y à\\&\\n\\b\\s\\p\\;G\\&\\n\\b\\s\\p\\;\\h\\&\\n\\b\\s\\p\\;i\\&\\n\\b\\s\\p\\;\\m\\i\\n" treatement, even if it's not as much needed, but it works. -- That's why it seems the issue stems from JavaScript not taking HTML entities into account - or rather, taking them too literally. Isn't there a way to have to work properly? Like adding an entities-filter to all JS string-updating code? This would be mucho-safe, since locale translations use entities kinda everywhere: "word ?", "word :", "« %s »" (or even, "« %s »"), etc. We pride ourselves in having a typographically-correct translation, and I would hate to have to revert back - although in this case, we're just talking of a couple exceptions here and there, which I can live with, sure, but still :-) -- Xavier Borderie _______________________________________________ wp-polyglots mailing list [email protected] http://lists.automattic.com/mailman/listinfo/wp-polyglots
