powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Многоязычность в VFP
23 сообщений из 23, страница 1 из 1
Многоязычность в VFP
    #34622354
Гурант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здравствуйте!

Скоро понадобится реализовать многоязычность в проекте на VFP9. Как это лучше сделать?
Т.е. Будет необходимость вводить и хранить данные на разных языках (данные хранятся на MSSQL), а так-же отображение данных, причем в форме отображать сразу несколько языков.
Читал предыдущие темы, но четкого плана действий не сложилось.

Как я понял, есть три пути развития:
1. Взять какой нибуть UNICOD-шрифт и задавать FontCharSet на Textbox
2. Брать отдельные шрифты на каждый объект
3. Использовать какой нибудь ActiveX

Может кто-то уже делал подобные изыскания - поделитесь пожалуйста :)
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34622681
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГурантМожет кто-то уже делал подобные изыскания - поделитесь пожалуйста :)
Пытались делать (очень много проблем, которые частично решаются)...

После нескольких недель "мучений" пришлось отказаться, благо что MS .NET 2.0 вышел к тому времени - все быстренько сделали на .NET...
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34622698
ГурантВсем здравствуйте!

Скоро понадобится реализовать многоязычность в проекте на VFP9. Как это лучше сделать?
Т.е. Будет необходимость вводить и хранить данные на разных языках (данные хранятся на MSSQL), а так-же отображение данных, причем в форме отображать сразу несколько языков.
Читал предыдущие темы, но четкого плана действий не сложилось.

Как я понял, есть три пути развития:
1. Взять какой нибуть UNICOD-шрифт и задавать FontCharSet на Textbox
2. Брать отдельные шрифты на каждый объект
3. Использовать какой нибудь ActiveX

Может кто-то уже делал подобные изыскания - поделитесь пожалуйста :)
В С++ это реализуется через многоязычную таблицу сообщений в ресурсах (String Table).
В Фоксе, я так думаю, можно все сообщения/надписи/строки поместить в таблицу следующей структуры:

APP_Messages (Message_id,lang_id,message_String) &&(типы данных выберете на свой вкус)

Примерное наполнение таблицы:
Код: plaintext
1.
2.
3.
4.
5.
Message_id  lang_id  message_String
00001         00419    Добро пожаловать
00002         00409    Good bye!
00001         00409    Welcome
00002         00419    До свидания!!!
где 00419 - идентификатор русского языка, 00409 - идентификатор английского языка

Сообщения в форму из таблицы помещаются по ключу: (код сообщения+код языка)
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34623882
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Сообщения в форму из таблицы помещаются по ключу: (код сообщения+код
> языка)

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

2 автору 1го письма - информация в БД тоже будет храниться на нескольких я
зыках ??

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34625000
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кий
Message_id lang_id message_String
00001 00419 Добро пожаловать
00002 00409 Good bye!
00001 00409 Welcome
00002 00419 До свидания!!!
где 00419 - идентификатор русского языка, 00409 - идентификатор английского языка

Сообщения в форму из таблицы помещаются по ключу: (код сообщения+код языка)
OffTop: Скажи, пожалста, какому стандарту принадлежат вот эти вот коды и где бы поглядеть?
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34625228
Гурант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir M Sklyar

2 автору 1го письма - информация в БД тоже будет храниться на нескольких я
зыках ??

Posted via ActualForum NNTP Server 1.4
Да. По запросу, SP будет возвращать курсор с соответствующим языком. Проблема в его адекватном отображении и/или редактировании. Чисто техническая проблема
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34625241
Kruchinin Pahan Станислав С...кий
Message_id lang_id message_String
00001 00419 Добро пожаловать
00002 00409 Good bye!
00001 00409 Welcome
00002 00419 До свидания!!!
где 00419 - идентификатор русского языка, 00409 - идентификатор английского языка

Сообщения в форму из таблицы помещаются по ключу: (код сообщения+код языка)
OffTop: Скажи, пожалста, какому стандарту принадлежат вот эти вот коды и где бы поглядеть?
Вообще-то я это привел для примера...
Но сами значения эти я взял из винды:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard layont\DosKeybCodes\
и
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard layonts\
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34626828
Гурант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Со труктурой базы я и сам смогу разобраться
Меня интересует чисто механическое отображение данных на разных языках

Например:
Фразу на немецком языке (со всеми ихними заморочками) как отобразить в текстбоксе? Задать FontCharSet = 238 (Central European) или этого не достаточно?
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34626834
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Достаточно.
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34628610
Hi Гурант

Сейчас в моем проекте тоже стоит задача поддержки многоязычности, т.к. проект предпологает разработку серийного продукта для распостранения по Миру.

Работая в одной ИТ фирме, видел как они реализовали это - очень неудобно.
В основе лежат text файлы, для каждого языка в отдельности. Каждый объект обращается к нему по адресу n-byte, и забирает оттуда текст.
Работает быстро, но обслуживать эти файлы - не удобно.

Сейчас же, решение вижу таким:
есть текстовые файлы, для каждого языва в отдельности, со структурой:
Insert
Save
Cancel
Delete
Reply
Forward
Contact
Date Start
Date End

