Python Türkçe karakter sorununa çözüm sorted ve diğer işlemler için

class ultimateStr:
    def __init__(self, word: str, lowerLetters: str = None, upperLetters: str = None):
        self.word = word
        if not lowerLetters:
            self.lowerLetters = "abcçdefgğhıijklmnoöprsştuüvyz"
        if not upperLetters:
            self.upperLetters = "ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ"

    def make_trans_upper(self) -> dict:
        changeTable = str.maketrans(self.lowerLetters, self.upperLetters)
        return changeTable

    def make_trans_lower(self) -> dict:
        changeTable = str.maketrans(self.upperLetters, self.lowerLetters)
        return changeTable

    def upper(self) -> str:
        return self.word.translate(self.make_trans_upper())

    def lower(self) -> str:
        return self.word.translate(self.make_trans_lower())

    def capitalize(self) -> str:
        return f"{self.lower()[0].translate(self.make_trans_upper())}{self.lower()[1:]}"

    def title(self) -> str:
        firstChrIndex = [x + 1 for x in range(len(self.word)) if
                         self.word[x] in (" ", "\n", ".", "!", "?", ":") and (x + 1 != len(self.word))]
        firstChrIndex.insert(0, 0)
        copyWord = list(self.word)
        for y in firstChrIndex:
            copyWord[y] = copyWord[y].translate(self.make_trans_upper())
        return "".join(copyWord)

    def forSorted(self) -> tuple:
        cleanWords = ""
        for l in self.lower().replace(" ", ""):
            if l in self.lowerLetters:
                cleanWords += l
        letterOrder = {i: self.lowerLetters.index(i) for i in self.lowerLetters}
        sorX = [letterOrder.get(cleanWords[i]) for i in range(len(cleanWords))]  # to use sorted method
        return tuple(sorX)

    def __str__(self):
        return self.word

    def __repr__(self):
        return f"ultimateStr({self.word})"

Örnekler:

from ultimate import ultimateStr as ustr

isimler = ['ahmet arı', 'ahmet can ', 'iskender', 'cigdem',
               'ismet', 'ismail', 'ismit', 'çiğdem',
                            'ismıt', 'ışık', 'şule']



s = sorted(isimler, key=lambda name: ustr(name).forSorted())
print(s)

print(ustr("FAtih Çelik Isparta").upper())
print(ustr("FAtih Çelik Isparta").lower())
print(ustr("FAtih Çelik Isparta").title())
print(ustr("FAtih Çelik Isparta").capitalize())
print(ustr("FAtih Çelik Isparta").forSorted())

# OUTPUTLAR

# FATİH ÇELİK ISPARTA
# fatih çelik ısparta
# FAtih Çelik Isparta
# Fatih çelik ısparta
# (6, 0, 23, 11, 9, 3, 5, 14, 11, 13, 10, 21, 19, 0, 20, 23, 0)