Главная Новые темы Список тем Задать вопрос Поиск  

Форум "Delphi"


Паскаль, Делфи


 #0 Go © 30.06.06 13:45:32 - 03.08.06 12:08:31

локализация



А чем Вы пользуетесь для локализации приложений написаных на делфях!?
Хотелось бы услышать побольше мнений ;) Цитата

 #1 Старый маразматик © 30.06.06 14:06:39

ничем, поскоку нету необходимости. а так, как сделать, так можно обычный ини-файл, данные из него в глобальные переменные, у аж их подсовывать куда нужно. ничего особо военного, токо с размерами контролов потом может несчастье приключицца, ежели слово влазить не будет
 #2 Go © 30.06.06 14:23:38

довольно большой проект, изначально не был расчитан на перевод  
Судя по литературе есть 2 основных направления ->

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





 #3 Старый маразматик © 30.06.06 15:15:08

> тут минус бОльшие затраты времени

гы. ты будешь удивленна, но мегабайтный файл читаеца с диска за буквально секунду. так шо затраты времени в процессе работы программы незначительны. вопрос в том, чтобы всем кнопочкам, менюшкам и прочим лабелам назначить соотвецтвие с текстовухой. мне вот видицца объект, в котором вся эта лабуда будет перечислена, например по имени контрола... кстати, это дело можно автоматизировать, не ручками же всю эту хрень писать? обход всех контролов на формах с записью имен и капшинов в файл. потом только немного подправить, и усе готово
 #4 VictorT © 30.06.06 15:38:59

> довольно большой проект, изначально не был расчитан на перевод
Есть софтина (для дельфей), не вспомню названия, пробегается по файлам проекта (pas, dpr и т.п.), вытягивает строковые константы и пихает в ресурсы или в ini (с автоматической правкой исходников на обращение к ресурсам). После этого остаётся только сделать перевод ресурсов или ini на нужные языки и обеспещить переключение на нужные ресурсы в зависимости от выбора пользователя.
 #5 Go © 30.06.06 17:23:09

#4  VictorT  © 30.06.06 17:38:59
да я несколько софтин таких нашла, но все они предусматривают отдельную компиляцию проекта, а мне кажется что это не хорошо... или я не права!?

#3  Старый маразматик  © 30.06.06 17:15:08
тут ведь не только чтение файла. Чтение файла только один раз при открытии, все грузится в определенную структуру.
Зато каждый раз при создании очередной формы нужно пробегать по компонентам  и заменять то что попадется, то есть теоретически  открытие каждой формы будет чуть дольше, хотя возможно это *дольше* и не будет заметно  человеческому глазу..
 #6 VictorT © 01.07.06 08:06:27

> да я несколько софтин таких нашла, но все они предусматривают
> отдельную компиляцию проекта,
Нет, я видел, именно, как я написал выше, т.е. переделывают проект, в котором изначально не предусматривалась локализация, на проект, который можно локализовывать без перекомпиляции.
Собственно, я даже помню, у кого именно видел, он пользовался этой софтиной. Я ему кинул ссылку на эту ветку, пока не ответил.
 #7 FonMax © 05.07.06 16:45:19

XML со языковыми ресурсами в больший проектах, INI -- в маленьких.
 #8 Ketmar © 05.07.06 21:22:59

тупой текстовый файл, в котором перечислены имена компонентиков и поля, а также на что заменять. плюс -- в том же файле хранятся просто сообщения, текст которых получается при помощи вызова типа MLD_GetMessageText(mtssageName, locid). модуль работы с файом локализаций -- самописный.
 #9 ID © 27.07.06 15:29:07

www.deloc.narod.ru - ОТЛИЧНАЯ ПРОГРАММА.
Пользуюсь, очень доволен.
Есть примеры реализации.
Язык интерфейса меняется "не лету", без перезагрузки программы.
 #10 Ketmar © 27.07.06 17:45:19

а там исходники дают (лень качать). если нет -- фтопку.
 #11 Mystic © 27.07.06 21:14:15

Можно еще пользоваться встроеными средствами локализации, которые создают нужную копию ресурсов Есть даже пример в поставке Delphi с локализацией При использовании INI-Файлов возникают такие проблемы:


  -- Локализация стандартных сообщений об ошибках. Например, приходится писать

  try
    I := StrToInt(S);
  except
    on
