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 

Autorun
Goto page Previous  1, 2, 3 ... 39, 40, 41 ... 132, 133, 134  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
KopBuH



Joined: 02 Jul 2010
Posts: 127
Location: Tashkent, Uzbekistan

Post (Separately) Posted: Wed Dec 12, 2012 16:28    Post subject: Reply with quote

Flasher wrote:
MVV
А там всего 2 языка до Else..


а у меня в сборке только 2 языка и есть Smile
Rus/Eng мне хватает.
хотите добавлять языки, добавляйте вручную:
(тут указаны стандартные названия файлов меню)


Code:
IniRead "Commander_LangIni" "%COMMANDER_PATH%\wincmd.ini" "Configuration" "LanguageIni" ""

If %COMMANDER_LANGINI% = wcmd_rus.lng Then
  SetEnv /EV COMMANDER_LANG "Rus"
ElseIf %COMMANDER_LANGINI% = wcmd_eng.lng Then
  SetEnv /EV COMMANDER_LANG "Eng"
ElseIf %COMMANDER_LANGINI% = wcmd_fra.lng Then
  SetEnv /EV COMMANDER_LANG "Fra"
ElseIf %COMMANDER_LANGINI% = wcmd_deu.lng Then
  SetEnv /EV COMMANDER_LANG "Deu"
Else
  SetEnv /EV COMMANDER_LANG "Default"
EndIf
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Dec 15, 2012 15:36    Post subject: Reply with quote

KopBuH wrote:
хотите добавлять языки, добавляйте вручную
Вот об этом технически неправильном подходе я и пишу.
А должно быть по идее так:
Code:
IniRead COMMANDER_LANGINI %COMMANDER_INI% Configuration LanguageIni False

If %COMMANDER_LANGINI% = wcmd_eng.lng OR %COMMANDER_LANGINI% = False Then
  SetEnv /EV COMMANDER_LANG Eng
ElseIf %COMMANDER_LANGINI% = wcmd_rus.lng Then
  SetEnv /EV COMMANDER_LANG Rus
EndIf

Avada wrote:
Loopback wrote:
А для чего, если не секрет?
Я вижу смысл только в случае использования переменной в скриптах, где сообщения будут выводиться на соответствующем текущему языке.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1283

Post (Separately) Posted: Sat Dec 15, 2012 20:48    Post subject: Reply with quote

Flasher wrote:
А должно быть по идее так:

IniRead получает дефолтное значение только в случае отсутствия ключа файле. Если ключ есть, но пустой или с другим содержимым, неучтенным в условии, то переменная COMMANDER_LANG может остаться неопределенной. Поэтому последняя часть в условии KopBuH - правильная, только вместо Default можно поставить тот же Eng. Либо, надо перед условием установить начальное значение COMMANDER_LANG в нужное значение.

Flasher wrote:
Я вижу смысл только в случае использования переменной в скриптах, где сообщения будут выводиться на соответствующем текущему языке.

Народ, вы посмотрите вопрос-то. При чем тут язык? Я спрашивал про SID, который в том виде, как я показал, мне представляется малоприменимым.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Dec 15, 2012 20:57    Post subject: Reply with quote

Loopback wrote:
IniRead получает дефолтное значение только в случае отсутствия ключа файле.
Я знаю, приведённый пример к этому и относится. Только что-то не работает твой плагин в этом отношении.
Loopback wrote:
Поэтому последняя часть в условии KopBuH - правильная
Неправильная. Почему - на предыдущей странице объяснял.
Loopback wrote:
При чем тут язык?
Avada привёл цитату после появления обсуждаемой задачи.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1283

Post (Separately) Posted: Sat Dec 15, 2012 21:20    Post subject: Reply with quote

Flasher wrote:
Только что-то не работает твой плагин в этом отношении.

Если не работает - так и скажи, что баг. Это я еще проверю.

Но в остальном, достаточно вместо Default использовать Eng - и условие станет вполне правильным.

Flasher wrote:
Avada привёл цитату после появления обсуждаемой задачи.

