From 9accca6649594a38018a0a63ecaceb0efe7648ab Mon Sep 17 00:00:00 2001 From: RAMAZAN HOYLADI <75537267+ramazanhoyladi@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:54:15 +0300 Subject: [PATCH] Turkish language support Turkish language support added to slug function. --- src/operations.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/operations.ts b/src/operations.ts index c91aeb59..5ebab0ba 100644 --- a/src/operations.ts +++ b/src/operations.ts @@ -534,24 +534,24 @@ export function parseOp(exp: string): { } export function toSlug(str: unknown) { - if (typeof str !== 'string') { - return ''; - } + if (typeof str !== 'string') { + return null; + } - let res = str.replace(/^\s+|\s+$/g, ''); // trim - res = res.toLowerCase(); + let res = str.replace(/^\s+|\s+$/g, ''); // trim + res = res.toLowerCase(); - // remove accents - const from = 'àáãảạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệđùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợìíỉĩịäëïîöüûñçýỳỹỵỷ'; - const to = 'aaaaaaaaaaaaaaaaaeeeeeeeeeeeduuuuuuuuuuuoooooooooooooooooiiiiiaeiiouuncyyyyy'; - for (let i = 0, l = from.length; i < l; i++) { - res = res.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)); - } + // remove accents and convert Turkish characters to English counterparts + const from = 'àáãảạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệđùúủũụưừứửữựòóỏõọôồốổỗộơờớởỡợìíỉĩịäëïîöüûñçýỳỹỵỷşçğöüı'; + const to = 'aaaaaaaaaaaaaaaaaeeeeeeeeeeeduuuuuuuuuuuoooooooooooooooooiiiiiaeiiouuncyyyyyscgoui'; + for (let i = 0, l = from.length; i < l; i++) { + res = res.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)); + } - res = res - .replace(/[^a-z0-9 -]/g, '') // remove invalid chars - .replace(/\s+/g, '-') // collapse whitespace and replace by - - .replace(/-+/g, '-'); // collapse dashes + res = res + .replace(/[^a-z0-9 -]/g, '') // remove invalid chars + .replace(/\s+/g, '-') // collapse whitespace and replace by - + .replace(/-+/g, '-'); // collapse dashes - return res; + return res; }