понедельник, 23 декабря 2019 г.

Вставка кириллических URL адресов из браузера в LibreOffice

Наверняка многие из вас сталкивались с таким, что адрес сайта, содержащий кириллицу, например русские страницы в Wikipedia, копируются и вставляются в документ в ужасном виде типа  
Ну так в этом поведении виноват вовсе не LibreOffice, а сам браузер.
Лечится это так:
В Firefox в адресной строке введите about:config и в строке поиска параметра введите browser.urlbar.decodeURLsOnCopy и задайте ему значение true.
В Chrome - есть специальное расширение, поищите по имени типа Copy URL.

воскресенье, 22 декабря 2019 г.

Переезд с pootle на weblate. Переводим UI и справку в LibreOffice по-новому

Я не так уж и давно писал пост по поводу того, как переводить интерфейс пользователя (UI) и справку LibreOffice. Раньше для этого использовали pootle, конечно настроенный и заточенный под LibreOffice.
А совсем уж недавно было решено переехать на weblate. В чём уж локализейшн тим нашли профиты от такой замены, то мне не ведомо. Однако в настоящее время, LibreOffice 6.3, 6.4 и master ветка уже переехали.
Итак, новый сервер для перевода расположен по адресу https://weblate.documentfoundation.org/. Заходим туда и видим такое:
С первого взгляда даже и похоже чем-то на pootle, только цветовая гамма по-приятнее (для меня).
Чтобы сама возможность перевода стала доступной, необходима регистрация. Если у вас был аккаунт на старом pootle, то здесь он тоже должен был бы сохраниться. Те, у кого на старом сервере была возможность сразу сохранять перевод, те свои права сохранили. Те, кто мог только предлагать переводы, те так и могут только предлагать. Дать права на прямое сохранение перевода на новом месте могут пока только администраторы самого weblate. Я даже не знаю, согласуют ли они такого рода запросы с кем-то из TDF.
Теоретически weblate также предоставляет возможность работать напрямую с PO файлами, я не вникал.
А ещё weblate дико неудобный в плане навигации по списку переводимого, начиная от настройки языка и заканчивая тем, куда он вас вышвыривает после того, как вы закончили обрабатывать очередной кусок перевода.
В общем и целом, никуда мы не денемся с подводной лодки, будем осваивать то, что дали.
Напоминаю, что в переводе на русский язык нуждается не только интерфейс пользователя LibreOffice, но и справка! В справке половина не переведена! Некому потому что...

четверг, 12 декабря 2019 г.

Руководство по LibreOffice Online 6.3

В результате программы GSoDOC - Google Suumer of DOCumentation, было написано Руководство по LibreOffice Online 6.3 (на английском языке конечно же). В данный момент оно доступно в формате PDF по этой ссылке. Скорее всего это Руководство будет доступно на официальном сайте TDF с документацией. И таки оно доступно по ссылке.
LibreOffice Online - это аналог таких проектов, как Google Docs и MS Office 365. Это клиент-серверное приложение. Оно обеспечивает работу с документами из вашего браузера, совместную работу над документами и тому подобные вещи. Вы можете установить LibreOffice Online на свой сервер в локальной сети и организовать совместную работу с документами, как внутри офиса, так и обеспечить удаленный доступ к редактированию файлов для своих сотрудников. Для обработки документов на сервере используется ядро LibreOffice, а для передачи данных по сети и отображения документов в браузере - специально написанные отдельные модули. В настоящее время LibreOffice Online находится в активной разработке. 
В Руководстве изложены порядок получения, установки LibreOffice Online, связка его с NextCloud, управление файлами LibreOffice в NextCloud и описание работы в модулях Writer, Calc и Impress в их онлайн вариантах.
Сразу хочу предупредить, в том варианте установки, который описан в Руководстве, предлагается взять образ docker, который распространяет TDF, и установить его. Это действительно просто. Однако! В этом образе зашито ограничение на количество одновременно подключенных пользователей - 10 человек, и одновременно открытых документов - 20 шт., если мне память не изменяет на цифры. Если вам необходимо бОльшее количество и того и другого, то вам необходимо будет собрать LibreOffice Online из исходного кода самостоятельно, поправив конфигурационный файл, указав там явно необходимое вам количество пользователей и одновременно редактируемых документов.
Года два назад требования для сервера LibreOffice Online были примерно 50 МГц процессора, 20 МБ ОЗУ и 10 Мбит/с пропускной способности сети на одного пользователя. 
Может с тех пор что-то и изменилось, однако я не думаю, чтобы очень уж сильно. WEB толстеет не по дням, а по часам, а LibreOffice Online - это web-приложение тоже =)
Вопрос о том, будет ли это Руководство переведено на русский язык, зависит от того, захочет ли кто-то это делать =)
Отдельно хочется сказать, что около 95% кода LibreOffice Online (и 35% кода родительского проекта LibreOffice) написано программистами из компании Collabora Productivity. Collabora предоставляет также свой вариант LibreOffice Online - Collabora Online, который стоит денег (по сравнению с подпиской на MS Office 365 достаточно небольших). Вы можете свободно попробовать их продукт в виде проекта CODE, который однако не имеет никакой поддержки со стороны Collabora, имеет ограничения на количество пользователей и документов, и предоставляется исключительно как есть, и больше в ознакомительных целях.

