Liquid syntaxı ile tarihleri, eğer ki “19.05.2018” formatında elde etmek istiyorsak işimiz kolay. page.date | date: "%d.%m.%Y"
ile sayılarla istediğimiz formatı elde etmemiz mümkün. Eğer istediğimiz format, “19 Mayıs, 1919” şeklinde ise page.date | date: "%d %b, %Y"
burada İngilizce “19 May, 1919” dönecektir.
Türkçe’ye çevirmek için, herbir ay için Türkçe karşılıklarını saklayacağımız bir .yml dosyasını oluşturmalıyız. _data/tr.yml locationında açtığımız dosyanın içeriği aşağıdaki gibi olabilir:
months:
- Ocak
- Şubat
- Mart
- Nisan
- Mayıs
- Haziran
- Temmuz
- Ağustos
- Eylül
- Ekim
- Kasım
- Aralık
Artık Türkçe aylara erişebiliriz. Örneğin Mayıs için; site.data.tr.months[4]
yazmalıyız. Syntaxı şöyle genelleyebiliriz:
site.data.yml_file_name.array_name[index]
{% assign d = page.date | date: "%d" %}
{% assign m = page.date | date: "%m" %}
{% assign m = page.date | date: "%-m" | minus: 1 %}
{% assign month = site.data.tr.months[m] %}
{% assign year = page.date | date: "%Y" %}
{{d m, Y}} <!--19 Mayıs, 1919-->
Biraz daha zorlaştırıp günleri elde etmeye çalışalım. Burada günü, ayın kaçıncı günü olduğu bilgisiyle elde edemeyeceğimiz için daha farklı bir yöntem uygulamak zorundayız. Bu sefer aşağıdakine benzer bir .yml veri dosyasına ihtiyacımız olacak. Örnekte dosyanın adı date_translation.yml
.
en:
abbr_days: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
days: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
tr:
abbr_days: ['Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt', 'Pa']
days: ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar']
{% assign A = page.date | date: "%A" %}
{% assign days = site.data.date_translation.en.days %}
{% for day in days %}
{% if day == A %}
{% assign A = site.data.date_translation.tr.days[forloop.index0]%}
{% break %}
{% endif %}
{% endfor %}
{{A}}
Kod aslında kendini açıklar nitelikte olsa da kısaca açıklayalım. İngilizce gün değeri A değişkenine atanır ve days dizisindeki herbir day’in A’ya eşit olup olmadığı kontrol edilir. A’ya eşit olduğu yerdeki indexi kullanarak Türkçe günlerin tutulduğu diziden ilgili değeri A’ya tekrar atanır. Benzer şekilde, abbr_days dizisi için de bir döngü oluşturulabilir.
İlgili bağlantılar: