Вопрос Как сделать кнопку смены языка в инсталляторе?

sergey3695

Ветеран
Модератор
HourseMAN, замени на сообщения как тут
Код:
CustomMessage(lang+'ButtonBack')
на 1-ой странице.
 

HourseMAN

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

Добавлено:
Еще проблему нашел!
Если нажать кнопку смены языка на странице приветствия то кнопки (Обзор) выбора каталогов не переводит, а если не трогать, а нажать кнопку смены языка на самой странице выбора папки установки то переводит.
Решил косяк!

Добавлено:
А кто поможет по адаптацию для ISDone то есть для смены его сообственных сообщений, в скрипте их нет, то я так понял что они берутся сообственного .isl файла!
Нужно что-то на подобе этого
Код:
    if BtnGetVisibility(hlangBtn) then begin
        ChangeLanguage('English');
    end;
 
Последнее редактирование модератором:

nik1967

Old Men
Проверенный
HourseMAN,
Код:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
  if lang='eng' then
   ChangeLanguage('english')
  else
   ChangeLanguage('russian');
  .....................
  Result := ISDoneCancel;
end;
 

HourseMAN

Новичок
nik1967, по началу не работало, но только на месседжбоксах язык не меняется :(
Заработало так:
Код:
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:pAnsiChar): longword;
begin
  if lang='ENG' then begin
   ChangeLanguage('english')
  end else begin
   ChangeLanguage('russian');
  lang:= 'RUS';
  end;[CODE/]
 

vint56

Ветеран
Проверенный
HourseMAN,
вот ты пишешь нашёл баг потом косяк я их и не делал ты просил только кнопку сделать на ботве я и привёл пример только для одной кнопки и все
 

Snoopak96

Старожил
vint56,
Да вы по ходу сейчас вообще за него весь инсталл напишите :lol:
 

sergey3695

Ветеран
Модератор
Просто надо приводить аналогичные примеры или относящиеся по смыслы, которые помогут в решении. А то копировать - вставить. Я ж говорю - не интересно. То хоть малость мыслит, а то копипастит тупо. По крайней мере он понимает где редактировать надо и понятно что требуется, а то иногда некоторые напишут, прям сам не понимаешь что это? С другой стороны да, проще привести готовый пример, но не в этом случае, т.к. универсального примера (скорее готового решения, на все случаи) тут нет и быть не может. Спасибо, если прочли мою флудню :drinks:. (и да в данном случае надо писать не баг или ошибка, а как решить или помогите, ну или возможно ли и (что-то на подобии этого), т.к. некоторых раздражает. мне как-то по барабану, просто так предложение звучит как просьба, а не вызов к устранению ошибки :p)
 

HourseMAN

Новичок


Добавлено:
Прошу в последний раз помочь
Когда сделал смену языка для лейбла который показываtт сколько места на диске нужно для установки, то caption и размер слитно, а не раздельно
тоесть получилось так "Требуется места на диске:4.88Гб" а нужно так "Требуется места на диске: 4.88 Гб"
Прошу помощи в последний раз в этой теме :(
Код:
function NumToStr(Float: Extended): String;
begin
  Result:= format('%.2n', [Float]); StringChange(Result, ',', '.');
  while ((Result[Length(Result)] = '0')or(Result[Length(Result)] = '.'))and(Pos('.', Result) > 0) do
  SetLength(Result, Length(Result)-1);
end;

function MbOrTb(Float: Extended): String;
begin
  if Float < 1024 then Result:= NumToStr(Float)+ CustomMessage(lang+'SizeMB') else
    if Float/1024 < 1024 then Result:= NumToStr(Float/1024)+ CustomMessage(lang+'SizeGB') else
      Result:= NumToStr(Float/(1024*1024))+ CustomMessage(lang+'SizeTB');

procedure ObjectFunc(Sender: TObject);
var
  Drive: String;
begin
  case Sender of
    WizardForm.DirEdit: begin
      Drive:= ExtractFileDrive(WizardForm.DirEdit.Text);
      GetSpaceOnDisk(Drive, True, FreeMB, TotalMB);
      InstallSpacelabel.Caption:=CustomMessage(lang+'InstallSpace' )+MbOrTb({#NeedInstallSize});
      NeedSpaceLabel.Caption:=CustomMessage(lang+'NeedSpace' )+MbOrTb({#NeedSize});
end;

В этих строках отступал уже как угодно не помогает
Код:
  if Float < 1024 then Result:= NumToStr(Float)+ CustomMessage(lang+'SizeMB') else
    if Float/1024 < 1024 then Result:= NumToStr(Float/1024)+ CustomMessage(lang+'SizeGB') else
      Result:= NumToStr(Float/(1024*1024))+ CustomMessage(lang+'SizeTB');
end;

      InstallSpacelabel.Caption:=CustomMessage(lang+'InstallSpace' )+MbOrTb({#NeedInstallSize});
      NeedSpaceLabel.Caption:=CustomMessage(lang+'NeedSpace' )+MbOrTb({#NeedSize});
 
Последнее редактирование модератором:

vint56

Ветеран
Проверенный
HourseMAN,
InstallSpacelabel.Caption:=CustomMessage(lang+'TotalNeedSpaceLabel' )+' '+MbOrTb({#NeedInstallSize});
 

HourseMAN

Новичок
vint56, спасибо размер от caption'а отступает, но Гб Мб Тб от размера не отступают
 

sergey3695

Ветеран
Модератор
 
Сверху