Выпуск LibreOffice 6.3.4

The Document Foundation объявил о выпуске LibreOffice 6.3.4. Это четвёртый корректирующий выпуск в ветке 6.3. Всем пользователям, использующим данную ветку, рекомендовано обновиться.
Скачать дистрибутив можно со страницы загрузки по ссылке.

вторник, 10 декабря 2019 г.

Collabora Office for Android

Разработчики из компании Collabora Productivity объявили о доступности бета версии Collabora Office for Android. Это офисный пакет, основанный на ядре LibreOffice, но со своим собственным движком отрисовки приложения в Android.
В отличие от андроид версии LibreOffice, этот пакет от Collabora позволяет не только просматривать, но и редактировать документы.
Скачать приложение можно по ссылке.

суббота, 7 декабря 2019 г.

Отчет QA в LibreOffice за ноябрь 2019

Xisco Fauli, QA инженер из The Document Foundation, опубликовал ежемесячный отчёт о работе QA в ноябре 2019 года. По ссылке доступно много самой разной текстовой информации и графиков.
Немного о самом главном в ноябре:
Подано отчетов об ошибках - 585, из которых 67 - это запросы на улучшение
Обработано отчетов - 652
Найдено регрессий - 114, из которых для 99 нашли причину
Закрыто (по разным причинам) - 610, в том числе исправлено 32 критических ошибки, приводивших к аварийному завершению работы LibreOffice.
В отчёте Xisco сделал прекрасную диаграмму, иллюстрирующую эти причины:
Немного поясню:
FIXED - это ошибки, которые были явно исправлены разработчиками, и в отчете есть прямая ссылка на патч.
DUPLICATE - это ошибки, по которым уже есть информация в багзилле.
WORKSFORME - обычно это старая ошибка, которая в текущей версии LibreOffice не воспроизводится. Значит, кто-то что-то где-то исправил, ошибка не воспроизводится сейчас, а кто и что исправил мы не знаем и ставим такой статус.
NOTABUG - это когда кто-то, не разобравшись в функционале LibreOffice, пишет отчет об ошибке, а оказалось, что такое поведение программы - это так и задумано.
NOTOURBUG - ошибка есть, но это ошибка не в самом LibreOffice, а либо в сторонней библиотеке, либо в стороннем софте/дистрибутиве Линукс.
INSUFFICIENTDATA - ошибка закрывается с таким статусом (недостаточно данных), если она находилась в статусе NEEDINFO (требуется информация) более, чем 6 месяцев. То есть, у баг репортера запросили уточняющую информацию по ошибке и он такую информацию не предоставил.
WONTFIX - это ошибки, которые либо вовсе не ошибки, либо предложения, которые были отвергнуты разработчиками по обоснованным причинам.
OTHERS - это Xisco объединил все остальные причины =)
Хорошая работа QA в ноябре! =)

вторник, 3 декабря 2019 г.

Разделы в текстовом документе LibreOffice Writer. Скрытие раздела по условию

О том, что такое разделы, как их создавать и редактировать, я коротко писал в этом посте.
У разделов есть чудесная возможность, которая может помочь автоматизировать всякие хитрые документы (у меня это договоры), в которых некоторый текст может меняться в зависимости от ключевых условий. Например, в договорах обычно прописывают порядок оплат. И аванс по договору может выплачиваться, а может и НЕ выплачиваться. Соответственно условия оплаты в этих двух случаях отличаются.
Что хотелось бы автоматизировать в данном случае: чтобы в шаблоне договора можно было в определённом месте написать ключевое слово "выплачивается"/"не выплачивается", в соответствии с чем определённый кусок текста в договоре становился бы таким, каким надо для каждого случая.
Давайте сделаем это в Writer! Система немного запутанная, но нужно просто понять логику и всё становится просто.
Завязан нужный нам функционал на такой штуке, как переменная, которая и будет управлять скрытием наших разделов с кусками нужного текста. Переменная - это термин из области программирования. Означает он (в нашем случае) - "имя, с которым может быть связано значение". Переменная эта создаётся внутри документа Writer и существует только и исключительно внутри конкретно этого документа Writer!
Чтобы создать переменную, установим курсор в тексте в нужное место и откроем диалог "Поля", используя пункт меню Вставка->Поле->Ещё поля или сочетание клавиш Ctrl+F2. На вкладке "Переменная" слева в списке "Тип" выделите "Задать переменную". В нижней части диалога в поле "Имя" задайте имя переменной (я задал слово аванс) и в поле "Значение" нужное первоначальное значение (я задал слово выплачивается). А теперь ВАЖНЫЙ нюанс! Если вы хотите работать со словами, то в правой части диалога в списке "Формат" вид переменной ДОЛЖЕН быть "Текст"!
Нажмите кнопку "Вставить". В тексте появится слово "выплачивается" подсвеченное, как и все поля, серым цветом.
Далее нам нужно настроить наши разделы так, чтобы они скрывались/отображались в зависимости от того, какое текущее слово-значение у нашей переменной "аванс".
Так как у нас два варианта текста, то и разделов с соответствующим текстом должно быть два. Тут однако есть нюанс! Когда раздел скрыт на его месте остается пустая строка-знак абзаца! Это неудобно: пустая строка в договорах не приветствуется, да и удалить эту псевдо-пустую строку можно легко. Причем эта пустая строка будет прыгать в зависимости от того, какой раздел скрыт.
Внимание! Скрытый раздел НИКАК в тексте не выделяется, вы должны помнить о том, что он существует!
Обойти это можно путем создания одного родительского раздела, внутри которого и разместить оба наших раздела с текстом.
Вставляем раздел, используя пункт меню Вставка->Раздел. Назовём его "основной". Жмём ОК.
Затем пишем текст, который относится к варианту "выплачивается" внутри раздела "основной". Вставляем две пустых строки после текста (нужно для удобства последующих манипуляций). Выделяем текст (без пустой строки после текста!) и опять выбираем пункт меню Вставка->Раздел. Задаём имя раздела "выплачивается". Жмём ОК. Вставится раздел внутри раздела.
Ставим курсор на вторую пустую строку после раздела "выплачивается" и пишем текст для варианта "не выплачивается". Опять вставляем две пустых строки после текста (нужно для удобства последующих манипуляций). Выделяем текст (без пустой строки после текста!) и опять выбираем пункт меню Вставка->Раздел. Задаём имя раздела "не выплачивается". Жмём ОК. Вставится второй раздел внутри раздела.
На скриншоте ниже красной рамкой показан раздел "основной", а цветами выделены разделы внутри раздела "основной". Как видно, в документе не очень-то очевидна структура этих разделов-внутри-раздела, ибо тоненькие серые линии сливаются по границам разделов.

Аккуратно удаляем все ненужные теперь пустые строки внутри раздела "основной".
Явно структуру разделов видно в диалоге "Редактирование разделов" из меню Формат->Разделы:
Следующий шаг - это настройка условия для отображения/скрытия наших внутренних разделов.
Вспоминаем, что у нас есть переменная с именем аванс. Далее в диалоге "Редактирование разделов" выбираем раздел "выплачивается", отмечаем флажком опцию "Скрыть" и в поле "При условии" пишем при каком собственно условии данный раздел будет скрыт: аванс!="выплачивается"
Выбираем второй раздел - "не выплачивается", аналогично отмечаем опцию "Скрыть", аналогично пишем условие для скрытия: аванс!="не выплачивается".
Обратите внимание на кавычки, которыми обрамляются наши ключевые слова - значения. Так как тип переменной у нас текст, то кавычки обязательны в данном случае. А сочетание != означает "НЕ РАВНО".
Жмём ОК. Смотрим на результат. Так как у нас переменная аванс при создании имела некое значение, а именно слово выплачивается, то раздел "не выплачивается у нас скрыт в соответствии с заданным ему условием! Дважды щёлкаем мышью на переменной в тексте, откроется диалог "Редактирование полей". В нём, в нижней части, в поле "Значение" пишем "не выплачивается". Жмём ОК и смотрим на результат. Виден стал раздел с именем "не выплачивается", а раздел "выплачивается" скрыт! Работает!
Что мне не нравится в этом варианте: я не могу создать вместо простой переменной список значений, от выбора значений в котором и менялось бы отображение/скрытие разделов. Вернее я могу создать список, вот только этот элемент документа не будет переменной, а условия можно задавать только переменным =(
Однако, это всё равно лучше, чем каждый раз руками переписывать шаблон или иметь кучу шаблонов на все варианты оплат. Можно иметь один универсальный шаблон, в котором задать столько вариантов тех же оплат, сколько нужно (а вариантов, к сожалению может быть вагон и тележка).