cotonti.com : Загрузка языковых файлов https://www.cotonti.com Neueste Themenbeiträge Cotonti en Mon, 23 Feb 2026 22:46:04 -0000 Sergey Fr, 13 Mär 2009 05:09:53 -0000 esclkm Fr, 13 Mär 2009 05:04:38 -0000 Sergey
Нет, конечно, например это можно делать такой конструкцией
if (@file_exists($cfg['plugins_dir'].'/comedit/lang/comedit.'.$usr['lang'].'.lang.php'))
{
	require_once($cfg['plugins_dir'].'/comedit/lang/comedit.'.$usr['lang'].'.lang.php');
}
else
{
	require_once($cfg['plugins_dir'].'/comedit/lang/comedit.en.lang.php');
}
Но, наверное, это было бы изящнее выполнить автоматически, например при поисках плагинов для хука в функции sed_getextplugins если, я правильно разобрался в этом "таинственном" вопросе.]]>
Fr, 13 Mär 2009 04:21:34 -0000
esclkm Fr, 13 Mär 2009 04:05:59 -0000 Sergey
elseif (!empty($e))
{
	$path_lang_def	= $cfg['plugins_dir']."/$e/lang/$e.en.lang.php";
	$path_lang_alt	= $cfg['plugins_dir']."/$e/lang/$e.$lang.lang.php";
	$path_skin_ntg	= sed_skinfile('plugin');
	$path_skin_def	= $cfg['plugins_dir']."/$e/$e.tpl";
	$path_skin_alt	= sed_skinfile($e, true);

	if (file_exists($path_lang_alt))
	{ require_once($path_lang_alt); }
	elseif (file_exists($path_lang_def))
	{ require_once($path_lang_def); }
Что получается, если плагин срабатывает на хук и не работает самостоятельно (миную вызов е) то и языковые файлы не подключаются. Пожелал, я расширить возможности профиля пользователя, а как тег оформить языковой строкой? только подключением из языкового файла из скина. Т.е. его править ручками. Надо это дело: подключение языковых файлов сделать независимым.]]>
Fr, 13 Mär 2009 03:55:06 -0000
esclkm langcompare_27.rar
Для Корта - видоизмененный плаг для кота
глюки пока есть и с массивами не все-так гладко.
Но отзывы уже писать можно.
Работает с переменными седланг, сед_кантриес и Л.
тестируем отписываемся

langcompare_27.rar

обновил - из нового - грамматно загружает массивы рекурсией. поэтому массивы любой глубины не проблема.
в ближайшее время - сверка одновременно нескольких файлов.

langcompare1_27.rar - финальный релиз - плагина! Пожалуйста посмотрите и выскажите ваше мнение! что доделать и как сделать!]]>
Mo, 09 Mär 2009 06:37:06 -0000
Sergeich Mo, 09 Mär 2009 06:30:37 -0000 esclkm 1. данным скином - мы лишаем себя аудитории примерно на половину.
я сегодня пролистал гору cms - и в половине сучаев я не загружал систему так как мне не нравился дизайн.
2. отсутсвием лэнг файлов для соответствующих языков - мы лишаем себя еще гору народа. уж пусть лучше будет частичный перевод, нежели полностью отсутствует.]]>
Mo, 09 Mär 2009 04:34:40 -0000
Kort Mo, 09 Mär 2009 04:28:51 -0000 dervan # Kort : dervan Ты пытаешься автоматизировать то, что по идее гораздо проще и эффективнее выполняется голыми руками.
То, что я расписывал про утилиту синхронизации - это обсуждение. Сейчас уже ясно, что так делать незачем.

# Kort : Ошибки локализатора должны отсутствовать по умолчанию. Пропуски языковых переменных тем более. Локализатору достаточно просто быть внимательным и тщательно подходить к своему piece of work.
Это идеал, бывает же что люди делают ошибки. И тот же вопрос: как лучше поступить с теми lang-паками, которые к выходу релиза по каким-то причинам не удалось полностью дотянуть до новой версии - исключать из релиза, релизить их с пропусками, дополнять их английскими текстами?

# Ratibor : dervan
мало толку от языкового ланг-пака где будет половина на английском.
А если он готов на 90%?
Кстати, на вопрос ты не ответил. :)]]>
Mo, 09 Mär 2009 04:25:23 -0000
Ratibor dervan
В стандартную поставку включаются два языковых ланг-пака, русский и английский.
Остальные как есть выкладываются отдельно.
Спасение утопающих - дело рук самих утопающих,
мало толку от языкового ланг-пака где будет половина на английском.
Если какому то сообществу понадобится ланг-пак на их родном языке,
то я думаю они сами позаботятся об этом.
Чтото я не вижу в турецкой или немецкой ветке заботы о русском ланг-паке,
кроме нас самих ни кто об этом не позаботится.

Но вот думаю добавить в ланг файлы переменную номера ревизии ланг файла было бы не плохо.]]>
Mo, 09 Mär 2009 04:15:38 -0000
Kort dervan Ты пытаешься автоматизировать то, что по идее гораздо проще и эффективнее выполняется голыми руками. Ошибки локализатора должны отсутствовать по умолчанию. Пропуски языковых переменных тем более. Локализатору достаточно просто быть внимательным и тщательно подходить к своему piece of work. Если у меня будет LangCompare под Cotonti, это сэкономит мне немного времени. Если нет -- я сравню лэнг-пэки Cotonti под Seditio (проверено -- работает), а массив countries уж как-нибудь сравню врукопашную (для начала просто подсчетом строк). В любом случае, это одноразовая работа, которую нет необходимости повторять с каждым релизом.]]> Mo, 09 Mär 2009 04:11:38 -0000 dervan Sergeich, Ratibor

Речь о ситуации, когда в lang-паке пропуски из-за ошибок локализатора, либо потому что его временно некому поддерживать. Тогда при выпуске релиза Cotonti остаётся 3 варианта.

1. Не включать такой lang-пак в релиз.
2. Включить его как есть, тогда пользователи будут наблюдать вместо текстов пустоту (это особено критично в админке).
3. Создать с помощью плагина синхронизации разностный include-файл, который вместо пропущенных строк будет подставлять английские тексты, и добавить его в lang-пак.

Вы за какой из этих 3-х вариантов?]]>
Mo, 09 Mär 2009 04:11:13 -0000
Ratibor # Sergeich : может быть ничего не трогать в техническом плане, а просто более ответственно подходить к актуализации ланг-файлов в текущих версиях и особенно в релизах.
Вот сдесь я полностью согласен, ни к чему огород городить.]]>
Mo, 09 Mär 2009 03:14:46 -0000
esclkm
дадя Петеус создал литовский перевод. выкинул его на форум и забыл.
прошло время... переод зарос мохом. поколение системы уже вышло в новые рамки
узер Васеус установил русскую редакцию
потом подумал что сайт для латышей,
и русский вариант сайта - в него закидают сапогами
Потом он случайно нашел файл, гдето для версии 002 на форуме, который делал дядя петеус
Васеус закинул в систему... которая уже работала
и все... и привет пустоте вместо части строк - это же не хорошо - и ищи с фонарем где что не так.
----------------------------------------------------

твое самое удобное решение применимо для RU в полной мере.]]>
Mo, 09 Mär 2009 02:18:04 -0000
Sergeich Mo, 09 Mär 2009 02:08:31 -0000 esclkm подчиста и обобщение идей esclkm+dervan
нужен файл - "ланг привесок". который будет идти с локализацией.

Этот "ланг привесок" будет генерироваться специальным плагином, который будет сравнивать 2 языковых модуля - основной (en) и текущий и по результатам сравнения будет генерировать данный файл.
В итоге мы избавимся от пустых строк и инклюда инглиш файла.]]>
Mo, 09 Mär 2009 01:48:20 -0000
dervan
$sed_translit: однозначно игнорировать при синхронизации, тем более что транслит для берущегося за образец английского - вообще нонсенс. Этот массив может отсутствовать, если транслит для языка не реализован.

$skinlang: наверное, углублённо синхронизировать lang-паки только для официальных скинов Cotonti, замахиваться на все скины IMHO не надо. Для остальных скинов - упрощённый подход, который ты сначала предлагал: простое добавление отсутствующих английских строк.]]>
Mo, 09 Mär 2009 00:29:49 -0000
esclkm
пока меня волнуют такие моменты -
простые не вложенные массивы - утилиту по генерации этих файлов я думаю смогу создать,
но вот у нас сейчас есть множество примеров
различного оформления массивов:
$L, $sed_countries, $sed_translit, $skinlang
$L все с ней максимально просто, а вот с остальными, попа шишечками покроется.]]>
Mo, 09 Mär 2009 00:08:23 -0000
dervan # esclkm : чегото много буков или просто у меня голова болит)
Что-то не по существу? Где-то оффтоп? Что сказать-то хотел? :)

# esclkm : 2. надо чтобы структуры были подобными - в конец помещать недостающие строки - это хороший способ создать путиницу.
Расставить строки в том же порядке, как в английском файле - дело несложное. После полного перевода lang-пака его надо дополнительно обработать утилитой, которая это сделает.

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

# esclkm : 3. в языковых файлах используются разные массивы - имена массивов рзличные, во вторых глубина тоже различна, да и сруктура тоже.
Была приведена в пример специальная обработка для массивов declension. С исключениями как-то надо бороться, но это побочная тема. Для реализации твоей идеи - просто заполнить пропуски английскими эквивалентами - синхронизировать массивы необязательно, можно ограничиться только добавлением пропущенных строк.]]>
So, 08 Mär 2009 23:54:19 -0000
esclkm языковой файл надо както по - другому формировать.
1. утилиту я сейчас немного доделываю - чтобы считывать еще и скины и плагины.
2. надо чтобы структуры были подобными - в конец помещать недостающие строки - это хороший способ создать путиницу.
3. в языковых файлах используются разные массивы - имена массивов рзличные, во вторых глубина тоже различна, да и сруктура тоже.
- в итоге надо эту ланг копмаре = делать универсальной - чтобы она не только сравнивала языки, но и с ее помощью можно было создавать локализацию. клик-клик-бац-бац = локазизация готова.

если бы мы пришли к выводу что все языковые файлы - имеют строгую структуру - то данный плагин можно было бы написать - как пить дать.]]>
So, 08 Mär 2009 23:24:14 -0000
dervan # Trustmaster : Не надо упускать из виду текучку. Стабильные релизы редко выходят, а работать часто приходится с тем "что есть".

Сначала подробнее про утилиту синхронизации lang-паков.

1.
Утилита синхронизации сверяет lang-файлы с эталонными, английскими. В конце каждого несинхронного lang-файла формируются несколько секций.

1а)
Секция пропусков.
В эту секцию добавляются строки на английском, которые отсутствуют в несинхронном lang-файле.

В результате пропуски в таком несинхронном lang-файле будут заполнены английскими вариантами - в соответствии с идеей, предложенной esclkm.

Для тех, кто занимается локализацией, будет дополнительное удобство - все новые строки для перевода будут расположены группой, их не надо будет искать по всему lang-файлу.

1б)
Секция несинхронных массивов.
В эту секцию переносятся массивы (или не массивы), размеры которых не соответствуют размерам массивов в английском lang-файле.

Для массивов declension нужна специальная обработка. Для их опознавания в тексте после каждого массива declension в английском lang-файле должен быть добавлен специальный комментарий:
// declension array; WARNING!!! never delete this comment
Для каждого языка в конфигурации утилиты должно быть задано количество элементов в массиве declension:
$declension_items = array(
	'en' => 2,
	'ru' => 3,
	'tr' => 1,
	...
);
Если строка в lang-файле предполагается как массив declension, но не реализована как массив, то она оставляется на месте, а в секцию несинхронных массивов добавляется комментарий с рекомендацией реализовать эту строку как массив declension. Если строка - массив declension с неправильным размером, то она перемещается в секцию несинхронных массивов.

1в)
Секция лишних строк.
В неё перемещаются все строки, которых нет в английском lang-файле.

Исключение - строки для формы конфигурации плагина, которых может не быть в английском lang-файле. Эти строки имеют вид:
$L['cfg_*'] = '*';

2.
По результатам обработки lang-паков утилита синхронизации создаёт отчёты.

2а)
Log-файл, в котором зафиксированы изменения для каждого файла. Разбит на секции по lang-пакам.

2б)
Для тех lang-паков, которые нуждаются в доработке, создаются файлы с текстами ticket'ов для внесения в track.

Теперь про возможную организацию текущей работы.

Синхронизацию lang-паков можно проводить и при подготовке к выходу нового релиза, и при накоплении критического числа изменений.

Синхронизацию делает кто-то из координаторов локально на своей копии SVN. Затем он делает comit полученных результатов, создаёт для локализаторов сообщение форуме, в котором выкладывает log-файл утилиты синхронизации, и при необходимости вносит ticket'ы в track.

Полагаю, это будет удобный и чёткий способ синхронизации lang-паков.


