tengo un método que convierte cualquier texto en latín (por ejemplo, Inglés, Francés, Alemán, Polaco) en su forma de bala,Cómo transcribir cirílico al latín texto
por ejemplo, Alpha Bravo Charlie
=>alpha-bravo-charlie
Pero no puede funcionar para texto cirílico (por ejemplo, ruso), así que lo que quiero hacer es transcribir el texto cirílico a caracteres latinos, y luego slugify.
¿Alguien tiene una manera de hacer tal transliteración? Ya sea por fuente real o una biblioteca.
Estoy codificando en C#, por lo que una biblioteca .NET funcionará. Alternativamente, si tiene un código que no es de C#, estoy seguro de que podría convertirlo.
Incorrecto. Esto transcribe a Анастасия como Anastasiya, y no a Anastasia. Esto se ve horrible. Parece que este documento (http://en.wikipedia.org/wiki/BGN/PCGN_romanization_of_Russian) está mal en las disposiciones especiales. Además, no se tienen en cuenta las disposiciones especiales, y UnidecodeSharpFork transliterated German Umlauts (äöüÄÖÜ) como aouAOU en lugar de ae aeue Ae Oe Ue. Esta es la razón por la que cambié de Upvote a downvote. Si realiza una biblioteca de romanización (o algoritmo), hágalo correctamente o establezca de otra manera que su algoritmo está incompleto/con errores y no está listo para la producción. –
Y otro error: Ольга -> Ol'ga, Татьяна -> Tat'yana, etc. ... –
Yo uso esta solución: 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"); // devuelve this.Name.Unidecode(); return str; –