Файл ресурсов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.09.2004 (Ср) 12:23

Только толку никакого, надо где-то еще попробовать,


Как вариант - поставить английскую (или какую еще) версию Windows под VMWare - с ихними установками...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 15.09.2004 (Ср) 12:42

Ладно, всем спасибо, пойду пробывать

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.09.2004 (Ср) 13:21

господа, если вы работаете на локализованной версии Windows , то у вас всегда будут только одни настройки языка (если русская версия , то русский, если немецкая версия , то немецкий). Надо устанавливать интернациональную версию (еще она называлась паневропейская) и тогда у вас все получиться

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 14:51

Konst_One писал(а):господа, если вы работаете на локализованной версии Windows , то у вас всегда будут только одни настройки языка (если русская версия , то русский, если немецкая версия , то немецкий). Надо устанавливать интернациональную версию (еще она называлась паневропейская) и тогда у вас все получиться
Имхо это не так, однако не уверен.
Афаик при разработке NT изначальной целью была именно возможность использовать собственный язык в каждой проге. Я видел какой-то рекламный снимок NT, где было показано именно это - на десктопе четыре блокнота, и каждый на своём языке. А может, я это путаю с MUI, хотя вряд ли.
Но не верится мне, что одну из основных фишек NT нарочно вырезали в локализованных версиях.

И ещё афаик паневропейская версия не интернациональна, а именно, не поддерживает письмо справо налево и иероглифику. Однако, это относится только к Win9x; NT должна поддерживать любые языки вне зависимости от локализации.

А ещё я владею сокровенным знанием - что на самом деле значит аббревиатура NT! B-)
Расшифровку "New Technology", естественно, придумали уже маркетологи, когда продукт вышел в продажу.
Последний раз редактировалось tyomitch 15.09.2004 (Ср) 15:08, всего редактировалось 1 раз.
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.09.2004 (Ср) 15:02

Я видел какой-то рекламный снимок NT, где было показано именно это - на десктопе четыре блокнота, и каждый на своём языке.


NT тут не причем - я такое и на Win98 могу сделать.
На Win95 облом - там побольше проблем (пробовал в свое время).

Но, видишь ли, многие контролы VB не поддерживают уенкод. Поэтому даже с диким желанием ты не сможешь в стандартных контролах (том-же меню) показать символы другой кодовой страницы.

К примеру TheBat использовал? Локализацию там можно поменять на лету, но вот отобразить немецкие/французские буквы на русской локали не получится (ибо CharSet у них другой). К счастью такой изврат обычно и не нужен.

Без проблем это можно сделать лишь в NET. Ну а в VB6 показывать для текущей локали или Default (то бишь английский).
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 15:13

Andrey, я не совсем про это. Konst_One няп утверждает, что возможность изменения текущей локали в локализованных версиях NT намеренно заблокирована. Как авторитет в области локализации, плз подтверди или опровергни это - мне самому интересно.
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.09.2004 (Ср) 15:36

вот-вот, правильно! пусть у кого локальная русская XP И скажут нам свое слово 8)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.09.2004 (Ср) 16:21

Andrey, я не совсем про это. Konst_One няп утверждает, что возможность изменения текущей локали в локализованных версиях NT намеренно заблокирована. Как авторитет в области локализации, плз подтверди или опровергни это - мне самому интересно.


Оно, конечно, лестно, но в данном случае я на 100% уверенно не попробовав не скажу, а чтобы пробовать нужно как миниум время...

Вообще желающие могут поиграться с установкой показанной на приложенном рисунке (сейчас я на русской Win2000).

Но на мой взгляд лучше не мучиться - поставить виртуальной машиной английскую/немецкую операционку и проверять на ней. Заодно и баги связанные с другой версией можно поотлавливать, инсталяцию и прочее проверять...
Вложения
Locale.rar
(14.48 Кб) Скачиваний: 15
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 15.09.2004 (Ср) 16:26

http://msdn.microsoft.com/library/defau ... nmodel.asp

А тут уже интереснее:
http://msdn.microsoft.com/library/defau ... nmodel.asp

