Here Translit::to(string, language) - it is super simple method which transliterate cyrillic letters (eg. ш -> sh, я -> ya etc) via strtr php function.
The second issue is: I can’t understand the meaning of UploadForm model in the example (it is almost empty!). It feels like UploadedFile class holds responsibility to all the work. Maybe UploadForm model should be more massive?
And the third one is: I can’t find comprehensive example working with file uploading . The most articles are devoted to working with Kartik widgets…
As I said, it depends on your design need (I do not have detailed info on that):
[list=1]
[*]Hashing the file name using crc32 as I said will generate 8 english roman characters to save, which will be db friendly and based on the filename you input.
[*]If maintaining exact file name is important for you, you can use htmlentities or yii\helpers\Html::encode as I mentioned, before you save. You can retrieve it later with decode. You may need some replacing of special characters like & before saving and retrieving.
[*]If you are indicating, you need to translate the string to another language before saving, then I am not sure there is a ready made function, you may need to write your own converter or rely on third party translation apis.
Files are usually renamed when using $file->saveAs with random hash or anything else(date and time and so on). Hash is used as filename so that if you have many files in one dir you will not get any collisions(hopefully).