2012-06-05 2 views
0

У меня есть несколько строк на разных языках; например:C# сравнение строк на другом языке

  • «Kot шутка Добры» (на польском языке)
  • «кошка хорошо» (на английском языке)

Они надпись кнопок, которые переведены с английского на выбранном языке от пользователя.

Каков наилучший способ сравнить эти подписи программным путем?

+4

Сравните их с чем? Вы хотите сравнить английскую строку с польской строкой? – zmbq

+1

, пожалуйста, сделайте вашу проблему более ясной. –

+0

да, я хочу сравнить две локализованные строки. в коде. У меня есть «кошка хороша», которая в зависимости от языка, во время выполнения показана на польском языке или на другом языке и задается как подпись объекта. Я хочу получить этот заголовок и скомпоновать его со строкой, я не знаю, что это за язык, потому что он установлен пользователем во время выполнения программы – Bublik

ответ

1

Так как строки являются переводами друг от друга вы можете поддерживать таблицу перевода, и если вы хотите, чтобы выяснить, если две строки одинаковы, вы можете просто смотреть их в вашем столе, и если они случаются падения в той же строке, то они равны, например

class TranslatedText 
{ 
     public int Id {get; set; } 
     public string Language {get; set; } 
     public string Text {get; set; } 
} 

Так заполнить список TranslatedText объектов с каждой строкой и присвоить одинаковый идентификатор же куски тэ х. Позже для сравнения вы можете поиск соответствующего объекта в списке и проверьте Id, как так

var first = translatedTextList.FirstOrDefault(t=>t.Text.Equals(firstString)); 
var second = translatedTextList.FirstOrDefault(t=>t.Text.Equals(secondString)); 
bool areSame = (first != null & second !=null & first.Id == second.Id); 
return areSame; 

Предполагая, что строки, которые вы хотите сравнить называется firstString и secondString;

+0

Вы уверены, что 'ResourceManager' не может помочь старту? – Dennis

-2

переопределить функциюequal() или преобразовать ее в массив символов, а затем сравнить!

здесь вы найдете КАК:

http://msdn.microsoft.com/en-us/library/ms173147.aspx

+0

Переопределить '.equal function' of что? System.String? Научите меня, как это сделать. – Dennis

Смежные вопросы