2015-05-12 2 views
3

У меня нет опыта с жидкостью.Капитализация имени с использованием Liquid, не работает со специальными символами

Я работаю над шаблонами бюллетеней электронной почты, и у меня есть жидкий массив, который выводит имя пользователя и использует его в капитале. Моя проблема в том, что эта компания норвежская, и у нас есть специальные символы, такие как æ, ø и å. Когда они задействованы, код также заглатывает эту букву: например, Jørgen (вместо Йоргена), есть ли какой-либо путь вокруг этого?

У меня также есть сценарий, когда у пользователя есть двойное имя, разделенное тире; Ян-Томас, это получает Ян-Томас. В любом случае, чтобы включить это также в код жидкости?

Приветствия {% if user.name.size> 0%} {{user.name | split: "" | первая | capitalize}} {% else%} traveler {% endif%}.

ответ

1

Поскольку жидкость является рубин на основе языка шаблонный Я думаю, что это имеет такое же ограничение на capitalize как строки класса Руби:

случае преобразование является эффективным только в ASCII регионе.

http://ruby-doc.org/core-2.2.2/String.html#method-i-capitalize

+0

Благодаря Эрик. Не могли бы вы помочь мне со Второй частью? –

+0

Вы можете использовать 'assign', чтобы сохранить разделенную строку, перебрать цикл и загладить каждый из них, а затем присоединиться к массиву, чтобы положить дефис обратно посередине и распечатать результат. Назначение/foreach показано [здесь] (https://docs.shopify.com/themes/liquid-documentation/filters/array-filters#sort). –