2010-04-14 2 views
1

общественного перечисления ObjectType { Страна = 0, область = 1, провинции = 2, Город = 3, Отеля = 4 }Версия Enum

У меня есть два приложения в двух языковых версиях, и это Enum отображает в каком-то месте, так что зависит от языковой версии Я хочу правдивую версию Enum

в немецкой версии вместо Country Land т.д.

Это Applic использует тот же websercice, который имеет объявление этого перечисления.

ДОБАВЛЕНО

У меня есть DataGridView и список объектов, классы имеют поле ObjectType и я должен показывать этот бассейн в datagridviev, так что проблема

+0

Если вы используете WPF вы можете сделать конвертер, который взял на себя «перевод «перечисление членов на собственное имя, просто подсказка. – Skurmedel

+0

, поскольку вы, несомненно, обнаруживаете в ответах, которые вы получаете, 'enum' abuse является серьезной социальной проблемой и рассматривается как сообщество программирования. пожалуйста, обратитесь за помощью: http://msdn.microsoft.com/en-us/library/aa309421(VS.71).aspx –

ответ

12

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

Если вам необходимо локализовать вещи, не нажимайте на кнопки перечисления непосредственно пользователю. Сопоставьте их с локализованными значениями, используя файл ресурсов.

2

Значения перечисления должны быть для логики программирования и обычно не используются для вывода пользовательского интерфейса. Вы должны использовать перечисление ObjectType по умолчанию на английском языке (например, большинство ключевых слов программирования), и пусть потребитель WebService выполняет перевод на правильный язык.

0

Как насчет такого решения?

public enum ObjectType 
{ 
    Country=0, 
    Land=0, 
    Region=1, 
    ... 
} 

Кстати, как сказал кто-то, перечисления не должны быть локализованы. Попробуйте другое хорошее решение. Если вы поделитесь более подробной информацией, мы попытаемся предложить.

+0

Как клиент узнает, какие значения показывать и что скрывать? ... как вы и другие упоминаете, не помещайте локализацию в перечисление. Это просто не работает. –

0

Лучше всего было бы реализовать сопоставление файлов базы данных или конфигурационных файлов между перечислением и строковым представлением. Это поможет вам не только для локализации, но и перечисляемые значения, которые Hase два слова