[РЕШЕНО] Translations, gettext, без LCL
Модератор: Модераторы
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
[РЕШЕНО] Translations, gettext, без LCL
Не могу найти какого-нибудь минимального примера - как можно перевести ResourceString секцию без LCL? И менять тексты ресурсов без перекомпиляции? Спасибо.
Последний раз редактировалось Brainenjii 10.07.2012 13:15:55, всего редактировалось 1 раз.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Это я видел ^_^ Но как пользоваться - не понял 
Добавлено спустя 6 минут 21 секунду:
я хочу нечто такого:
разумеется, что в ru.po и fr.po все необходимые переводы есть
Добавлено спустя 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 все необходимые переводы есть
Линука под рукой к сожалению нет, но подозреваю, что функция итератор будет выглядеть как то так:
Код: Выделить всё
function Translate(Name,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;
begin
Result:=gettext(Value+CRLF);
end;- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Если найдёте время - буду просто счастлив полноценному минимальному примеру для консольной программы ^_^
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Код: Выделить всё
uses gettext;
begin
translateresourcestrings('path/to/ru.po'); // все resourcestring переведены.
end;
Sergei I. Gorelkin интересно. Что-то раньше не замечал. Вот только он использует не .po, а .mo.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
КРУТО!!! Спасибо!!!
