Ich habe eine Methode, die mit lateinischem Text wird (zum Beispiel Englisch, Französisch, Deutsch, Polnisch) in seine Klumpenform,Wie transkribieren Kyrillisch zu lateinischem Text
z.B.
Aber es kann nicht für kyrillischen Text (z. B. Russisch) arbeiten, also was ich tun möchte ist, den kyrillischen Text in lateinische Zeichen zu transkribieren, dann slugify das.
Hat jemand eine Möglichkeit, solche Transliteration zu tun? Ob durch tatsächliche Quelle oder eine Bibliothek.
Ich bin in C# codieren, damit eine .NET-Bibliothek funktioniert. Alternativ, wenn Sie nicht-C# -Code haben, bin ich sicher, dass ich es konvertieren könnte.
Falsch. Dies transkribiert Анастасия als Anastasiya, und nicht Anastasia. Das sieht schrecklich aus. Scheint so, als ob dieses Dokument (http://en.wikipedia.org/wiki/BGN/PCGN_Romanisation_of_Russian) in den speziellen Bestimmungen falsch ist. Darüber hinaus berücksichtigen Sie nicht die speziellen Bestimmungen, und UnidecodeSharpFork transkribierte deutsche Umlaute (äöüÄÖÜ) als aouAOU anstelle von ae oee Ae Oe Ue. Dies ist der Grund, warum ich von Upvote zu Downvote gewechselt habe. Wenn Sie eine Romanisierungsbibliothek (oder einen Algorithmus) erstellen, tun Sie dies richtig oder geben Sie anderweitig an, dass Ihr Algorithmus unvollständig/fehlerhaft und nicht produktionsbereit ist. –
Und ein weiterer Fehler: Ольга -> Ol'ga, Татьяна -> Tat'yana, etc. ... –
Ich verwende diese Abhilfe: string str = this.Name.Replace ("ь", ""); str = str.Replace ("ä", "ae"); str = str.Replace ("ö", "oe"); str = str.Replace ("ü", "ue"); str = str.Replace ("Ä", "Ae"); str = str.Replace ("Ö", "Oe"); str = str.Replace ("Ü", "Ue"); str = UnidecodeSharpFork.Unidecoder.Unidecode (str); // str = str.Replace ("Anastasiya", "Anastasia"); str = str.Replace ("iy", "i"); // Rückgabe this.Name.Unidecode(); Rückkehr str; –