Настройка под себя текстовых строк из LNG-файла

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 106 times

Настройка под себя текстовых строк из LNG-файла

Post by HaRT » Tue 27 Oct, 2015 23:07

Latest post of the previous page:

2useven10 wrote: Простота - залог здоровья
Но тогда надо хотя бы, чтобы файл корректур искался в директории текущего профиля Фара.
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Настройка под себя текстовых строк из LNG-файла

Post by 2useven10 » Tue 27 Oct, 2015 23:15

Да. Вполне разумно.

User avatar
NightRoman
Posts: 5872
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 9 times
Contact:

Настройка под себя текстовых строк из LNG-файла

Post by NightRoman » Wed 28 Oct, 2015 06:04

DrKnS wrote:
NightRoman wrote:комприляцию их в бинарный формат
Мы тут вроде о том, как упростить жизнь любителям (и создателям) персональных переводов, а не наоборот, не?
Да, пожалуй, немного отвлекся от этого момента.

User avatar
DrKnS
Posts: 4644
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Настройка под себя текстовых строк из LNG-файла

Post by DrKnS » Wed 28 Oct, 2015 08:42

2useven10 wrote:Работу фар с локализацией можно вообще оставить почти без изменений.
Загрузка .lng и использование языковых сообщений остаётся без изменений.
Надо чуть допилить lng транслятор, чтобы делал не только enum, но и массив строк идентификаторов.
Эти идентификаторы нужны только на момент загрузки 'модификаторов', память - не больше 20к, скорость не изменится.
Базовые языковые файлы без изменений. Надо только дописать загрузку модификаций (если они есть).
Для них естественный формат ID="Text". Имена можно брать производными от языкового файла - FarRus.lng.mod
Формально это то же самое, что просто добавить формат ID="Text", но искаробочные переводы оставить в старом формате.

Проблема в том, что пользователю это усложняет жизнь, а не упрощает.

Как сейчас: копирую искаробочный lng под новым именем, меняю нужные строки, всё работает до первого обновления.

Как получится: Ищу в искаробочном lng нужную мне строку и... э... А где мне теперь взять ID?
Если список этих ID лежит внутри far.exe - проще сразу плюнуть.
Если он лежит где-то снаружи, в формате, похожем на bootstrap\lang.inc, то как быстро найти там нужный? Логично предположить, что номер в этом списке соответствует номеру строки в lng, да? Увы, номера строк в lng не соответствуют индексам, т. к. в lng есть шапка, каменты и пустые строки для смысловой группировки. Найти примерное место и догадаться, что "Show &total copy progress indicator" - это MConfigShowTotal? Или это MConfigCopyTotal? Повторить N раз. Не, проще плюнуть.
Т. е. надо чтобы этот список ID содержал такие же каменты и пустые строки, иначе это издевательство.
Кроме того, из искаробочного lng никак не следует, что существует ещё и формат ID="Text". Люди будут править их как раньше и иметь те же грабли при обновлении. Можно, конечно, написать подробный мануал "как правильно писать свои модификаторы", но кто их читает?

Как должно быть в идеале: копирую искаробочный lng под новым именем, меняю нужные строки, всё работает всегда.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Настройка под себя текстовых строк из LNG-файла

Post by 2useven10 » Wed 28 Oct, 2015 10:33

В искаробочные переводы ID можно ставить транслятором, как комментарий (я уже приводил пример).
Пользователь пользуется им как справочником, прописывает только нужные ему строки (это удобнее)
в кастомный файл в формате ID="Text" и это работает всегда (формат можно принимать и как у искаробочного,
но комментарий //[ID] будет обязательным).

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Настройка под себя текстовых строк из LNG-файла

Post by 2useven10 » Wed 28 Oct, 2015 10:47

Вообще можно и с новым форматом сохранить скорость нынешнего.
Разные форматы подчеркивают, что родной файл лучше не трогать (он будет обновляться).

User avatar
DrKnS
Posts: 4644
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Настройка под себя текстовых строк из LNG-файла

Post by DrKnS » Wed 28 Oct, 2015 17:43

Скорость при любом формате будет достаточной.
Ну будет строка выниматься условно не за 1 такт (сместить указатель на N), а за 500 (посчитать хеш и найти его в хешмапе).
Чтобы нарисовать типичные панели, сколько нам этих строк надо получить? Штук 30? С такими объемами их можно держать в SQLite, никто не заметит.

User avatar
abelenki
Posts: 408
Joined: Thu 02 Jul, 2009 07:39
Location: Perm, Russia
Has thanked: 93 times
Been thanked: 17 times
Contact:

Настройка под себя текстовых строк из LNG-файла

Post by abelenki » Tue 01 Dec, 2015 06:52

Yegor wrote:но есть ли гарантии, что завтра после очередного рефакторинга/удаления ф-ть (e.g. tree), стрОки в новом lng файле "не поедут"?
в 4462 обновился языковой файл, и Far перестал запускаться с модифицированным FarEng.lng. соответственно, пришлось перенести изменённые строчки в новый файл.

в принципе, ничего сложного или времязатратного.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 106 times

Настройка под себя текстовых строк из LNG-файла

Post by HaRT » Wed 12 Apr, 2017 20:15

Для облегчения поиска инфы заинтересованными:
changelog wrote:

Code: Select all

w17 27.01.2016 23:06:51 +0300 - build 4522

1. Экспериментально: кастомизация языковых файлов без редактирования генерируемых 'родных' файлов .lng

   Чтобы работало надо:
   1) создать полные версии языковых файлов обновлённым генератором lng.generator.exe, в новой сборке должны быть.
   2) создать свой файл с изменениями для нужных языков

   Имя файла = <Оригинал>.custom, например FarRus.lng.custom, FarEng.lng.custom
   Файл ищется в %FARHOME% и %FARPROFILE% (можно создать 2 файла)

   Файл должен содержать строки вида:
   MessageId = "Modified Text"
   например:
   MListFileSize = " %1 bytes in %2 files, %3 folders "
   Нужный MessageId можно найти в оригинальном файле, там это выглядит так:
   //[MessageId]
   "Original text"
   //[MListFileSize]
   " Bytes: %1, files: %2, folders: %3 "
   Такой формат также допустим в .lng.custom файлах.
   //[MListFileSize]
   " %1 bytes in %2 files, %3 folders "
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 83 times

Настройка под себя текстовых строк из LNG-файла

Post by 2useven10 » Fri 23 Jun, 2017 13:10

Форматный вывод в фар со времени 4522 изменился.
Поэтому вместо %1 %2 %3 теперь надо использовать {0} {1} {2}
Last edited by 2useven10 on Fri 23 Jun, 2017 13:12, edited 3 times in total.

Post Reply

Return to “Обсуждение Far Manager”