Оболонка Weblate

Поточну версію оболонки побудовано з використанням Bootstrap, jQuery і декількох сторонніх бібліотек.

Підтримувані браузери

У Weblate передбачено підтримку найсвіжіших стабільних випусків усіх основних браузерів та програмних платформ.

Підтримки альтернативних браузерів, які використовують найсвіжішу версію WebKit, Blink або Gecko безпосередньо або за допомогою програмного інтерфейсу перегляду даних інтернету платформи, явним чином не передбачено. Втім, Weblate має (у більшості випадків) показувати дані і працювати належним чином і у цих браузерах.

Застарілі браузери можуть працювати, але працездатність деяких можливостей у них може бути обмежено.

Керування залежностями

Для оновлення сторонніх бібліотек використовується програма для керування пакунками yarn. Налаштування цієї програми зберігаються scripts/yarn. Існує скрипт-обгортка scripts/yarn-update для оновлення бібліотек, збирання їх і копіювання до належних каталогів у weblate/static/vendor, де зберігається увесь код сторонніх бібліотек.

Процедура додавання нової сторонньої бібліотеки, типово, складається з таких кроків:

# Add a yarn package
yarn --cwd scripts/yarn add PACKAGE
# Edit the script to copy package to the static folder
edit scripts/yarn-update
# Run the update script
./scripts/yarn-update
# Add files to git
git add .

Стиль програмного коду

Weblate використовує для форматування коду у файлах JavaScript і CSS Prettier.

Ми також використовуємо ESLint для перевірки коду JavaScript.

Локалізація

Якщо вам потрібен будь-який видимий користувачеві текст у коді бібліотеки, цей текст має бути локалізовано. У більшості випадків вам достатньо огорнути ваш текст у функцію gettext, але доступними є і складніші можливості:

document.write(gettext('this is to be translated'));

var object_count = 1 // or 0, or 2, or 3, ...
s = ngettext('literal for the singular case',
        'literal for the plural case', object_count);

fmts = ngettext('There is %s object. Remaining: %s',
        'There are %s objects. Remaining: %s', 11);
s = interpolate(fmts, [11, 20]);
// s is 'There are 11 objects. Remaining: 20'

Піктограми

Поточна версія Weblate використовує піктограми material design. Якщо вам потрібна якась нова піктограма, скористайтеся Material Design Icons або Material Design Resources.

Крім того, можна скористатися scripts/optimize-svg для зменшення розміру SVG, оскільки більшість піктограм вбудовуються до HTML для уможливлення застосування стилю до контурів.