# Kort : Под Seditio был же такой langcompare.
Да, есть такой плагин. Но это из другой оперы - когда для каждой локализации есть переводчик, который оперативно, с помощью этого инструмента для персональной работы, делает качественную локализацию, ничего при этом не пропуская.

Но если локализация сделана неполностью, - либо погрешности в работе, либо lang-паком некому заниматься, - тогда надо делать синхронизацию с английским вариантом, как предлагает esclkm. Конечно, с этим плагином такую синхронизацию (добавить английские тексты) может сделать и человек, не знающий языка. Но это - ручная работа, к тому же получатся файлы с идущими вперемешку строками на разных языках.


# esclkm : про лишню нагрузку - если лэнг файлы будут разбиты по модулям - файлы станут небольшими.
Ключевое слово - лишняя. :) И к тому же такое латание на лету при формировании страниц не выявляет недоделки, а наоборот их затушёвывает.]]>
So, 08 Mär 2009 22:42:43 -0000
esclkm So, 08 Mär 2009 19:46:37 -0000 Sergeich
может быть ничего не трогать в техническом плане, а просто более ответственно подходить к актуализации ланг-файлов в текущих версиях и особенно в релизах.]]>
So, 08 Mär 2009 19:45:41 -0000
Kort Считывать вроде как надо @version, но здесь такая же вероятность совершить human mistake, как и в весьма маловероятном пропуске языковой переменной :-)]]> So, 08 Mär 2009 19:41:07 -0000 esclkm So, 08 Mär 2009 19:27:04 -0000 Sergeich
Сейчас у нас получается, что тут мы комбайн поставили, там комбайн, вот здесь тоже. Каждый комбайн работает довольно быстро, а если таких комбайнов станет много...?]]>
So, 08 Mär 2009 19:02:34 -0000
esclkm
------
про лишню нагрузку - если лэнг файлы будут разбиты по модулям - файлы станут небольшими.

-----
и еще предложение: может лэнг файлы скинов расположим точно также как и в плагинах?]]>
So, 08 Mär 2009 18:35:15 -0000
Kort Из того, что хотелось бы:
- автопоиск установленных плагинов и наличия в них лэнг-файлов и, естественно, сравнение и их тоже
- то же со скинами
- возможно, пакетный режим, в котором анализируется все и выдаются только несоответствия]]>
So, 08 Mär 2009 17:34:02 -0000
esclkm наверное это будет правильный путь. токо вот как сделать проверку по умолчанию установленных языков. и надо будет раскатыть для записи папку ланг что само по себе както не правильно. в общем теперья в небольшом сомнении]]> So, 08 Mär 2009 17:23:58 -0000 Kort 1-sed_langcompare_183.rar
Almaz его делал]]>
So, 08 Mär 2009 17:09:48 -0000
esclkm Корт - кинь пожалуйста данный ланг компаре]]> So, 08 Mär 2009 16:59:35 -0000 Kort So, 08 Mär 2009 15:44:10 -0000 Trustmaster So, 08 Mär 2009 13:42:21 -0000 dervan
А вот если перед выкладыванием очередной версии Cotonti, скажем 0.1.0, все lang-паки обработать такой утилитой, которая сравнит их с английским вариантом и автоматом добавит все недостающие строки на английском, то результат будет тем же. Зато не надо будет раз за разом латать эти бреши на лету. Зачем зря нагружать хост, если без этого можно обойтись? Почему пользователь системы должен расплачиваться увеличением времени на формирование страниц - и всё из-за того, что в каком-то из lang-паков, который ему даже и не нужен, не хватает нескольких строк?]]>
So, 08 Mär 2009 07:59:47 -0000
esclkm So, 08 Mär 2009 06:38:19 -0000 dervan
Можно пойти другим путём. Не делать каждый раз такое латание дыр в lang-файлах на хосте - это непроизводительное расходование мощностей, а лучше делать его один раз, при выкладывании очередной версии. Т.е. написать утилиту, которая будет в каждый lang-файл добавлять недостающие строки из английского lang-файла. Добавлять эти пропущенные строки утилита будет в конец файла, после специального комментария, чтобы локализаторам было видно, над чем надо поработать.]]>
So, 08 Mär 2009 05:43:23 -0000
esclkm
тестируем - на укр лок проверил - вроде нормально работает.]]>
Sa, 07 Mär 2009 19:54:03 -0000
Sergeich Sa, 07 Mär 2009 19:13:29 -0000 medar Sa, 07 Mär 2009 18:31:13 -0000