Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

kIT Universal Presets
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 09, 2011 01:32    Post subject: Reply with quote

Ап с предыдущей страницы.
Отдельно прошу совета по реализации механизма локализации (глава 3). Тут не мало людей с опытом создания мультиязычных плагинов и программ. Откликнитесь, пожалуйста, и дайте дельные советы.

Кстати, встретил ссылку на kIT UP тут. А как вы считаете, нужно, чтобы kIT UP поддерживал RedirectSection в ini-файлах? Я не уверен, ведь это не стандартная конструкция, а только TC-шная примочка.

Flasher wrote:
#1 Запуск пресета должен ко всему прочему выполняться из того TC, в котором будет совершена правка, а это не всегда удобно.
#2 Документация несомненно осваиваемая, но громоздкая, поэтому на её изучение всё равно требуется время.

1. Почему? Не обязательно же использовать в путях %COMMANDER_PATH%, можно абсолютно везде все пути задавать при желании.
2. Embarassed А я ж говорил, надо читать history.txt в первую очередь. Зачем читать о том, чего ещё нет? Rolling Eyes
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 09, 2011 03:00    Post subject: Reply with quote

ApceH wrote:
А как вы считаете, нужно, чтобы kIT UP поддерживал RedirectSection в ini-файлах?
Смотря в чём эта поддержка может заключаться.

1. Ага, сел за другую машину, нажал кнопку с каким-то путём - и фигушки, нет такого. Это предварительно надо кучу пресетов создавать. А куда и по какому поводу ты с ним придёшь заведомо неизвестно.
2. Встречный вопрос - зачем писать и выкладывать? Чтобы было? Very Happy
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Tue Aug 09, 2011 09:36    Post subject: Reply with quote

Flasher wrote:
2. Встречный вопрос - зачем писать и выкладывать? Чтобы было?
Подозреваю, что для последующего публичного обсуждения, которое может привести к дальнейшему развитию документации в правильном ключе.

ApceH wrote:
Тут не мало людей с опытом создания мультиязычных плагинов и программ. Откликнитесь, пожалуйста, и дайте дельные советы.
Какая именно часть реализации интересует?
Почитал немного соответствующую главу и должен сказать, что хранение строк в виде "Строка на английском=Переведённая строка" не кажется мне красивым.
По крайней мере процесс перевода это точно не облегчит (именно такая причина указана в защиту этого способа). Переводы всё равно делаются на основе другого языка: т.е. файл копируется и в нём уже происходит процесс перевода/правки.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar


Last edited by Maximus on Tue Aug 09, 2011 12:08; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 09, 2011 12:06    Post subject: Reply with quote

Maximus wrote:
Подозреваю, что для последующего публичного обсуждения, которое может привести дальнейшему развитию документации в правильном ключе.
Я так же подозревал пока не увидел вопрос автора. Smile
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 09, 2011 14:39    Post subject: Reply with quote

Flasher wrote:
(RedirectSection...)Смотря в чём эта поддержка может заключаться.
Ну то есть должен ли kITUP быть способен автоматом отследить, что секция, куда вносится изменение вынесена через RedirectSection. Естественно, не по умолчанию.
По идее не слишком трудно поддержать... Не помешает наверно, подумаю, как дополнить синтаксис.
Maximus wrote:
Flasher wrote:
2. Встречный вопрос - зачем писать и выкладывать? Чтобы было?
Подозреваю, что для последующего публичного обсуждения, которое может привести к дальнейшему развитию документации в правильном ключе.
Абсолютно точно! Только пока откликов нет((( Я понимаю, что не XML придумываю, но всё же мозг плавится, если одному всё придумывать. Я уж молчу про реализовывать... Shocked
Maximus wrote:
Почитал немного соответствующую главу и должен сказать, что хранение строк в виде "Строка на английском=Переведённая строка" не кажется мне красивым.
Именно поэтому я и выделил красным - ибо бред. Вот и спрашиваю совета. Хотя неправильно выразился. Реализую-то я сам, а надо определиться с синтаксисом и структурой файлов, связанных с переводами.
Сделать банально, как в ТС?
Да, и это же только про графический интерфейс говорим, а в самих пресетах нормально будет, как задумал, через точку? Например, автор пресета поляк:
Code:
...
Description=Cześć
Description.1049=Привет
Description.1033=Hello
...

Flasher
Одно дело, когда обсуждают (упоминают) продукт, как готовый к применению и способный на конкретные вещи. А другое - обсуждение в узком кругу вопросов развития и исправления ошибок. Только эта тема для последнего, в остальных - только первое.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Aug 09, 2011 15:19    Post subject: Reply with quote

Я, чтобы не сильно мучаться, банальный инишник использую как LNG-файл, один файл на один язык. Номера последовательно, в коде перечисление индексов, там же константная таблица английских названий. Править такой файл языка проще простого - скопировал английский и переводи себе строчки. Новая версия - сравнил по содержимому, добавил в конец новые строки. Главное в новых версиях новые индексы добавлять в конец, а не в середину.

При загрузке файла читаю из него самой обычной апишной функцией записи в цикле по индексам, и записываю в массив строк. Обращаюсь к строкам через функцию, которая по индексу возвращает строку из массива, загруженную из файла, или же из константного, если в LNG-файле строка не определена.

А для диалога другой массив - с идентификаторами элементов диалога и с индексами строк локализации. После создания диалога один простой цикл меняет текст на всех элементах окна. В дельфе, конечно, так может не получиться - там идентификаторы элементов диалога не фиксированны, а создаются каждый раз от фонаря. Хотя, наверное, при создании формы можно один раз заполнить массив компонентов вручную, а потом опять же цикл по массиву с присваиваниями.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 09, 2011 15:28    Post subject: Reply with quote

ApceH wrote:
Одно дело, когда обсуждают (упоминают) продукт, как готовый к применению и способный на конкретные вещи. А другое - обсуждение в узком кругу вопросов развития и исправления ошибок. Только эта тема для последнего, в остальных - только первое.
Т.е. как готовый к применению продукт тут не обсуждался?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Tue Aug 09, 2011 15:42    Post subject: Reply with quote

ApceH wrote:
Сделать банально, как в ТС?
Можно и так, но мне это не очень удобно. Поэтому я группирую приблизительно так:
Quote:
[Options]
0=Опции
0_1=Отображать расширение %0 у контактов
0_2=Экспортировать LABEL (свойство vCard)
1=Отображение
1_0=Изменить шрифт...
1_1=Последовательность составляющих имени...
2=Экспорт
2_0=Экспортировать vCard в кодировке UTF-8
3=Импорт
3_0=Имя контакта по содержимому vCard-полей

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

Добавлено спустя 3 минуты:

ApceH wrote:
а в самих пресетах нормально будет, как задумал, через точку?

Наверное. Я просто не совсем в теме того, что тут творится :)
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 09, 2011 17:59    Post subject: Reply with quote

MVV, Maximus
Большое спасибо. Теперь ясно представил себе, как это сделать. Теперь надо будет набросать весь оставшийся графический интерфейс, выписать все встречающиеся строки... Посмотрю уже тогда, какой вариант лучше подойдет из предложенных.
MVV, я использую KOL. Надеюсь, там не от фонаря Smile
Flasher
Да. И там такому упоминанию было самое место. А начали обсуждать уже применение пресетов вообще, какие-то пути относительные ТС и т.д....


Last edited by ApceH on Tue Aug 09, 2011 18:30; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Aug 09, 2011 18:10    Post subject: Reply with quote

ApceH wrote:
А начали обсуждать уже применение пресетов вообще, какие-то пути относительные ТС и т.д....
Относительные пути кто начал обсуждать? Smile И как это относится к
ApceH wrote:
обсуждение в узком кругу вопросов развития и исправления ошибок
Question
В общем-то, это больше риторические вопросы. Думаю, в обсуждении такой ерунды смысла нет.

ApceH wrote:
Ну то есть должен ли kITUP быть способен автоматом отследить, что секция, куда вносится изменение вынесена через RedirectSection.
А, ну, в принципе, по наличию ключа смотреть можно. Да, я не против.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 09, 2011 18:40    Post subject: Reply with quote

Flasher wrote:
Думаю, в обсуждении такой ерунды смысла нет.
Почаще бы такие заключения от вас слышать Wink

MVV, Maximus
Вот ещё один непонятный мне вопрос. Я хочу, чтобы kIT UP состоял из одного файла kitup.exe, как это и есть сейчас. Я не хочу, чтобы и английский (который будет по умолчанию, когда сделаю) был в lng-файле. Хорошо, зашить в код английские названия не проблема. А как же будет переводчик переводить? Сделать типа template, который НЕ будет использоваться программой и распространять вообще отдельно, я думаю...
А вообще, мне по душе такой вариант lng-файлов, как, например, в VisualDirSize.wlx.

Flasher wrote:
ApceH wrote:
Ну то есть должен ли kITUP быть способен автоматом отследить, что секция, куда вносится изменение вынесена через RedirectSection.
А, ну, в принципе, по наличию ключа смотреть можно. Да, я не против.
Нет, нельзя смотреть по наличию по умолчанию. То есть вот такой код:
Code:
[ir|wincmd.ini|DirMenu]
RedirectSection=some_dirmenu.ini
должен, конечно, же повлиять на САМ ключ RedirectSection.
А вот, чтобы учитывался RedirectSection, придётся обязательно расширить синтаксис.
Может просто, если буква [i будет в верхнем регистре, то учитывать RedirectSection?
Например:
Code:
[Ia|wincmd.ini|FileSystemPlugins]
Virtual Panel=%COMMANDER_PATH%\PLUGINS\wfx\VirtualPanel\VirtualPanel.wfx
будет работать в любом случае правильно.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Aug 09, 2011 19:07    Post subject: Reply with quote

Английский пусть будет встроенный, плюс в отдельном файле - для тех, кто будет переводить.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Tue Aug 09, 2011 19:09    Post subject: Reply with quote

Quote:
Я хочу, чтобы kIT UP состоял из одного файла kitup.exe, как это и есть сейчас.
Зачем зацикливаться на этом?
ApceH wrote:
Я не хочу, чтобы и английский (который будет по умолчанию, когда сделаю) был в lng-файле. Хорошо, зашить в код английские названия не проблема. А как же будет переводчик переводить?
Вожможно какойто пользователь захочет сам поправить пару строчек в английском. Так почему бы ему не предоставить такую возможность?
Хотя тот же Гислер придерживается другого мнения и не распространяет английский в дистрибутиве.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10257
Location: Россия, Саратов

Post (Separately) Posted: Tue Aug 09, 2011 19:18    Post subject: Reply with quote

Maximus wrote:
Хотя тот же Гислер придерживается другого мнения и не распространяет английский в дистрибутиве.

Но вне дистрибутива найти официальный английский LNG-файл от разработчика особого труда не составляет. Например, здесь.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
ApceH



Joined: 08 Apr 2011
Posts: 316
Location: Димитровград

Post (Separately) Posted: Tue Aug 09, 2011 20:11    Post subject: Reply with quote

Maximus wrote:
Возможно какойто пользователь захочет сам поправить пару строчек в английском. Так почему бы ему не предоставить такую возможность?
Хм... Ценная мысль! Получается, надо сделать встроенный английский, но ЕСЛИ имеется файл 1033.lng, то всё равно прочитать оттуда английские названия... Так будет максимально гибко. Так и сделаю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 3 of 9

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group