Далее, при старте программы, после выбранного языка, этот файл импортируется в DBF или курсор. Дальше уже возможностей каждому хватит...
=)
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34629831
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвидел как они реализовали это - очень неудобно
Я не видел ни одной "удобной" реализации. Это для разработчика всегда - гемор.

Для Caption по числовому коду - без проблем.
А вот для сообщений...
Где-то встречал решение, когда в качестве ключа использовалась фраза
на основном (английском скажем) языке. В данном случае информативность
сильно повышается (надеюсь не за счёт производительности).

А ваша широкая структура губит производительность фокса на корню.
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34629906
VFP Desktop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CyvА ваша широкая структура

Прошу сдесь подробней =)

CyvДля Caption по числовому коду - без проблем.

Вот, как я и говорил, что бы отредактировать этот файл, где в качестве номера позиции используется n-byte - очень сложно
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34631598
2 Cyv

Автор VFP Desktop - это я
(псевдоним из моей предыдущей темы, используемый для анонимности)
=)
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34632376
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпосле выбранного языка, этот файл импортируется в DBF или курсор
А как это подружить с приватными сессиями данных?
Загружать для каждой сессии это добро как-то расточительно :).
Хотя встречались и такие решения.
Лучше уж сразу в глобальный массив или объект.

По поводу приведённой выше "структуры" - это поля или записи?
Если поля, то есть уверенность, что их количество конечно?

Если записи, то всё нормально, ключём выступает фраза на "главном"
языке, как я уже писАл.
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34633453
CyvА как это подружить с приватными сессиями данных?
Загружать для каждой сессии это добро как-то расточительно :).


не для поста, а для моей темы Desktop vs Web based =)

Cyv- это поля или записи?

позиции, то бишь записи

совершенно верно,
ключем будет - номер записи =)
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34650710
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недавно реализовал двуязычный проект на FoxPro 9.0 Довольно большая база данных, поддерживающая судостроительную САПР.
Действительно, в Fox’e нет штатных средств локализации, как VC и Borland’e.
Пришлось их придумать. Весь интерфейс вынес в одну таблицу со структурой:
<имя модуля> <имя программы/формы> <идентификатор фразы> <Русский вариант> <Анлг. В-т>
Далее во всех формах, программах, библиотеках были найдены фразы языка и помещены в эту таблицу.
Далее все найденные фразы были заменены на их идентификаторы. Сами эти идентификаторы в программе являются переменными, получающими свои значения в головном модуле, перед их появлением в интерфейсе. Получилось порядка 2000 фраз на весь проект. Значения фраз загружаются в зависимости от переменной языка, хранимой в Реестре Windows – практически мгновенно.
Для сбора фраз из исходного русского проекта, последующего сопровождения таблицы интерфейса пришлось сделать специальный редактор, на Fox’e, конечно.
В формы FoxPro (в окно Properties) идентификаторы фраз вставляются с префиксом ‘=’.
Например: =Fraza001

В Design Time такой Caption не виден. Это с непривычки неудобно. В Run Time, когда значения идентификаторов фраз определяются, тайное становится явным.

...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34650752
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей КВ Design Time такой Caption не виден. Это с непривычки неудобно.
Это очень просто решается.

Caption= Whatever you need
Name="Fraza001"

А в Init формы уже заменяем все Caption соответствующими значаниями из таблицы для Name=XXX
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34651281
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл сказать, где-то в FoxTalk была статья на тему многоязычных интерфейсов... Посморите в Интернете...
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34651501
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ Design Time такой Caption не виден. Это с непривычки неудобно
Это для тебя - "неудобно".
А для человека, который не дай бог будет это сопровождать - беда.
В дизайне всё должно быть на "основном" языке, для прочего -
добавить свойство и метод для подмены.
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34652139
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто для тебя - "неудобно".
А для человека, который не дай бог будет это сопровождать - беда.
В дизайне всё должно быть на "основном" языке, для прочего -
добавить свойство и метод для подмены.

Не видны фразы в дизайне только после первой загрузки проекта. После первого прогона (в дизайне), когда все переменные инициализируются (они - глобальные переменные), всё становится видно, причём на нужном языке.
Т.о. никаких проблем при сопровождении - редактируй таблицу интерфейса и наблюдай
изменения
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34652219
А вот мой способ удобен в design time и при обслуживании "языковых" файлов =)

Просто прописываем значение по умолчанию в свойство Caption - для удобного ориентирования в design time. А в метод Init что-то типа:
lcReturnText = GetText(n)
...
this.Caption = lcReturnText
где n - номер записи в курсоре, в который при запуске программы импортировался текстовый файл соответствующий выбранному языку.
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34655934
Гурант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы, но я спрашивал про режим редактирования.
Т.е. Как в TextBox отобразить слово на немецком языке при 1251, да еще адекватно его редактировать?
...
Рейтинг: 0 / 0
Многоязычность в VFP
    #34657930
Cyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык ответили вроде что
"Задать FontCharSet = 238 (Central European) или этого не достаточно?" - достаточно...

авторда еще адекватно его редактировать?
подключить соотв. раскладку клавиатуры винды естественно.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Многоязычность в VFP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]