Страница: 1 |
Уважаемый народ, Подскажите как можно сделать програму независимой от языковых настроек. Так например, у меня есть ListBox объект, который не зависимо от того под какой операционкой и не зависимо с какими региональными или языковыми установками, должен отражать немецкие слова. Однако пока этого не происходит. Прошу описать по подробнее, так как я начинающий.
Страница: 1 |
Вопрос: Независимость от языковых настроек
Добавлено: 15.06.04 02:49
Автор вопроса: Фродо
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 15.06.04 03:07
Запиши свои символьные константы на необхлдимом тебе языке в файле ресурсов, а затем, при запуске программы все свои надписи на кнопках, списки в ListBox и т.д. загружай из ресурсов при помощи LoadResString и расставляй их по своим местам. Единственно не знаю как состряпать некоторые символы немецкого алфавита. Можно также хранить все строки, которые тебе могут понадобиться в текстовом файле, и также при запуске программы открывать файл, считывать их и присваивать тем или иным контролам. Например: в событии Form_Load() вписываешь:
ListBox1.AddItem LoadResString(101).
А под номером 101 в редакторе ресурсов добавь строку: "as ist nicht Apa, das ist Opa, Opa!"
Или Button1.Caption = LoadResString(102)
Номер ответа: 2
Автор ответа:
Фродо
Вопросов: 2
Ответов: 1
Профиль | | #2
Добавлено: 15.06.04 03:18
Спасибо cresta,
Уже не плохо для начала. Я загружаю данные из базы. Если я пользуюсь таблицей, то там происходит конфликт со шрифтом, т.е. немецкие слова показываются корректно, а русские каракулями, или наоборот, в зависимости от выбранного шрифта. Решил ограничится ListBox'ом хотя это для меня плохой выход, но и он не работает.
В немецком есть 9 не стандартных знаков:
ß,ö,Ö,ü,Ü,ä,Ä Их ANSI-Коды я знаю, но это мне мало дает. Попробую пойти твоим путем.
Номер ответа: 3
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #3
Добавлено: 15.06.04 03:30
Не знаю как для немецкого, а например для русского можно попробовать написать.
List1.FontName="Arial Cyr" или "Times New Roman Cyr" и т.д.
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 15.06.04 03:34
а картинки несойдёт, вместо текста? Там всё просто и без головной боли.
Номер ответа: 5
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #5
Добавлено: 15.06.04 11:36
Если используешь DataGrid, то в шрифтах для него можно указать набор шрифтов: кириллический, западный и т.д. Хотя проще сделать так: иметь два набора строк(русский и немецкий) и загружать тот или иной набор в зависимости от того, какие региональные установки включены. И чтобы заранее подготовить строку с нестандартным символом, можно сделать, к примеру, так: слово Grossbuch пишется с буквой, напоминающей греческую "бета" вместо двойной ss. Составь его как "Gro" & Chr$(код буквы) & "buch". Правда хранить его в ресурсах не получится, надо будет в тестовом файле или в теле самой программы. Либо разложить всю строку на коды и записать в ресурсы не строку а набор кодов, считывать их через LoadResData и как описано выше, состыковывать в строку и выводить в нужное место. Но при этом если региональные установки не позволяют правильно отобразить символ, он будет искажён. Т.е. "Gro" и "buch" будут отображаться правильно, а вместо того, что между ними, отобразится символ, соответствующий коду в установленной региональной настройке.
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 15.06.04 15:20
Кста, вероятно, так же как и для русского, необходимо чтобы язык был проставлен в язык и региональных стандартах (панель управления)...
Номер ответа: 7
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #7
Добавлено: 15.06.04 19:37
Да, это так. Региональные настройки придется устанавливать соответствующие, иначе твои коды нестандартных символов будут выводить нестандартные символы, но соответствующие текущим установкам, на не тем, которые ты задумал.