<p>Ignoring <code>customAsciiCharMappings</code> for the moment, Craft uses <a href="https://github.com/danielstjules/Stringy" rel="nofollow noreferrer">Stringy</a> for this type of thing.</p>

<p>The have some special logic for German and Bulgarian character replacements and it looks like those particular characters will only get replaced if the locale of the site you're currently editing is <code>bg</code>: <a href="https://github.com/danielstjules/Stringy/blob/master/src/Stringy.php#L1874-L1877" rel="nofollow noreferrer">https://github.com/danielstjules/Stringy/blob/master/src/Stringy.php#L1874-L1877</a></p>

CC BY-SA 4.0
2018-06-14T00:02:47.883Z
Yes, I saw. I tried to put the BG as the language of the site, but nothing has changed. Looking at the code, they make a replacement for these characters (Ъ → A, Ь → Y). In Russian, when convertation Cyrillic into Latin 'Ь' and 'Ъ' are not used.
Sol
CC BY-SA 4.0
2018-06-14T23:27:42.013Z
Ahh... this is for Russian?  Since `customAsciiCharMappings` is deprecated and will go away in the future, it seems like the proper thing to do would be to make a pull request to https://github.com/danielstjules/Stringy/blob/master/src/Stringy.php#L1869-L1878 and update it with the Russian-specific conversions?
Brad Bell
CC BY-SA 4.0
2018-06-13T23:22:44.527Z
2018-06-13T23:22:44.527Z
Brad Bell
<p>By default, if we use cyrillic in the names of entries, the slug is also created in сyrillic. This is not good. And here we need transliteration such as б → b, д → d, etc.</p>
<p>By the way, if we create for example a new section in сyrillic, the handle, Entry URI Format and Template is created almost correctly, the exception is the characters 'Ь' and 'Ъ' - they are replaced by a space.</p>
<p><a href="https://i.sstatic.net/ldeZZ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ldeZZ.png" alt="enter image description here" /></a></p>
<p>Ok, in general.php add</p>
<pre><code>'limitAutoSlugsToAscii' =&gt; true
</code></pre>
<p>to replace characters according to ASCII character mapping. Now slug in entries should be created correctly, but again a new problem with the characters 'Ь' and 'Ъ', they are not converted.</p>
<p><a href="https://i.sstatic.net/CSjZA.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/CSjZA.png" alt="enter image description here" /></a></p>
<p>in general.php add</p>
<pre><code>'customAsciiCharMappings' =&gt; [
    ' ' =&gt; ['ь', 'Ь', 'ъ', 'Ъ'],
],
</code></pre>
<p>and we get the same result as when creating a new section - space.</p>
<p>Tried this variant:</p>
<pre><code>'customAsciiCharMappings' =&gt; [
    '' =&gt; ['ь', 'Ь', 'ъ', 'Ъ'],
],
</code></pre>
<p>does not work</p>
<p>In the correct convertation there should be no spaces or replacement, 'Ь' and 'Ъ' should be removed (Мальчик → malchik). How to remove these spaces?</p>

<craft3>
Custom ASCII character mappings
# Custom ASCII character mappings

(Asked by: username_0 on 2018-06-13)

By default, if we use cyrillic in the names of entries, the slug is also created in сyrillic. This is not good. And here we need transliteration such as б → b, д → d, etc.
By the way, if we create for example a new section in сyrillic, the handle, Entry URI Format and Template is created almost correctly, the exception is the characters 'Ь' and 'Ъ' - they are replaced by a space.

Ok, in general.php add
'limitAutoSlugsToAscii' => true

to replace characters according to ASCII character mapping. Now slug in entries should be created correctly, but again a new problem with the characters 'Ь' and 'Ъ', they are not converted.

in general.php add
'customAsciiCharMappings' => [
    ' ' => ['ь', 'Ь', 'ъ', 'Ъ'],
],

and we get the same result as when creating a new section - space.
Tried this variant:
'customAsciiCharMappings' => [
    '' => ['ь', 'Ь', 'ъ', 'Ъ'],
],

does not work
In the correct convertation there should be no spaces or replacement, 'Ь' and 'Ъ' should be removed (Мальчик → malchik). How to remove these spaces?

**Tags:** craft3


---

## 1 answers

### Answer by username_1 on 2018-06-13. Score: 1

Ignoring `customAsciiCharMappings` for the moment, Craft uses [Stringy](https://github.com/danielstjules/Stringy) for this type of thing.

The have some special logic for German and Bulgarian character replacements and it looks like those particular characters will only get replaced if the locale of the site you're currently editing is `bg`: <https://github.com/danielstjules/Stringy/blob/master/src/Stringy.php#L1874-L1877>

> **Comments:**
> **username_0**: Yes, I saw. I tried to put the BG as the language of the site, but nothing has changed. Looking at the code, they make a replacement for these characters (Ъ → A, Ь → Y). In Russian, when convertation Cyrillic into Latin 'Ь' and 'Ъ' are not used.  
> **username_1**: Ahh... this is for Russian?  Since `customAsciiCharMappings` is deprecated and will go away in the future, it seems like the proper thing to do would be to make a pull request to https://github.com/danielstjules/Stringy/blob/master/src/Stringy.php#L1869-L1878 and update it with the Russian-specific conversions?  

---

