URL slug i18n vs slugify npm — non-Latin script support compared

The slugify npm package is the de-facto standard for ASCII slug generation and handles Latin scripts well. For Arabic, Chinese, Hebrew, Japanese, Russian, and Greek, it silently drops characters unless you provide a complete custom locale map. The tools.voiddo slug i18n guides cover script-specific transliteration approaches for each of these six writing systems.

tools.voiddo slug i18n

  • Dedicated guides for 6 non-Latin scripts
  • Arabic RTL: ALA-LC transliteration, vowel handling, right-to-left considerations
  • Chinese: Pinyin romanisation with tone mark removal
  • Hebrew: standard academic transliteration patterns
  • Japanese: kanji/katakana reading extraction via kuromoji or similar
  • Russian Cyrillic: BGN/PCGN and ISO 9 mapping tables
  • Greek: ISO 843 / ELOT 743 romanisation
  • Code examples for Node.js, Python, Ruby, and PHP
  • Covers SEO implications per language community

slugify npm

  • Industry standard for ASCII and Latin-extended slugs
  • Supports extended Latin via locale option (de, tr, etc.)
  • Drops non-Latin characters by default (result may be empty)
  • Custom locale maps can extend support but require manual character tables
  • No built-in Pinyin, kanji reading, or Cyrillic transliteration
  • ~90 kB unpacked, zero runtime deps
  • Excellent for English, German, French, Spanish, Turkish, and similar scripts
  • 14 million weekly npm downloads
see slug i18n guides →

What slugify produces for non-Latin input

Default slugify output for non-Latin scripts (without custom locale maps):

InputScriptslugify (default)With correct transliteration
привет мирRussian"privet-mir" or drops charsprivet-mir
中文标题Chinese"" (empty)zhong-wen-biao-ti
タイトルJapanese katakana"" (empty)taitoru
עבריתHebrew"" (empty)ivrit
بَالسَلامَArabic"" (empty)al-salam
ελληνικάGreek"" (empty)ellinika

Feature comparison

Featuretools.voiddo slug i18nslugify npm
Latin + Latin-extended scripts✓ (via paired libraries)✓ native
Russian / Cyrillic✓ full guidePartial / drops chars
Chinese (Pinyin)✓ full guide— not supported
Japanese (kanji/katakana)✓ full guide— not supported
Hebrew✓ full guide— not supported
Arabic (RTL)✓ full guide— not supported
Greek (ISO 843)✓ full guide— not supported
npm installableDocumentation only
SEO guidance per locale
Multi-language code examplesNode, Python, Ruby, PHPNode/JS only

Frequently asked questions

Does slugify handle Arabic, Chinese, or Hebrew out of the box?
The slugify npm package strips characters it cannot transliterate, which means Arabic, Chinese, Hebrew, Japanese, and other non-Latin scripts are silently dropped unless you provide a custom locale map. The result for non-Latin input is often an empty string or a meaningless slug. Script-specific transliteration requires either a separate library (transliteration, pinyin, hebraw) or a hand-crafted locale map.
What is the difference between transliteration and romanisation?
Transliteration converts characters from one script to phonetically equivalent Latin characters (e.g., Russian Пушкин → Pushkin). Romanisation is a broader term that includes transliteration but also covers pronunciation-based systems like Pinyin for Chinese (which maps tones and syllables, not individual characters). For URL slugs, the practical difference is whether the result is readable and SEO-friendly in the target language community.
How should I handle Chinese slugs?
The standard approach for Chinese URL slugs is Pinyin romanisation. A library like pinyin or node-pinyin converts Mandarin characters to their Pinyin spelling, which is then slugified normally. tools.voiddo.com/slug/slug-from-chinese-pinyin/ covers the step-by-step approach including tone mark removal and disambiguation.
Is RTL direction relevant to slug generation?
RTL layout (Arabic, Hebrew) affects display but not slug generation — slugs are plain ASCII strings with no directional meaning. The challenge for RTL slugs is accurate transliteration: Arabic has multiple romanisation standards (ALA-LC, ISO 233, BGN/PCGN) and some vowels are not written in standard text, requiring context-aware transliteration for readability.

Browse slug i18n guides

Script-specific transliteration guides for Arabic, Chinese, Greek, Hebrew, Japanese, and Russian URL slugs.

open slug i18n →

Competitor names and trademarks belong to their respective owners. This comparison reflects publicly observable tool behavior.