Ок. Насчет SID'a, как я понимаю, ответа вряд ли дождусь Smile
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Dec 15, 2012 21:36    Post subject: Reply with quote

Loopback wrote:
и условие станет вполне правильным.
Объясняю. Допустим, кто-то захотел активировать отсутствующий в условиях язык. В этом случае переменная окружения будет иметь неправильное значение Eng. С моим примером переменная будет вообще отсутствовать, что явно лучше, чем иметь неправильное значение.

Loopback wrote:
Насчет SID'a, как я понимаю, ответа вряд ли дождусь
А я тут при чём? Smile В мои задачи это не входило. Сам бы хотел знать, на кой оно..
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1283

Post (Separately) Posted: Sat Dec 15, 2012 23:10    Post subject: Reply with quote

Flasher wrote:
С моим примером переменная будет вообще отсутствовать, что явно лучше, чем иметь неправильное значение.

И чем же это будет лучше?

Как раз обычная практика - использование языка по-умолчанию, если языковый файл не найден.

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

Хотя, конечно, можно и поверять, есть ли она или нет - это просто вопрос подхода.

Flasher wrote:
А я тут при чём?

Ни при чем, конечно, вопрос риторический.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Dec 15, 2012 23:20    Post subject: Reply with quote

Loopback wrote:
Как раз обычная практика - использование языка по-умолчанию, если языковый файл не найден.
Я пишу про отсутствие переменной. FileExist тут даже не используется. К чему тут поиск файла?
Loopback wrote:
она должна быть определена и у нее должно быть значение
Даже если оно неправильное? И какой в этом практический смысл?
Loopback wrote:
Хотя, конечно, можно и поверять, есть ли она или нет - это просто вопрос подхода.
Увы, подходы дают разные результаты при описанных условиях.
Я бы, откровенно, вообще записывал в переменную значение ключа, а потом обрезал бы лишнее: wcmd_deu.lng.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sun Dec 16, 2012 10:36    Post subject: Reply with quote

Quote:
Даже если оно неправильное? И какой в этом практический смысл?

Ну суть же понятна. Чем меньше значений может принимать переменная, тем лучше. Пустое или нет значение по умолчанию - это действительно вопрос подхода.

Quote:
Я бы, откровенно, вообще записывал в переменную значение ключа, а потом обрезал бы лишнее: wcmd_deu.lng.

Непросто будет с ограниченным синтаксисом обработать все случаи вида WCMD_BLABLA_RUS.lng и т.п. Так что вариант с проверкой возможных (автор скрипта знает наверняка, какие у него там есть языки) имён куда проще.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
KopBuH



Joined: 02 Jul 2010
Posts: 127
Location: Tashkent, Uzbekistan

Post (Separately) Posted: Sun Dec 16, 2012 11:17    Post subject: Reply with quote

Flasher wrote:
KopBuH wrote:
хотите добавлять языки, добавляйте вручную
Вот об этом технически неправильном подходе я и пишу.
А должно быть по идее так:
Code:
IniRead COMMANDER_LANGINI %COMMANDER_INI% Configuration LanguageIni False

If %COMMANDER_LANGINI% = wcmd_eng.lng OR %COMMANDER_LANGINI% = False Then
  SetEnv /EV COMMANDER_LANG Eng
ElseIf %COMMANDER_LANGINI% = wcmd_rus.lng Then
  SetEnv /EV COMMANDER_LANG Rus
EndIf



понимаешь...откуда мне знать, как называется файл меню у тебя?.
может быть он у тебя по другому называется?. поэтому - хочешь добавить - добавь нужные языки ручками. я просто привел пример, как я сделал это для себя, и всё.
P.S. почему именно по умолчанию именно default? потому что я привязываю тулбары к конкретному языку. а у ТС по умолчанию стоит тулбар default.bar в корне ТС. поэтому я делаю переменную со значением default и скрипт грузит тулбар по умолчаню, в случае если langini пустой. язык по умолчанию - и тулбар по умолчанию.
У меня английский язык выбирается вручную, и в соответсвии с этим грузятся меню, тулбары, сообщения и т.д. если значение LangIni пустое, я не хочу чтобы грузились эти расширенные английские тулбары. поэтому у меня в случае отсутсвия конкретного значения - переменная назначается default. это значит, что в ТС установлен язык "по умолчанию" и грузить какие-то отдельные тулбары и меню - не надо.

