[РЕШЕНО] Translations, gettext, без LCL

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

[РЕШЕНО] Translations, gettext, без LCL

Сообщение Brainenjii »

Не могу найти какого-нибудь минимального примера - как можно перевести ResourceString секцию без LCL? И менять тексты ресурсов без перекомпиляции? Спасибо.
Последний раз редактировалось Brainenjii 10.07.2012 13:15:55, всего редактировалось 1 раз.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Это я видел ^_^ Но как пользоваться - не понял :oops:

Добавлено спустя 6 минут 21 секунду:
я хочу нечто такого:

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

Program SimpleTranslation;
Uses
  MagicTranslatorUnit; // что здесь должно быть?
ResourceString
  rsText  = 'Text';
Begin
  MagicTranslate('/path/to/ru.po');
  WriteLn(rsText); // Текст
  MagicTranslate('/path/to/fr.po');
  WriteLn(rsText); // Texte
End.

разумеется, что в ru.po и fr.po все необходимые переводы есть
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Линука под рукой к сожалению нет, но подозреваю, что функция итератор будет выглядеть как то так:

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

function Translate(Name,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;
begin
  Result:=gettext(Value+CRLF);
end;
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

Если найдёте время - буду просто счастлив полноценному минимальному примеру для консольной программы ^_^
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

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

uses gettext;

begin
  translateresourcestrings('path/to/ru.po');  // все resourcestring переведены.
end;
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Sergei I. Gorelkin интересно. Что-то раньше не замечал. Вот только он использует не .po, а .mo.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

КРУТО!!! Спасибо!!!
Ответить