LocMsg
Функция
LocMsg возвращает указатель на строку в соответствии с
языковыми настройками FAR Manager. Является аналогом стандартной функции
GetMsg.
Внимание!
- Функция LocMsg не входит в стандартное API. Исходный текст функции см. здесь
char *LocMsg(
struct PluginStartupInfo *psi,
char *MsgName,
char *Var,
int Len
);
Параметры
psi
Указатель на структуру
PluginStartupInfo;
из этой структуры берутся переменные RootKey и ModuleNumber.
MsgName
название нужного сообщения
Var
если не NULL, то сюда копируется полученная строка
Len
если = 0, то копируется столько, сколько есть
Возвращаемое значение
Указатель на строку, содержащую данные.
Замечания
- В отличии от функции GetMsg, данная функция
не кэширует данные, что позволяет динамически (без перезагрузки FAR Manager)
менять данные и т.п.
- Функция LocMsg позволяет также применять
"локализацию" к плагинам
"второго уровня", которые "урезаны в своих правах"...
- Учитываются настройки конкретных пользователей - фича FAR 1.63
- Файл с сообщениями (располагается в каталоге с плагином) должен
называться ИмяПлагина.msg и является
обыкновенным ini-файлом. Его структура такова:
[Default]
//Данная секция сообщает из какой секции брать строки, если в
//данном файле не найдено требуемой языковой секции. Данная секция
//может отсутствовать, в этом случае языковой секцией по умолчанию
//считается первая.
Language=Russian
//Далее идет описания языковых секций.
//Названия ДОЛЖНЫ формироваться следующим образом:
//В lng-файлах первая строка такая
//.Language=Russian,Russian (Русский)
// ^^^^^^^
//А вот так должна называться языковая секция
[Russian]
String1=Текст первого сообщения
String2=Текст второго сообщения
IsSkipNoWord=1
[English]
String1=Text of the first message
String2=Text of the second message
IsSkipNoWord=1
//и т.д.
Пример
BOOL IsSkipNoWord;
p=LocMsg("IsSkipNoWord",NULL,1);
IsSkipNoWord=(*p != '0')?TRUE:FALSE;
phf=strrchr(LocMsg(temp,"String1",956),".");
Смотрите также: