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

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

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

Post by John Doe »

Latest post of the previous page:

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

Ограничения: скрипт должен знать путь к своей папке, и нельзя разместить в одной папке несколько скриптов.
А в идеале было бы иметь возможность обращаться по гуиду (к этому понадобится функция загрузки информации о hlf).
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

John Doe wrote: Но чем колхозить в каждом плагине, лучше бы иметь единый механизм
Будет ли оно востребовано? Lng - далеко не самый надежный и удобный в поддержке формат.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Я больше скажу: сейчас в каждом макросе свой колхоз по локализации.
Если luafar/luamacro предоставит единый механизм, то это будет уже хорошо.
DrKnS wrote: Lng - далеко не самый надежный и удобный в поддержке формат.
Главное что он общий.
Если делать что-то лучше, то делать для всех плагинов.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

John Doe wrote: Если делать что-то лучше, то делать для всех плагинов.
Некий практически опробованный подход реализован для своих модулей плагином FarNet. Насколько он пригоден в данном случае, надо смотреть.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

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

Post by WARP ItSelf »

Если уж делать поддержку чего-то, то Lng. Он уже везде. А то получится, что тут Lng, тут не Lng, тут рыбу... Да и в целом вполне нормальный формат, тупой и достаточно надежный.
Никто не знал, а я...
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

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 »

Ну, у меня минимум 3 плагина с поддержкой загрузки Lng. И, честно говоря, я не вижу резких причин вводить 2 формата локализации. Получится, что у основного плагина LNG, а у его сабплагинов какой-нибудь RNG. Оно зачем?
Никто не знал, а я...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

В 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: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

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

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