Smarty primarily relies on ucfirst()
which is affected by the current locale set in PHP. I have been unable to find information on exactly how this affects the capitalization functions (ucfirst, strtolower, strtoupper, etc), but you can try setting your locale to en_US.UTF-8
(what works on my server) and see how that affects the output.
view locale:
var_dump(setlocale(LC_CTYPE, null));
change locale:
setlocale(LC_CTYPE, "en_US.UTF-8");
Update
Some research leads to a few archives where a customer modifier is written to either pick the local for the modifier or a custom function to set the locale from the template file.
Source 1
Source 2
I haven't been able to reproduce this. Could it be the font you are using (some tail the l
)? Do you have code examples?
With Smarty v2
{assign value="let go" var="go"}
{$go|capitalize}
<br/>
{assign value="allow me" var="me"}
{$me|capitalize}
Outputs
Let Go
<br/>
Allow me