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

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

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

qubasesx
новенький
Сообщения: 16
Зарегистрирован: 06.03.2011 23:15:34
Откуда: Орехово-Зуево

Сообщение qubasesx »

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

Код: Выделить всё

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


ткните пожалуйста меня носом, что тут неверно? почему Identifier not found "Translate"?
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

2qubasesx

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

Код: Выделить всё

Данную функцию НЕЛЬЗЯ включать в состав класса!


А у вас:

Код: Выделить всё

function TForm1.Translate(AName,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;


Tform1 - это класс. Уберите. И прототип объявляйте вне класса (в данном случае можно и вообще не объявлять).
qubasesx
новенький
Сообщения: 16
Зарегистрирован: 06.03.2011 23:15:34
Откуда: Орехово-Зуево

Сообщение qubasesx »

Спасибо! Разобрался.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

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

Сообщение sermaxim »

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

Сообщение vkhacker »

Спасибо, пригодилось :)
Аватара пользователя
debi12345
долгожитель
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 »

Вау, а что - Лазарь уже не использует системные (в системной кодировке и локализации) диалоги (для достижения ось-нативного вида) ?
То есть Лазарь теперь все рисует сам - как MSE* и fpGUI?
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

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

Его можно использовать для русификации:

Код: Выделить всё

uses
  Translations;
******************
initialization
  TranslateResourceStrings('lclstrconsts.ru.po');


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

ps:
Этот файлик придется таскать вместе с приложением, без него в откомпилированном приложении русификайия пропадает...
John`S
незнакомец
Сообщения: 2
Зарегистрирован: 26.08.2014 07:11:33

Сообщение John`S »

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

что надо сделать (для 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 раза.
MaratIsk
постоялец
Сообщения: 125
Зарегистрирован: 20.08.2009 18:15:20

Сообщение MaratIsk »

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

Код: Выделить всё

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;
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>странно, почему у меня с этим нет проблем?!
А кто сказал что проблем нет? Они есть, вернее начнутся когда программу запустит не рускоязычный пользователь))
John`S
незнакомец
Сообщения: 2
Зарегистрирован: 26.08.2014 07:11:33

Сообщение John`S »

MaratIsk писал(а):странно, почему у меня с этим нет проблем?!
...
Дело в том, что указанным способом, меняется язык всех стандартных диалогов, включая эксепшены, а не только "пары нужных кнопок"...
0beron
новенький
Сообщения: 23
Зарегистрирован: 18.08.2012 19:32:10

Сообщение 0beron »

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

К сожалению этот способ не работает если Лазарь собран с библиотекой виджетов qt а не gtk2 (по умолчанию)
Ответить