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

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
John Doe
Бюрократ
Posts: 11074
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 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: 4533
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: 11074
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

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

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

User avatar
HaRT
Moderator
Posts: 7979
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 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: 7979
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 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: 11074
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

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


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

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

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

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

Post Reply

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

Who is online

Users browsing this forum: No registered users and 3 guests