Действительно ли возможно преобразовать кириллическую строку в английский язык (латынь) в c#? Например, я должен преобразовать "Петролеум" в "Нефти". Плюс я забыл упоминать, что, если у меня есть кириллица, представляют его в виде строки, должен остаться как этот, также - я могу так или иначе проверить это?
Я не знаком с кириллицей, но если это просто отображение кириллицы 1: 1 к латинским символам, которые вам нужны, вы можете использовать словарь пар символов и сопоставить каждый символ индивидуально:
var map = new Dictionary<char, string>
{
{ 'П', "P" },
{ 'е', "e" },
{ 'т', "t" },
{ 'р', "r" },
...
}
var result = string.Concat("Петролеум".Select(c => map[c]));
Если вы используете Windows 7, вы можете воспользоваться преимуществами нового API ELS (Extended Linguistic Services), который предоставляет вам функциональность транслитерации.
Взгляните на Windows 7 API Code Pack - это набор управляемых оболочек поверх многих новых API в Windows 7 (таких как новая панель задач). Найдите в папке Samples
пример транслитератора
, вы найдете именно то, что ищете:
Вы ищете способ транслитерации русских слов, написанных кириллицей (в некоторых кодировках, например, даже в латинской кодировке, поскольку iso 8859-5 aka Latin-5 для кириллицы) в латинский алфавит (с акцентами)?
Я не знаю, есть ли у .NET что-то для транслитерации, но осмелюсь сказать, что этого (как и многих других хороших фреймворков) нет. Эта ссылка на википедии может дать вам некоторые идеи по реализации транслитерации, но это не единственный способ и помните, что системы письма кириллицы не используются только русским языком, и способ, которым вы применяете транслитерацию, может варьироваться в зависимости от языка, на котором используется система письма. Например. см. То же самое для болгарского . Может эта ссылка (всегда из wp) может быть также интересна, если вы хотите самостоятельно запрограммировать транслитератор.
Конечно, вы можете сопоставить буквы с латинской транскрипцией, но в большинстве случаев вы не получите из этого английского слова. Например, Российская Федерация транскрибируется как Rossiyskaya Federatsiya. wikipedia предлагает обзор отображения. Вы, вероятно, ищете службу перевода, google, вероятно, предлагает api для этого.
Используйте словарь с русскими и английскими словами в качестве таблицы поиска. Придется набрать много текста, но это полная защита.
Зачем вы хотите это сделать? Замена символов один к одному обычно не дает даже приемлемой транслитерации, не говоря уже о переводе. Возможно, вам будет интересно это сообщение.
http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration
Google предлагает эту службу транслитерации на основе AJAX. Таким образом, вы можете избежать самостоятельного вычисления транслитерации и позволить Google выполнять их на лету. Это означало бы позволить клиентской стороне сделать запрос в Google, поэтому это означает, что ваше приложение должно иметь какой-то веб-вывод, чтобы это решение работало.