E: EConvert do
      raise
EConvert.CreateFmt('%s не является целым числом', [I]);
  end;


  -- Размещение контролов на форме. Иногда русская надпись сожержит много больше букв, чем английская и налазит на другие контролы.
 #12 ID © 28.07.06 12:39:36

а там исходники дают (лень качать). если нет -- фтопку.
Есть исходики модуля, который подключается к проекту. Кроме этого модуля есть некая софтина, которая генерит файлик локализации на основании откомпилированого проекта.
Если лень прочитать с сайта разработчика, то брошу цитату из описания программы

1. Назначение.
--------------

Программа ДеЛок (Делфийный локализатор) предназначена для локализации
интерфейса Ваших делфийных программ на любое количество языков. Локализируются
строки, объявленные в секции resourcestring, а также строковые свойства форм и
компонентов.


2. Особенности
--------------

Программа абсолютно бесплатна для локализации любых программ (включая
коммерческие).

Простой, удобный и понятный интерфейс.

Минимум добавлений в исходный код Вашей программы.

Экспорт и импорт сделанных Вами переводов из одних проектов в другие.

Фильтрация списка локализируемых свойств и строк.

Перевод всех строковых свойств компонент, включая свойства наследников
TStrings и TCollection.

Переключение языков "на лету".

 #13 Ketmar © 28.07.06 15:55:05

сайт я читал. я понял, что ПОЛНЫХ исходников не дают.
фтопку.
 #14 ID © 28.07.06 16:28:36

фтопку всегда можно успеть бросить :)
 #15 Go © 28.07.06 19:14:53

посмотрела... спасибо
но свое все равно луТше и проСЧе..  
  
 #16 ID © 31.07.06 10:19:42

#15  Go  © 28.07.06 21:14:53
А кокой вариант лучше?
Если переделывать весь проект на работу с текстовыми файлами или создавать клон проекта и переводить его на другой язык, то я не согласен, что это лучше.
К примеру совой проект с помощю DeLoc я перевел на два языка за пол часа, при чем проект не был изначально задуман как многоязыковый.
 #17 Go © 31.07.06 14:30:28

Пользуясь своей *штуковиной*, все необходимые приготовления для перевода проекта заняли минут 10 + сам перевод  (  для проверки использовался транслит  = 1 мин.) Проект довольно здоровый. Не клонируется. Переводы находятся в отдельных файлах (мне кажется, что нагляднее в текстовых, но изменить формат это ведь не проблема, да и читается из файла единожды :).  
А почему этот вариант для меня лучше !? - так потому что мною написаный  мне удобнее и проще  + знаю кого *долбать* в случае чего  
 #18 Deep © 31.07.06 15:40:10

>  знаю кого *долбать* в случае чего  
      
 #19 ID © 02.08.06 17:27:04

#17  Go  © 31.07.06 16:30:28
можно ли  своей *штуковиной* переводить интерфейс "на лету" ?
Если не секрет, по подробней о ней, об алгоритме работы этой штуковины   и как за 10 минут можно подготовить и перевести проект, который изначально к этому не был готов? Как минимум все текстовые сообщения выдаваемые программой должны быть оформлены через константы, resourcestring.
Можно ли этой штуковиной перевести сообщения выдаваемые компонентами, которые есть в проекте, но исходников которых нет?
 
 #20 ID © 02.08.06 17:39:20

... мне в проекте для локализации пришлось добавить всего лишь несколько строк для каждого языка (текстовые сообщения имею привычку описывать с помощью констант, по этому заменил const на resourcestring)

// для русского

  if LoadLcf( ChangeFileExt( ParamStr( 0 ), '.lcf' ), $419,
    nil, nil ) = 1
  then  TranslateComponent( Self );

а помошью DeLoc сформировал файл локализации
Если я меняю интерфейс программы в дальнейшем, то для до-локализации необходимо лишь перегенерировать файл локализации, что занимает  пол секунды  
 #21 ZeroDivide © 02.08.06 21:42:30

Написал свою приблуду. Доволен. Удобно :) Работы, ну максимум на 2 дня и... неделю до этого, на поиски наилучшего способа локализации.
 #22 Deep © 03.08.06 12:08:31

> неделю до этого, на поиски наилучшего способа локализации.
а что за способ? поделись    




  • Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов