Forums / National / Russian / Загрузка языковых файлов

<<<123>>>

русский вариант темы

esclkm
#16 2009-03-08 18:35
пока самая большая беда - это переменные - зазличные их имена. разная глубина массивов. В общем начал думать

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

-----
и еще предложение: может лэнг файлы скинов расположим точно также как и в плагинах?
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
This post was edited by esclkm (2009-03-08 18:37, 15 years ago)
Sergeich
#17 2009-03-08 19:02
Да, что-то мы опять комбайн создаём там, где лопатки достаточно. Согласен с Дерваном и Кортом, что более чем достаточно будет тщательно проверять релизы перед выкладыванием, а в повседневной работе использовать плагин сравнения langcompare.

Сейчас у нас получается, что тут мы комбайн поставили, там комбайн, вот здесь тоже. Каждый комбайн работает довольно быстро, а если таких комбайнов станет много...?
esclkm
#18 2009-03-08 19:27
тогда еще 1 вариант - в ланг файле должна указываться версия.... под кого она сделана - и пока она не сответствует версии двига не работать - ток вот как это быстро считать.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Kort
#19 2009-03-08 19:41
Если очень хочется, может хотя бы warning какой, например в admin quickview. Но и без этого вроде как все жили нормально. Возможно, это действительно "комбайн" на совершенно ровном месте?
Считывать вроде как надо @version, но здесь такая же вероятность совершить human mistake, как и в весьма маловероятном пропуске языковой переменной :-)
SED.by - создание сайтов, разработка плагинов и тем для Котонти
Sergeich
#20 2009-03-08 19:45
Это тоже не очень хорошая идея. Если в текущем варианте у нас будет не отображаться 1-2 надписи, то в предложенном тобой мы вообще останемся без подписей, а это уже очень серьёзно.

может быть ничего не трогать в техническом плане, а просто более ответственно подходить к актуализации ланг-файлов в текущих версиях и особенно в релизах.
esclkm
#21 2009-03-08 19:46
Вот уже решения лучше и приятней. /(не сделал бы - даже б дискуссии бы не возникло)
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
dervan
#22 2009-03-08 22:42
# 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 : про лишню нагрузку - если лэнг файлы будут разбиты по модулям - файлы станут небольшими.
Ключевое слово - лишняя. :) И к тому же такое латание на лету при формировании страниц не выявляет недоделки, а наоборот их затушёвывает.
esclkm
#23 2009-03-08 23:24
чегото много буков или просто у меня голова болит)
языковой файл надо както по - другому формировать.
1. утилиту я сейчас немного доделываю - чтобы считывать еще и скины и плагины.
2. надо чтобы структуры были подобными - в конец помещать недостающие строки - это хороший способ создать путиницу.
3. в языковых файлах используются разные массивы - имена массивов рзличные, во вторых глубина тоже различна, да и сруктура тоже.
- в итоге надо эту ланг копмаре = делать универсальной - чтобы она не только сравнивала языки, но и с ее помощью можно было создавать локализацию. клик-клик-бац-бац = локазизация готова.

если бы мы пришли к выводу что все языковые файлы - имеют строгую структуру - то данный плагин можно было бы написать - как пить дать.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
This post was edited by esclkm (2009-03-08 23:38, 15 years ago)
dervan
#24 2009-03-08 23:54
# esclkm : чегото много буков или просто у меня голова болит)
Что-то не по существу? Где-то оффтоп? Что сказать-то хотел? :)

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

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

# esclkm : 3. в языковых файлах используются разные массивы - имена массивов рзличные, во вторых глубина тоже различна, да и сруктура тоже.
Была приведена в пример специальная обработка для массивов declension. С исключениями как-то надо бороться, но это побочная тема. Для реализации твоей идеи - просто заполнить пропуски английскими эквивалентами - синхронизировать массивы необязательно, можно ограничиться только добавлением пропущенных строк.
esclkm
#25 2009-03-09 00:08
я не про офтоп - я про сложность языковых оборотов.

пока меня волнуют такие моменты -
простые не вложенные массивы - утилиту по генерации этих файлов я думаю смогу создать,
но вот у нас сейчас есть множество примеров
различного оформления массивов:
$L, $sed_countries, $sed_translit, $skinlang
$L все с ней максимально просто, а вот с остальными, попа шишечками покроется.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
dervan
#26 2009-03-09 00:29
$sed_countries: не понимаю, в чём сложности.

$sed_translit: однозначно игнорировать при синхронизации, тем более что транслит для берущегося за образец английского - вообще нонсенс. Этот массив может отсутствовать, если транслит для языка не реализован.

$skinlang: наверное, углублённо синхронизировать lang-паки только для официальных скинов Cotonti, замахиваться на все скины IMHO не надо. Для остальных скинов - упрощённый подход, который ты сначала предлагал: простое добавление отсутствующих английских строк.
esclkm
#27 2009-03-09 01:48
-----------------------------------------
подчиста и обобщение идей esclkm+dervan
нужен файл - "ланг привесок". который будет идти с локализацией.

Этот "ланг привесок" будет генерироваться специальным плагином, который будет сравнивать 2 языковых модуля - основной (en) и текущий и по результатам сравнения будет генерировать данный файл.
В итоге мы избавимся от пустых строк и инклюда инглиш файла.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Sergeich
#28 2009-03-09 02:08
Ну вы лес городите, давайте лучше всё оставим как есть. Тикеты сообщества на недостающие строки и внесение их в ланг-файл переводчиком. Самое простое, быстрое и, как это не странно, удобное для всех решение :).
esclkm
#29 2009-03-09 02:18
сергеич пример, который я говорил дервану:

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

твое самое удобное решение применимо для RU в полной мере.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Ratibor
#30 2009-03-09 03:14
# Sergeich : может быть ничего не трогать в техническом плане, а просто более ответственно подходить к актуализации ланг-файлов в текущих версиях и особенно в релизах.
Вот сдесь я полностью согласен, ни к чему огород городить.
Не задавай глупых вопросов, не услышишь вранья.

<<<123>>>