| 50 | |
| 51 | // Get the script of a character (simplified for common scripts) |
| 52 | export const getCharScript = (char: string): string => { |
| 53 | if (/[\p{Script=Latin}]/u.test(char)) return 'latin'; // All Latin script chars including diacritics |
| 54 | if (/[\p{Script=Han}]/u.test(char)) return 'han'; // Chinese |
| 55 | if (/[\p{Script=Arabic}]/u.test(char)) return 'arabic'; |
| 56 | if (/[\p{Script=Hiragana}]/u.test(char)) return 'hiragana'; |
| 57 | if (/[\p{Script=Katakana}]/u.test(char)) return 'katakana'; |
| 58 | if (/[\p{Script=Cyrillic}]/u.test(char)) return 'cyrillic'; |
| 59 | return 'other'; |
| 60 | }; |
| 61 | |
| 62 | // Check if two characters are from different scripts (indicating word boundary) |
| 63 | export const isDifferentScript = (char1: string, char2: string): boolean => { |