Загрузкой ресурсов надо управлять самостоятельно - системе все равно, что ты грузишь. Нужно через API выяснять текущую локаль и подставлять нужные значения кодом. Если же текущей локали нет, вызывать дефолтную.

Не надо полагаться на VB, надо все делать самому.

Например строки:

101 Hello
102 Привет
103 Saludo
104 Saluto
105 Gruß
106 Salut
107 love
108 любовь
109 Amor
...


И уже в зависимости от локали выбирать:

Код: Выделить всё
' 101 - идентификатор аналогов Hello
strVar = LoadResString(101 + I)


То есть для русского сдвиг будет: 1, для испанского 2, для итальянского 3, для немецкого 4, для французского 5, а для английского 0. И так строки и идут дальше.

Идентификатор слова love , будет 107


Например если русская, то I = 1
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 17:06

gaidar писал(а):http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconlocalizationmodel.asp

А тут уже интереснее:
http://msdn.microsoft.com/library/defau ... nmodel.asp

Не буду спорить, какая из двух одинаковых ссылок интереснее...
:-D
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.09.2004 (Ср) 17:11

Нужно через API выяснять текущую локаль и подставлять нужные значения кодом.


Вообще-то из ресурсов возвращается столбец текущей локали.
Здесь проблем нет - он правильно возвращается.
Как и нужный столбец, впрочем.

Пихать-же все в один столбец и разбирать самостоятельно неразумно.

Вопрос то был как на русской Windows установить другую локаль. Чтобы проверить прогу (точнее ее локализацию) на других языках.

Мой ответ был - лучше установить для подобных проверок/отладок нужную Windows под VMWare...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Ну и ну...

Сообщение kazah_ » 15.09.2004 (Ср) 19:00

мдя... :lol:
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

SBJocker
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 19.01.2004 (Пн) 16:57

Сообщение SBJocker » 16.09.2004 (Чт) 20:11

Незнаю как на XPюшке, но на Win2000 всё путём!
Локали меняются без проблем, без перезагрузки и рестартов...

Так что все на Win2000 :) (она и поустойчивей будет чем свинка... т.е. ХРюшка :) :D

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 16.09.2004 (Чт) 20:48

Вы издеваетесь на автором ?

Оленька значит слушай.
1) Запускешь VB, далее создаёшь или открываешь проект.
2) Нажимаешь "Добавление->Менеджер дополнений", а
в списке находишь "VB6 Resource Editor" и ставишь флажок,
"Загружено/выгружено", нажимаешь "ОК".
3) Нажимаешь "Инструменты->Resource Editor", далее нажимаешь
на панели инструментов окна "VB Resource Editor", кнопку
"Edit String Tables" ('abc'), далее.
Допустим ты хочешь чтобы заголовок окна твоей программы
в русской версии винды был "Ольга", а в англицкой "Olga",
ты нажимаешь на элементе в списке "101" (по умолчанию),
и кликаешь кнопку "Properties" на панели инструментов.
появится "ComboBox", в нём в первой колонке выберешь
"русский", а под надписей напиши "Ольга", далее
проделай тоже самое со второй колонкой, только там выбери
не "русский", а "английский (США)", и под надписей напиши
"Olga". Переходишь в редактор кода формы.
4) Добавляешь новую функцию "LoadStrings()", вот её код.
она будет не в модуле.
Код: Выделить всё
     Private Sub LoadStrings()
         Caption = LoadResString(101)
     End Sub

---
Далее в процедуре 'Form_Load' прописываешь "LoadStrings" и всё!

Проект готов!
Если вдруг чтото будет не понятно, пиши:
@Mail: PATRIOT-888@Yandex.ru
WWW: http://www.PATRIOT-888.narod.ru
Press any key . . .

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 17.09.2004 (Пт) 10:41

PATRIOT_kz, это я уже сделала, но проблема в том, что я не могу проверить работу программы под другими языками, она работает только в отладчике, а скомпилированный файл всегда выдает один вариант (русский).

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 17.09.2004 (Пт) 19:10

Правильно Оленька.

А что ты думала, что можно с имитировать English Under Russian?
Ето те не UnderGround !
Правда есть одна фишка с имитацией винды...
Щас по реестру полазию посмотрю , вспомню отвечу .
Press any key . . .

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 6

    TopList