Loopback: SID нужен для того, чтобы привязать парочку нестандартных фукнций ТС к контретному пользователю. SID будет использоватся для шифрования конкретных файлов, содержащих пароли и еще кое-что.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Dec 16, 2012 13:31    Post subject: Reply with quote

MVV wrote:
Пустое или нет значение по умолчанию - это действительно вопрос подхода.
Какого подхода? Как "я" пойму, что "у меня" стоит не английский, если переменная показывает Eng?

MVV wrote:
Непросто будет с ограниченным синтаксисом обработать все случаи вида WCMD_BLABLA_RUS.lng и т.п.
Почему с ограниченным синтаксисом? Я же пишу, как бы я делал (уже в скрипте, соответственно) после возврата переменной среды.


KopBuH wrote:
понимаешь...откуда мне знать, как называется файл меню у тебя?
Синтаксис имён глаголит справка:
Справка ТС wrote:
Этот диалог позволяет выбрать внутреннюю команду из файла totalcmd.inc, а также определить новые команды, которые будут храниться либо в файле usercmd.ini, либо в специфическом для данного языка файле wcmd_lng.ini (например, wcmd_rus.ini для русского языка).
Другого знать и не надо. Имеем отсечённое значение, сверяем по массиву переменных. А вот как соотносится ответ с не понять зачем процитированным кодом я вообще не понял.
KopBuH wrote:
поэтому - хочешь добавить - добавь нужные языки ручками
Опять - 25. Такое ощущение, что читал мои ответы сквозь пальцы (если вообще читал)..
Если всё сводить к частному случаю с наличием 2-ух языков, то в таком случае ElseIf - вообще лишняя конструкция, тут и Else достаточно.


Кстати, Loopback, а ты можешь добавить возможность работы с условиями без переноса строк и EndIf, как в VB?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sun Dec 16, 2012 14:43    Post subject: Reply with quote

Quote:
Какого подхода? Как "я" пойму, что "у меня" стоит не английский, если переменная показывает Eng?

Если ты в своем скрипте используешь английский, когда в тотале стоит не русский, то какая тебе разница, именно английский ли язык в действительности или нет? В данном случае eng - как раз значение по умолчанию (т.е., если язык не русский, считаем его английским, остальное не имеет значения).

Quote:
Кстати, Loopback, а ты можешь добавить возможность работы с условиями без переноса строк и EndIf, как в VB?

Так ли это необходимо? Кто-то пишет такие простыни в скрипте Autorun, что эта мелочь сильно прояснит что-то?
_________________
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: Sun Dec 16, 2012 15:05    Post subject: Reply with quote

MVV wrote:
какая тебе разница, именно английский ли язык в действительности или нет?
Язык сообщения должен в идеале соответствовать текущему языку. Разница в знании/понимании отражаемого языка. Можно ставить указание на отсутствие языка перевода и менять это при необходимости.
А в случае предложенной обрезки можно сразу устанавливать язык меню, плагинов, программ, к примеру.
MVV wrote:
Кто-то пишет такие простыни в скрипте Autorun, что эта мелочь сильно прояснит что-то?
Я как раз не люблю простыни..
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sun Dec 16, 2012 16:00    Post subject: Reply with quote

По-моему, все операции, которые не требуют быть сделанными непосредственно в пространстве тотала, должны выноситься во внешние скрипты и т.п., а в конфиге плагина должен остаться минимум (типа установки переменных окружения, т.к. извне этого не сделать).
_________________
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: Sun Dec 16, 2012 16:15    Post subject: Reply with quote

Так а тут больше кроме установки переменной ничего и не требуется. Главное баг исправить.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 39, 40, 41 ... 132, 133, 134  Next
Page 40 of 134

 
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