Localization status under 1.6.4, and one thank-you
First of all, thank you for fixing the stray text domains. Under 1.6.3 there
were still 49 translation calls sitting in the fluent-cart-bricks-blocks
domain, which is never loaded, so those strings could not be translated at all.
Under 1.6.4 there are none left. That one is closed, and it is good to see.
I re-measured the other five points from my August post against FluentCart
1.6.4 and FluentCart Pro 1.6.4 on our staging site. All five are unchanged,
so here they are again, short.
1. Apply and More carry two meanings each and have no msgctxt
8 calls of Apply and 2 of More, none of them with a context argument.
Apply is both "apply a coupon" (German: EinlΓΆsen) and "apply a filter"
(German: Anwenden), and a single msgid cannot be both. Adding _x() with a
context would solve it without touching the English text.
2. Country names are sorted by their English spelling
app/Services/Localization/i18n/countries.php returns 250 __() calls in
English alphabetical order, and the select list keeps that order. On a German
store the list therefore starts with Afghanistan, Γgypten, Albanien, where
Γgypten belongs under Γ. Sorting the labels after translation, with the site
locale's collation, would fix this for every language.
3. The order heatmap reports country names, not ISO codes
DashBoardReportService.php:225 emits 'name' => $countryName. The map
component matches on that string, so a translated name no longer matches.
Passing the ISO code alongside the label would let the map keep working in any
language.
4. text-transform: capitalize in the shipped CSS
30 occurrences in the core plugin, 1 in Pro. German capitalizes nouns but not
adjectives or verbs, so capitalize turns a correct German label into an
incorrect one, and there is nothing the translation can do about it. We switch
it off from our plugin, which is why we noticed.
5. Currency symbol and amount are joined with no separator
In assets/chunks/CurrencyFormatter.js all three places build the string as
${sign}${amount} or ${amount}${sign}. German writes the amount first and
the symbol after it, separated by a non-breaking space: 19,99 β¬, not 19,99β¬.
The bundled framework already knows the idea: Support/Number.php:86 has a
space_with_currency flag in toCurrency(), but nothing calls it, because the
formatting happens in JS.
On dates and times: those are not part of this post. The beta build I
received on 11 September covers them and the 1.6.4 release does not, so I am
giving that feedback in the support channel instead.
Everything above was measured on our staging install running 1.6.4 and Pro
1.6.4. Glad to test a patch there whenever it helps.