Лучший отвечающий
Анализ кода error CA1303 как устранить предупреждение ?

Вопрос
-
При анализе кода множество предупреждений типа:СА1303
пример кода
Form1.Lbl_Podskazka.Text = _ "Совет: Увеличте сечение провода\кабеля "
пример предупреждения
Предупреждение 22
CA1303 : Microsoft.Globalization :
Метод 'Line_size.AB()' передает строку-литерал, как параметр "value" при вызове 'Label.Text.Set(String)'.
Вместо этого выполните поиск следующей строки (строк) в таблице источника: "Совет: Увеличте сечение провода\кабеляТак вот вопрос как с это победить ?
- Перемещено SachinW 1 октября 2010 г. 21:01 MSDN Forums Consolidation (От:Начинающие разработчики)
22 августа 2010 г. 12:38
Ответы
-
Самый простой способ - добавить в проект новый файл ресурсов (например LocalizedStrings.resx), вынести в него все строки из кода. Студия сгенерирует класс, с тем же именем, что у файла resx. В коде заменить .Text = "текст подсказки" на .Text = LocalizedStrings.PodskazkaOSechenii. Ворнинг исчезнет. Примерно то же самое делает студия при выставлении Localizable=true.
Ворнинг вызван вбитой прямо в код строкой. Смысл ворнинга: если вдруг интерфейс будет переводится на английский, или другой нерусский язык, то захардкоженную строку будет довольно тяжело найти и исправить. А перенос ее в ресурсы позволит прозрачно для кода подменить все строки в приложении, обычной заменой CurrentUICulture.
- Помечено в качестве ответа a.lisov 22 августа 2010 г. 19:10
22 августа 2010 г. 17:04
Все ответы
-
В таблице источника? :-/ Ворнинг предлагает вынести локализованные строки в ресурсы, а не вписывать в код. В MSDN по ворнингу есть пример как победить: http://msdn.microsoft.com/en-us/library/ms182187.aspx
22 августа 2010 г. 14:15 -
Так я видел этот код не чего не понял. Как то сложновато. На верно не дорос. Думал есть более легкий способ.
Таких предупреждений около 200. При чем при установке свойства Form1-Localisable = True в конструкторе. Остается только 31 только те которые задаются програмнно.
Было бы интересно посмотреть пример или статью(По созданию многоязычных приложений) на человеческом языке. А лучше описание по пунктам для начинающих, думаю всем бы было интересно.
Спасибо за ответ PashaPash. Приятное оживление за последние три дня.
22 августа 2010 г. 16:20 -
Самый простой способ - добавить в проект новый файл ресурсов (например LocalizedStrings.resx), вынести в него все строки из кода. Студия сгенерирует класс, с тем же именем, что у файла resx. В коде заменить .Text = "текст подсказки" на .Text = LocalizedStrings.PodskazkaOSechenii. Ворнинг исчезнет. Примерно то же самое делает студия при выставлении Localizable=true.
Ворнинг вызван вбитой прямо в код строкой. Смысл ворнинга: если вдруг интерфейс будет переводится на английский, или другой нерусский язык, то захардкоженную строку будет довольно тяжело найти и исправить. А перенос ее в ресурсы позволит прозрачно для кода подменить все строки в приложении, обычной заменой CurrentUICulture.
- Помечено в качестве ответа a.lisov 22 августа 2010 г. 19:10
22 августа 2010 г. 17:04 -
Все спасибо разобрался. Только наверно будет так
TextBox1.Text = _ My.Resources.LocalizedStrings.TextBox1Text 'TextBox1.Text = "Бла бла бла"
или я опять намудрил
22 августа 2010 г. 18:39