Русификация кнопок в MessageBox

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Русификация кнопок в MessageBox

Сообщение qubasesx » 04.05.2011 21:47:05

блин, а я - балда так и не въеду, что делать с ошибкой

Код: Выделить всё
Владимир писал(а):
function TForm1.Translate(AName,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;
....
....
//здесь ругань на SetResourceStrings(@Translate,nil); -Identifier not found "Translate"


ткните пожалуйста меня носом, что тут неверно? почему Identifier not found "Translate"?
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Русификация кнопок в MessageBox

Сообщение Nik » 05.05.2011 09:11:02

2qubasesx

Выше написано:

Код: Выделить всё
Данную функцию НЕЛЬЗЯ включать в состав класса!


А у вас:

Код: Выделить всё
function TForm1.Translate(AName,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;


Tform1 - это класс. Уберите. И прототип объявляйте вне класса (в данном случае можно и вообще не объявлять).
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Русификация кнопок в MessageBox

Сообщение qubasesx » 06.05.2011 02:31:48

Спасибо! Разобрался.
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Русификация кнопок в MessageBox

Сообщение vada » 06.05.2011 12:13:07

О! Спасибо! И мне пригодилось!
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Русификация кнопок в MessageBox

Сообщение sermaxim » 21.07.2011 13:45:48

спасибо!
sermaxim
новенький
 
Сообщения: 22
Зарегистрирован: 05.07.2010 03:56:34

Re: Русификация кнопок в MessageBox

Сообщение vkhacker » 06.02.2014 09:53:43

Спасибо, пригодилось :)
vkhacker
незнакомец
 
Сообщения: 9
Зарегистрирован: 06.02.2014 09:50:35

Re: Русификация кнопок в MessageBox

Сообщение debi12345 » 06.02.2014 20:16:24

Вау, а что - Лазарь уже не использует системные (в системной кодировке и локализации) диалоги (для достижения ось-нативного вида) ?
То есть Лазарь теперь все рисует сам - как MSE* и fpGUI?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Русификация кнопок в MessageBox

Сообщение *Rik* » 06.02.2014 22:31:44

В лазарусе в папке
lcl\languages есть файл lclstrconsts.ru.po

Его можно использовать для русификации:
Код: Выделить всё
uses
  Translations;
******************
initialization
  TranslateResourceStrings('lclstrconsts.ru.po');


Я когда эксперементировал, этот файл в папку своего проекта скопировал и включил в проект.

ps:
Этот файлик придется таскать вместе с приложением, без него в откомпилированном приложении русификайия пропадает...
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Русификация кнопок в MessageBox

Сообщение John`S » 26.08.2014 07:44:41

Первое время хватало примера из этой ветки.
Потом захотелось большего. Нашёл тут, и чуток копнув - получилось!

что надо сделать (для FPC c 2.6.2 под windows):
зайти в папку C:\lazarus\lcl\languages\ и компильнуть файлик:
Код: Выделить всё
C:\lazarus\tools\lazres.exe ulng_ru.lrs lclstrconsts.ru.po
Скопировать ulng_ru.lrs себе в папку с проектом.
Затем добавить в главную форму:
Код: Выделить всё
uses LResources, Translations;

function TranslateUnitResourceStrings: boolean;
var
  r: TLResource;
  POFile: TPOFile;
begin
  r:=LazarusResources.Find('lclstrconsts.ru','PO');
  POFile:=TPOFile.Create;
  try
    POFile.ReadPOText(r.Value);
    Result:=Translations.TranslateUnitResourceStrings('lclstrconsts',POFile);
  finally
    FreeAndNil(POFile);
  end;
end;   

procedure TГлавнаяФорма.FormCreate(Sender: TObject);
begin
  TranslateUnitResourceStrings;   
end;

initialization
  {$I ulng_ru.lrs}


всё взято из wiki
там же описаны другие способы.
Последний раз редактировалось John`S 26.08.2014 20:04:30, всего редактировалось 2 раз(а).
John`S
незнакомец
 
Сообщения: 2
Зарегистрирован: 26.08.2014 07:11:33

Re: Русификация кнопок в MessageBox

Сообщение MaratIsk » 26.08.2014 11:22:34

странно, почему у меня с этим нет проблем?!

Код: Выделить всё
function ShowQuestion(var Msg: string) : Integer;
var
  ModalResult : TModalResult;
begin
  ModalResult := QuestionDlg(Application.Title, Msg, mtConfirmation, [mrOK, 'Да', mrCancel,'Нет'], 0);
  case ModalResult of
    mrOK:     Result := 0;
    mrCancel: Result := 1;
    else      Result := -1;
  end;
end;
MaratIsk
новенький
 
Сообщения: 93
Зарегистрирован: 20.08.2009 18:15:20

Re: Русификация кнопок в MessageBox

Сообщение zub » 26.08.2014 11:36:49

>>странно, почему у меня с этим нет проблем?!
А кто сказал что проблем нет? Они есть, вернее начнутся когда программу запустит не рускоязычный пользователь))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Русификация кнопок в MessageBox

Сообщение John`S » 26.08.2014 19:40:31

MaratIsk писал(а):странно, почему у меня с этим нет проблем?!
...
Дело в том, что указанным способом, меняется язык всех стандартных диалогов, включая эксепшены, а не только "пары нужных кнопок"...
John`S
незнакомец
 
Сообщения: 2
Зарегистрирован: 26.08.2014 07:11:33

Re: Русификация кнопок в MessageBox

Сообщение 0beron » 03.10.2015 13:16:06

John`S писал(а):
MaratIsk писал(а):странно, почему у меня с этим нет проблем?!
...
Дело в том, что указанным способом, меняется язык всех стандартных диалогов, включая эксепшены, а не только "пары нужных кнопок"...

К сожалению этот способ не работает если Лазарь собран с библиотекой виджетов qt а не gtk2 (по умолчанию)
0beron
новенький
 
Сообщения: 23
Зарегистрирован: 18.08.2012 19:32:10

Пред.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru