Как получить строку из языкового файла Far<…>.lng ? Topic is solved
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Извините, если такой вопрос уже был.
Собственно суть - в заголовке темы.
Подробности : нынешние файлы Far….lng имеют "ключевую" структуру (т.е. поиск результата не по номеру строки, а по имени, казанному в теге //[имя]). Есть ли стандартная процедура получения строки из такого файла?
И ещё. Как Far находит нужный языковой файл? Открывает все и читает строку .Language= ? Просто имя языкового файла как-то неочевидно зависит от языка … Например, FarSky.lng - это .Language=Slovak …
Функция far.GetMsg принимает только числовой параметр - номер строки. А уж имя языкового файла совсем отсутствует (хотя бы префикс или маска)
Собственно суть - в заголовке темы.
Подробности : нынешние файлы Far….lng имеют "ключевую" структуру (т.е. поиск результата не по номеру строки, а по имени, казанному в теге //[имя]). Есть ли стандартная процедура получения строки из такого файла?
И ещё. Как Far находит нужный языковой файл? Открывает все и читает строку .Language= ? Просто имя языкового файла как-то неочевидно зависит от языка … Например, FarSky.lng - это .Language=Slovak …
Функция far.GetMsg принимает только числовой параметр - номер строки. А уж имя языкового файла совсем отсутствует (хотя бы префикс или маска)
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Да.
Оно не требуется.
Функция работает с языком установленным в фаре.
Если нужна строка из файла FarManager, то видимо никак.
https://api.farmanager.com/ru/service_f ... etmsg.html
Сказано, что принимается только собственный гуид плагина.
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Наверно, это довольно затратно - пробежаться по всем файлам, открыть, прочитать первую строку, закрыть …
На самом деле надо же как-то знать префикс имени файла, не? Искать для плагина "TmpPanel", например, среди Tmp*.lng … Откуда берётся "префикс" имени файла (в данном случае - tmp)? Или цикл по всем lng-файлам? Тогда очевидное ограничение: в одной папке с плагином - скриптом должен быть единственный lng-файл для одного языка…
Спасибо. Грустно. … Придётся доделывать мою
GetMsg
(где-то уже опубликовывал), чтоб сама искала нужный файл по маске и языку.На самом деле нужна строка из %FarHome%\far*.lng.
Я в курсе. А у функцииJohn Doe wrote: ↑Wed 04 Dec, 2019 15:24 https://api.farmanager.com/ru/service_f ... etmsg.html
Сказано, что принимается только собственный гуид плагина.
far.GetMsg
вообще нет упоминания о плагине и его Guid-е.Ладно, спасибо за ответ. Я надеялся, что это я чего-то не нашёл…
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
- HaRT
- Moderator
- Posts: 10822
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Как получить строку из языкового файла Far<…>.lng ?
Родственное обсуждение: viewtopic.php?p=149773#p149773buniak_a_h wrote: ↑Wed 04 Dec, 2019 16:43 очевидное ограничение: в одной папке с плагином - скриптом должен быть единственный lng-файл для одного языка…
Last edited by HaRT on Wed 04 Dec, 2019 17:13, edited 1 time in total.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Со следующего ночного билда будет.buniak_a_h wrote: ↑Wed 04 Dec, 2019 15:19 А у функции far.GetMsg вообще нет упоминания о плагине и его Guid-е.
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Там про help. Функция ShowHelp намного более развита по сравнению с GetMsg.
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Теперь есть возможность получить текст сообщения другого плагина (но не фара).John Doe wrote: ↑Wed 04 Dec, 2019 17:56Со следующего ночного билда будет.buniak_a_h wrote: ↑Wed 04 Dec, 2019 15:19 А у функции far.GetMsg вообще нет упоминания о плагине и его Guid-е.
Однако, боюсь, пользы от этого в общем случае нет, поскольку
MsgId
величина не постоянная.- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
1. Про ФАР я уже понял. процедуру сделал, доделаю учёт возможности частичного переопределения языковых строк в File.lng.custom и выложу (туда).
2. Думаю, тем и хороши строковые теги, что они могут быть постоянными (ну, если только автор не поставил себе задачу затруднить сторонним лицам использование его софта) Именно поэтому я НИКОГДА не буду использовать языковой файл "старого" вида (с позиционным получением строки)
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Как получить строку из языкового файла Far<…>.lng ?
Господа админы! Я сильно извиняюсь, но эта тема почти дублирует мою же ранее опубликованную. Там я закончил всё, что могло потребоваться. Вы можете эту тему совсем прибить?