XEPOMAHT, а есть смысл хранить в DLL? Осилишь вызов tr из era.dll + динамическое выделение памяти через что угодно вроде VirtualAlloc для сохранения строки у себя?
function tr (const Key: pchar; Params: pointer; LastParamsIndex: integer): pchar; stdcall;
Первый параметр — составной ключ из языковых json-файлов. Например, 'era+.griffin_desc'. Затем ссылка на массив строк-параметров (строка — указатель на цепочку символов). Третий параметр — число параметров в массиве - 1. У тебя строки без подстановок, второй параметр можно null, третий — -1.
Итого:
push -1
push 0
push offset 'era+.griddin_desc'
call era_dll.tr
; в eax — указатель на строку, длину которой можно получить через lstrlen, скопировать через lstrcpy, выделить память через VirtualAlloc.
В Mods\Era+\Data\Lang\era+.json
{
"era+": {
"griffin_desc": "Моё описание северного Гриффона"
}
}
http://www.wakeofgods.com/forum.php
Эта ссылка работает в Хроме с расширение Google Translate. Возможно, заработает у тебя просто через translate.google.com