Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Multilanguage 
:(
    Опции темы
-= DEMON =-
  Дата 17.12.2002, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Всем добрый день!
Как создается мультиязычное приложение? Нет ли  у кого ссылки на документацию?
PM MAIL   Вверх
Step
Дата 18.12.2002, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



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

если сложно то это делается на основе создания ДЛЛ библиотек на разных языках.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
AntonSaburov
Дата 18.12.2002, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



В принципе Step практически указал путь. Могу только от себя добавить
MSDN - National Language Support.
Надо почитать и подумать. Если будут уже конкретные вопросы - welcome.
Народ не даст тебе погибнуть :)
PM MAIL WWW ICQ   Вверх
Technoboss
Дата 18.12.2002, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.11.2002

Репутация: нет
Всего: нет



Привет!
Я посоветую использовать INI файл.

[Rus]
Button1=Отмена
[Engl]
Button1=Cancel
и т.д
Создание нескольких файлов влечет за собой заметное снижение
скорости работы приложения.
PM MAIL   Вверх
Technoboss
Дата 18.12.2002, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.11.2002

Репутация: нет
Всего: нет



Да, совсем забыл!
Из собственного опыта.
Необходимо пользоваться своими шрифтами для каждого языка,
другие пути (определение Default Charset) и прочее не дают желаемого
результата.
PM MAIL   Вверх
XpyDi
Дата 18.12.2002, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 25.11.2002
Где: USSR

Репутация: нет
Всего: 2



Может будет полезно вот стандартные возможности которые предоставляет Delphi 5, я думаю нужно вначале ознакомиться с ними, чтобы искать другие пути решения этой проблемы.
Итак поехали:

Delphi 5 предоставляет новые удобные средства создания приложений в различных языковых версиях. Для создания таких приложений используется набор средств под общим названием International Translation Environment.

Проиллюстрируем эти возможности на простейшем примере. Предположим, нам нужно создать приложение, существующее в русской и английской версии. Создадим новый проект, состоящий из одной формы с несколькими интерфейсными элементами, и сохраним его:

Далее выберем из главного меню опцию Project/Language/Add. В результате будет запущен эксперт, предлагающий последовательность форм, в которых следует выбрать поддерживаемые проектом языки

В результате будут созданы два дополнительных проекта динамически загружаемых библиотек, содержащих строковые ресурсы для двух языков, и автоматически запущен Translation Manager

Translation Manager представляет собой, по существу, редактор строковых ресурсов, которые могут присутствовать в форме. В нем отображены сведения о тех свойствах интерфейсных элементов, которые могут быть различными в различных языковых версиях приложения. В числе этих свойств - не только свойства типа Caption или Text, но и иные визуальные характеристики, например, Height и Width. Помимо этого, в строковых ресурсах присутствуют и стандартные строки (названия дней недели и месяцев, сообщения об ошибках, названия общеупотребимых кнопок типа "Yes", "No", "Cancel", "Help", и др.).

Отредактируем в нашем примере названия интерфейсных элементов

Теперь мы можем выбрать опцию Project/Languages/Set Active и выбрать один из доступных языков. Скомпилировав приложение, получим нужную языковую версию

При поставке такого приложения следует не забыть скопировать в его каталог один из двух скомпилированных файлов ресурсов, имеющих в нашем случае расширения *.ENU и *.RUS и имя, совпадающее с именем исполняемого файла.

Отметим, что языковые версии строк можно сохранить в специальном хранилище (так называемомTranslation Repository - репозитарии переводов) и загружать из него. Данный репозитарий является разделяемым, что позволяет использовать его при групповой работе.
PM MAIL WWW ICQ   Вверх
Step
Дата 18.12.2002, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Цитата(XpyDi @ 18.12.2002, 09:40)
Может будет полезно вот стандартные возможности

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


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
XpyDi
Дата 19.12.2002, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 25.11.2002
Где: USSR

Репутация: нет
Всего: 2



Цитата(Step @ 18.12.2002, 14:38)
Это конечно хорошо, вот только я не уверен, что эта вещь сможет учесть все строковые переменные проекта, уж их слишком много, и в разных местах, и представлены по разному и т.д. и т.п. и как правило без глюков в этом аспекте не обойдется.

Скорее всего что-то будет очень неудобно использовать в своих программах. А по поводу того, что сможет эта "вещь" учесть все строковые переменные проекта или нет, то это я думаю уже зависит от автора/руководителя проекта.
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 19.12.2002, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



XpyDi: Отлично! Надо только маленько поподробнее, с примерами, и будет неплохая статья.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Fantasist
Дата 19.12.2002, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



Цитата(Step @ 18.12.2002, 11:38)
Это конечно хорошо, вот только я не уверен, что эта вещь сможет учесть все строковые переменные проекта, уж их слишком много, и в разных местах, и представлены по разному и т.д. и т.п. и как правило без глюков в этом аспекте не обойдется

Никто за тебя ВСЕ строковые переменные учесть все равно не сможет. Твоя задача организовать проект так, чтобы учестывать их было как можно легче.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Alex
Дата 20.12.2002, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Месяца три назад сам столкнулся с проблемой перевода своего приложения на разные языки. После долгих поисков и разбирательств остановил свой выбор на стандартном методе перевода, который в строен в delphi, так как он лишен одного недостатка которым обладают все остальные методы, которые я встречал. А недостаток, вот какой все методы перевода хорошо работают, когда нужно перевести саму форму, но ужасно или вообще не работают с переводом сообщений и разных других строк, вставленных в код, в том числе и констант в которых лично я и храню все строки, а по коду просто обращаюсь к константам. При реализации в своем приложении других я зыков мне пришлось только заменить слово Const на resourcestring.

Примером может служить демо проект RichEdit, который входит в состав delphi.

Будут проблемы, пишите.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Гость_Sergun
Дата 2.8.2003, 20:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так, а кто нибудь конкретный пример может привестиconfused.gif Дайте посмотреть и конкретные реализации на Delphi... если не влом конечно... мой е-майл [email protected]
  Вверх
stab
Дата 3.8.2003, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



в хелпе вычитал про динамическую смену языков:

procedure TForm1.Button1Click(Sender: TObject);
const
RUS = (SUBLANG_NEUTRAL shl 10) or LANG_RUSSIAN;
begin
if LoadNewResourceModule(RUS) <> 0 then
ReinitializeForms;
end;

все бы хорошо, только все published свойства компонентов сбрасывются в то состояние кокое они имели при разрботке, т.е.:

1. Есть Form1
2. В процессе работы с прогой Form1 была максисмизированна
3. Меняем язык
4. Form1 имеет позицию как при разработке, при чем состояние максимизации не верно обрабатывается...

т.е. все выглядит так как будто приложение только что запустили sad.gif

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

з.ы. LoadNewResourceModule и ReinitializeForms в модуле ReInit, который лежит в $(DELPHI)\Demos\RichEdit


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.