<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Internationalization on Santhosh Thottingal</title><link>https://thottingal.in/categories/internationalization/</link><description>Recent content in Internationalization on Santhosh Thottingal</description><generator>Hugo -- 0.154.0</generator><language>en</language><copyright>2026 Santhosh Thottingal. All rights reserved.</copyright><lastBuildDate>Fri, 18 Sep 2026 05:00:00 +0530</lastBuildDate><atom:link href="https://thottingal.in/categories/internationalization/index.xml" rel="self" type="application/rss+xml"/><item><title>Why your slug generator is dropping Malayalam vowels and how to fix it</title><link>https://thottingal.in/blog/2026/09/18/slug-generators-and-vowels-signs/</link><pubDate>Fri, 18 Sep 2026 05:00:00 +0530</pubDate><guid>https://thottingal.in/blog/2026/09/18/slug-generators-and-vowels-signs/</guid><description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Most slug libraries only allow &lt;code&gt;\p{L}&lt;/code&gt; (letters), &lt;code&gt;\p{N}&lt;/code&gt; (numbers), and &lt;code&gt;\p{S}&lt;/code&gt; (symbols).
In Indic scripts like Malayalam, vowels are often &lt;em&gt;combining marks&lt;/em&gt; (&lt;code&gt;\p{M}&lt;/code&gt;), not letters.
The fix is simple: add &lt;code&gt;\p{M}&lt;/code&gt; to your allowed character class. I’ll show you exactly how.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I recently fixed this &lt;a href="https://github.com/usememos/memos/pull/6051"&gt;memos PR #6051&lt;/a&gt;.
The bug was simple but devastating: Malayalam tags like &lt;code&gt;#കവിത&lt;/code&gt; were being truncated to &lt;code&gt;#കവ&lt;/code&gt;.
The last two characters — &lt;code&gt;ി&lt;/code&gt; (vowel sign I) and &lt;code&gt;ത&lt;/code&gt; — were rendered outside tag.&lt;/p&gt;</description></item></channel></rss>