Предложение по локализации

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
John Doe
Бюрократ
Posts: 11097
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Предложение по локализации

Post by John Doe » Mon 13 Apr, 2015 12:12

Latest post of the previous page:

И второй аспект локализации: hlf.
В принципе уже сейчас есть способ переложить на фар выбор с учётом языка:
"<FullPath>Topic" Абсолютная ссылка на тему в файле помощи, находящемся в каталоге FullPath. Путь задаётся c заключительным слешем.

Ограничения: скрипт должен знать путь к своей папке, и нельзя разместить в одной папке несколько скриптов.
А в идеале было бы иметь возможность обращаться по гуиду (к этому понадобится функция загрузки информации о hlf).

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Предложение по локализации

Post by DrKnS » Mon 13 Apr, 2015 12:22

John Doe wrote: Но чем колхозить в каждом плагине, лучше бы иметь единый механизм
Будет ли оно востребовано? Lng - далеко не самый надежный и удобный в поддержке формат.

User avatar
John Doe
Бюрократ
Posts: 11097
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Предложение по локализации

Post by John Doe » Mon 13 Apr, 2015 12:28

Я больше скажу: сейчас в каждом макросе свой колхоз по локализации.
Если luafar/luamacro предоставит единый механизм, то это будет уже хорошо.
DrKnS wrote: Lng - далеко не самый надежный и удобный в поддержке формат.
Главное что он общий.
Если делать что-то лучше, то делать для всех плагинов.

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

Предложение по локализации

Post by HaRT » Mon 13 Apr, 2015 12:49

John Doe wrote: Если делать что-то лучше, то делать для всех плагинов.
Некий практически опробованный подход реализован для своих модулей плагином FarNet. Насколько он пригоден в данном случае, надо смотреть.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Предложение по локализации

Post by WARP ItSelf » Mon 13 Apr, 2015 13:19

Если уж делать поддержку чего-то, то Lng. Он уже везде. А то получится, что тут Lng, тут не Lng, тут рыбу... Да и в целом вполне нормальный формат, тупой и достаточно надежный.
Никто не знал, а я...

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

Предложение по локализации

Post by HaRT » Mon 13 Apr, 2015 14:50

WARP ItSelf wrote: сли уж делать поддержку чего-то, то Lng.
Надо заслушать тех плагинописателей, кто реально делал массовую поддержку локализации. Навскидку кажется, что LNG — это далеко не оптимальный вариант по соотношению достоинств и недостатков.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Предложение по локализации

Post by WARP ItSelf » Mon 13 Apr, 2015 15:45

Ну, у меня минимум 3 плагина с поддержкой загрузки Lng. И, честно говоря, я не вижу резких причин вводить 2 формата локализации. Получится, что у основного плагина LNG, а у его сабплагинов какой-нибудь RNG. Оно зачем?
Никто не знал, а я...

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

Предложение по локализации

Post by NightRoman » Mon 13 Apr, 2015 16:15

В FarNet я не изобретал велосипед. Используются обычные ресурсные файлы, можно прямо в студии, а можно пониже уровнем, примеры:

FarNet.Demo.restext
FarNet.Demo.ru.restext

Генератором ресурсов эти файлы преобразуются в стандартныe файлы ресурсов (.resources). Модуль имеет несколько таких .resources, по одному на каждый язык (один из них считается дефолтным). Менеджер ресурсов устроен так, что .resources файлы можно и потом добавлять, новый язык будет задействован, даже если его не было в поставке.

Что мне понравилось больше, чем подход с Lng:
- идентификаторы строк, а не индексы.
- "главный" файл может содержать строки, общие для всех, пример - строка SomeInvariantString входит только в FarNet.Demo.restext

Достаются строки с помощью стандартного .NET API для работы с ресурсами. Наверное, Win32 API что-то подобное тоже имеет, но я никогда не использовал сам в C/C++ приложениях, не знаю, как это удобно. В .NET удобно. Ну и FarNet, конечно, все это еще обернул так, что модули в детали вдаваться не должны.

User avatar
John Doe
Бюрократ
Posts: 11097
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Предложение по локализации

Post by John Doe » Mon 12 Sep, 2016 14:54


User avatar
John Doe
Бюрократ
Posts: 11097
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Предложение по локализации

Post by John Doe » Mon 12 Sep, 2016 17:41

Хотя это конечно полумеры.
В идеале использовать viewtopic.php?f=54&t=8114
Использование адаптеров меня ещё привлекает тем, что позволило бы плагинам иметь общую среду (если не ошибаюсь что это возможно)

Post Reply

Return to “Разработка плагинов”