2 Commits

Author SHA1 Message Date
Eilles 46711f99ec add the function of specifing date format, formatted the code 2026-01-18 07:39:21 +08:00
Eilles c000a953c4 adding the Chinese translation 2026-01-18 07:38:07 +08:00
31 changed files with 145 additions and 341 deletions
+6 -11
View File
@@ -45,22 +45,15 @@ def before_request():
@app.context_processor
def _inject_autobuild_vers():
return {
"autobuild_vers": autobuild.autobuild_vers,
"autobuild_sizes": autobuild.autobuild_sizes,
}
return {"autobuild_vers": autobuild.autobuild_vers}
@app.context_processor
def _inject_autobuild_date():
return {
"autobuild_date": autobuild.autobuild_date.strftime(
g.translations.get("downloads", {})
.get("date-format", "{DD}.{MM}.{YYYY}")
.replace("{YYYY}", "%Y")
.replace("{MM}", "%m")
.replace("{DD}", "%d")
)
"autobuild_date": g.translations.get("downloads", {})
.get("date-format", "{DD}.{MM}.{YYYY}")
.format(**autobuild.autobuild_date)
}
@@ -72,6 +65,8 @@ def inject_translations():
template = (
g.translations.get(section, {})
.get(key, f"${section}: {key}$")
.replace("\\n", " \\n")
.replace("\n", "")
)
try:
-3
View File
@@ -1,3 +0,0 @@
[banner]
url = https://summerofcode.withgoogle.com/programs/2026/organizations/kolibrios-project-team
img = gsoc.png
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Forum
wiki = Wiki
git = Git
[banner]
header = KolibriOS wurde zu GSoC 2026 angenommen!
text = Informieren Sie sich über Programmdetails und unsere Projektideen
alt = GSoC
[git]
header = KolibriOS ist zu Git gewechselt!
text = Schau dir unsere neue entwicklerfreundliche Infrastruktur an
[article]
p1 = {kolibrios} ist ein winziges, aber unglaublich leistungsfähiges und
@@ -67,10 +66,10 @@ screenshots = Bildschirmfotos
download_choice = Was soll ich wählen?
download_help = Für einen Einsteiger ist die LiveCD am besten geeignet.\n\
\n\
Im Vergleich zu einer LiveCD hat ein universelles Image den Vorteil, dass \
Im Vergleich zu einer LiveCD hat ein universelles Image den Vorteil, dass\
Sie die in KolibriOS vorgenommenen Änderungen speichern können.\n\
\n\
Das Hybrid-Image enthält Unterstützung für die UEFI-Technologie, die zum \
Das Hybrid-Image enthält Unterstützung für die UEFI-Technologie, die zum\
Booten des Systems auf neuen Computern und Laptops verwendet wird.
download_description = Auf dieser Seite können Sie die nächtlichen
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Forum
wiki = Wiki
git = Git
[banner]
header = KolibriOS accepted to GSoC 2026!
text = Check program details and our project ideas
alt = GSoC
[git]
header = KolibriOS moved to Git!
text = Check our new developers-friendly infrastructure
[article]
p1 = {kolibrios} is a tiny yet incredibly powerful and fast operating system for
@@ -63,10 +62,10 @@ all_rev = All nightly builds
download_choice = Which to choose?
download_help = For a beginner, the LiveCD is best.\n\
\n\
Compared to a LiveCD, the advantage of a universal image is that you can \
Compared to a LiveCD, the advantage of a universal image is that you can\
save changes made in KolibriOS.\n\
\n\
Hybrid image includes support for UEFI technology, which is used to boot \
Hybrid image includes support for UEFI technology, which is used to boot\
the system on new computers and laptops.
download_description = On this page you can download the nightly builds
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Foro
wiki = Wiki
git = Git
[banner]
header = ¡KolibriOS fue aceptado en GSoC 2026!
text = Consulta los detalles del programa y nuestras ideas de proyecto
alt = GSoC
[git]
header = ¡KolibriOS se ha trasladado a Git!
text = Mira nuestra nueva infraestructura amigable para desarrolladores
[article]
p1 = {kolibrios} es un sistema operativo diminuto, pero increíblemente potente y
@@ -65,10 +64,10 @@ all_rev = Todos los montajes nocturnos
download_choice = ¿Cuál elegir?
download_help = Para un principiante, el LiveCD es lo mejor.\n\
\n\
En comparación con un LiveCD, la ventaja de una imagen universal es que \
En comparación con un LiveCD, la ventaja de una imagen universal es que\
puedes guardar los cambios realizados en KolibriOS.\n\
\n\
Imagen híbrida incluye soporte para la tecnología UEFI, que se utiliza para \
Imagen híbrida incluye soporte para la tecnología UEFI, que se utiliza para\
arrancar el sistema en los nuevos ordenadores y portátiles.
download_description = En esta página puedes descargar la distribución de
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Forum
wiki = Wiki
git = Git
[banner]
header = KolibriOS a été accepté au GSoC 2026 !
text = Consultez les détails du programme et nos idées de projets
alt = GSoC
[git]
header = KolibriOS a déménagé sur Git !
text = Découvrez notre nouvelle infrastructure conviviale pour les développeurs
[article]
p1 = {kolibrios} est un système d`exploitation minuscule, mais incroyablement
@@ -65,10 +64,10 @@ all_rev = Toutes les constructions nocturnes
download_choice = Que choisir ?
download_help = Pour un débutant, le LiveCD est le meilleur.\n\
\n\
Par rapport à un LiveCD, l`avantage d`une image universelle est que vous \
Par rapport à un LiveCD, l`avantage d`une image universelle est que vous\
pouvez sauvegarder les changements effectués dans KolibriOS.\n\
\n\
L`image hybride inclut le support de la technologie UEFI, qui est utilisée \
L`image hybride inclut le support de la technologie UEFI, qui est utilisée\
pour démarrer le système sur les nouveaux ordinateurs et portables.
download_description = Sur cette page, vous pouvez télécharger la distribution
+6 -6
View File
@@ -14,10 +14,10 @@ forum = Forum
wiki = Wiki
git = Git
[banner]
header = KolibriOS è stato accettato al GSoC 2026!
text = Consulta i dettagli del programma e le nostre idee di progetto
alt = GSoC
[git]
header = KolibriOS si è spostato su Git!
text = Dai un`occhiata alla nostra nuova infrastruttura pensata per gli
sviluppatori
[article]
p1 = {kolibrios} è un sistema operativo minuscolo, ma incredibilmente potente e
@@ -63,10 +63,10 @@ all_rev = Tutte le build notturne
download_choice = Quale scegliere?
download_help = Per un principiante, il LiveCD è la soluzione migliore.\n\
\n\
Rispetto a un LiveCD, il vantaggio di un`immagine universale è che è \
Rispetto a un LiveCD, il vantaggio di un`immagine universale è che è\
possibile salvare le modifiche apportate in KolibriOS.\n\
\n\
L`immagine ibrida include il supporto per la tecnologia UEFI, utilizzata \
L`immagine ibrida include il supporto per la tecnologia UEFI, utilizzata\
per avviare il sistema su nuovi computer e portatili.
download_description = In questa pagina puoi scaricare la distribuzione delle
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Forum
wiki = Wiki
git = Git
[banner]
header = KolibriOS is geaccepteerd voor GSoC 2026!
text = Bekijk de programmadetails en onze projectideeën
alt = GSoC
[git]
header = KolibriOS is verhuisd naar Git!
text = Bekijk onze nieuwe, ontwikkelaarsvriendelijke infrastructuur
[article]
p1 = {kolibrios} is een klein maar ongelooflijk krachtig en snel
@@ -65,10 +64,10 @@ all_rev = Alle nachtelijke builds
download_choice = Welke moet ik kiezen?
download_help = Voor een beginner is de LiveCD het beste.\n\
\n\
Vergeleken met een LiveCD heeft een universeel image het voordeel dat je \
Vergeleken met een LiveCD heeft een universeel image het voordeel dat je\
wijzigingen die je in KolibriOS hebt aangebracht, kunt opslaan.\n\
\n\
Hybride image bevat ondersteuning voor UEFI-technologie, die wordt gebruikt \
Hybride image bevat ondersteuning voor UEFI-technologie, die wordt gebruikt\
om het systeem op te starten op nieuwe computers en laptops.
download_description = Op deze pagina kunt u de nightly builds-distributie
+5 -6
View File
@@ -14,10 +14,9 @@ forum = Форум
wiki = Вики
git = Git
[banner]
header = KolibriOS принята в GSoC 2026!
text = Ознакомьтесь с деталями программы и нашими идеями проектов
alt = GSoC
[git]
header = КолибриОС перешла на Git!
text = Ознакомьтесь с нашей новой, удобной для разработчиков инфраструктурой
[article]
p1 = {kolibrios} — это крошечная, но невероятно мощная и быстрая операционная
@@ -65,10 +64,10 @@ all_rev = Все ночные сборки
download_choice = Какой выбрать?
download_help = Для новичка лучше всего подойдет LiveCD.\n \
\n\
По сравнению с LiveCD преимущество универсального образа в том, что вы \
По сравнению с LiveCD преимущество универсального образа в том, что вы\
можете сохранить изменения, сделанные в КолибриОС.\n\
\n\
Гибридный образ включает поддержку технологии UEFI, которая используется \
Гибридный образ включает поддержку технологии UEFI, которая используется\
для загрузки системы на новых компьютерах и ноутбуках.
download_description = На этой странице вы можете скачать ночные сборки
-96
View File
@@ -1,96 +0,0 @@
[title]
language = Українська
index = KolibriOS
download = KolibriOS - Завантажити
[header]
index = Офіційний сайт KolibriOS
download = Завантажити KolibriOS
[menu]
kolibrios = KolibriOS
download = Завантажити
forum = Форум
wiki = Вікі
git = Git
[banner]
header = KolibriOS прийнято до GSoC 2026!
text = Ознайомтеся з деталями програми та нашими ідеями проєктів
alt = GSoC
[article]
p1 = {kolibrios} - це крихітна, але неймовірно потужна та швидка
операційна система для x86-сумісних ПК. Для її роботи достатньо
лише кількох мегабайтів місця на диску, процесора i586 та 12 МБ
оперативної пам'яті. При цьому вона містить багатий набір додатків,
таких як текстовий редактор, переглядач зображень, графічний редактор,
веб-браузер та понад 30 захопливих ігор. Є повна підтримка файлових систем
FAT12/16/32, тільки на читання доступні NTFS, exFAT, ISO9660 та Ext2/3/4,
а також присутній великий набір {drivers} для популярних звукових, мережевих
та графічних карт.
drivers = драйверів
p2 = Ви коли-небудь мріяли про систему, яка завантажується менш ніж за кілька
секунд з моменту ввімкнення до появи робочого графічного інтерфейсу? Про додатки,
які запускаються миттєво, одразу після натискання на ярлик, без набридливих
індикаторів завантаження? Така швидкість досягається завдяки тому, що основні
частини {kolibrios} (ядро та драйвери) повністю написані на асемблері {fasm}.
Спробуйте {kolibrios} і порівняйте її з такими важковаговиками, як Windows та Linux.
p3 = {kolibrios} відокремилася від MenuetOS у 2004 році й
відтоді розвивається незалежною міжнародною спільнотою.
Ваші {feedback} дуже цінуються, а ваша {help} цінується ще більше.
feedback = відгуки
help = допомога
p_subscription = Сподіваємося, вам сподобається!
[downloads]
header = Завантажити
version = Версія:
date = Дата збірки:
date-format = {DD}.{MM}.{YYYY}
img-descr = Образ дискети
iso-descr = Образ LiveCD
distr-descr = Універсальний образ Flash/Multi-boot
raw-descr = Гібридний UEFI/BIOS образ
prev_rev = Попередні випуски
all_rev = Усі нічні збірки
download_choice = Який обрати?
download_help = Для новачка найкраще підійде LiveCD.\n \
\n\
У порівнянні з LiveCD перевага універсального образу полягає в тому, що ви
можете зберегти зміни, зроблені в KolibriOS.\n
\n\
Гібридний образ містить підтримку технології UEFI, яка використовується
для завантаження системи на нових комп'ютерах та ноутбуках.
download_description = На цій сторінці ви можете завантажити нічні збірки
дистрибутива. Це означає, що вони завжди містять останні зміни в
системі, а отже можуть бути нестабільними. Усі файли стиснуті за
допомогою {zip}. {kolibrios} розповсюджується під ліцензією {gpl}, а
вихідний код доступний на нашому {git}.
git-server = Git-сервері
download_warn = Іноді антивіруси можуть помилково помічати образ {kolibrios}
як загрозу. Це помилкове спрацьовування. {kolibrios} має повністю відкритий
вихідний код, і ви завжди можете зібрати її самостійно, щоб
переконатися, що вона абсолютно безпечна.
[screenshots]
header = Скриншоти
1 = Робочий стіл KolibriOS
2 = Демки
3 = Файлові менеджери
4 = Мережеві додатки
5 = Ігри
6 = Інструменти розробника
[footer]
team = Команда KolibriOS
+3 -4
View File
@@ -14,10 +14,9 @@ forum = 论坛
wiki = 百科
git = Git
[banner]
header = KolibriOS 已被 GSoC 2026 录取
text = 查看项目详情和我们的项目创意
alt = GSoC
[git]
header = KolibriOS 现已拥抱 Git
text = 来看看我们全新又对开发者友好的代码仓库吧:
[article]
p1 = {kolibrios} 是一个体积微小、功能强大、响应迅速的,面向 x86 兼容机的操作系统。
+5 -4
View File
@@ -14,10 +14,9 @@ forum = 論壇
wiki = 百科
git = Git
[banner]
header = KolibriOS 已入選 GSoC 2026
text = 查看計畫詳情和我們的專案構想
alt = GSoC
[git]
header = KolibriOS 現已移入 Git
text = 來看看我們又新又友好的代碼倉庫吧:
[article]
p1 = {kolibrios} 是一個空間小、功能強、回應快的,面向 x86 兼容機的作業系統。
@@ -84,3 +83,5 @@ header = 內容截屏
[footer]
team = KolibriOS 開發團隊
+44 -50
View File
@@ -1,50 +1,23 @@
from datetime import date
import re
import threading
import time
from urllib.request import Request, urlopen
STATUS_URL = "http://builds.kolibrios.org/status.html"
STATUS_URL = "https://builds.kolibrios.org/status.html"
STATUS_SEC = 300 # refetch each 5 minutes
DOWNLOAD_LANGS = ("en_US", "ru_RU", "es_ES")
DOWNLOAD_EXTS = ("img", "iso", "distr", "raw")
VER_RE = re.compile(r"\b(\d+\.\d+\.\d+\.\d+\+\d{3,8}-[0-9a-fA-F]{7,40})\b")
DATE_RE = re.compile(r"\b(\d{4})\.(\d{2})\.(\d{2})\s+\d{2}:\d{2}:\d{2}\b")
ROW_RE = re.compile(r"(<tr\b[^>]*>.*?</tr>)", flags=re.I | re.S)
autobuild_date = date.today()
autobuild_date = {"YYYY": "YYYY", "MM": "MM", "DD": "DD"}
autobuild_vers = "0.0.0.0+0000-0000000"
autobuild_sizes = {
lang: {ext: "?" for ext in DOWNLOAD_EXTS}
for lang in DOWNLOAD_LANGS
}
_started = False
_updater_lock = threading.Lock()
def _refresh_build_sizes():
for lang in DOWNLOAD_LANGS:
for ext in DOWNLOAD_EXTS:
url = f"http://builds.kolibrios.org/{lang}/latest-{ext}.7z"
req = Request(
url,
method="HEAD",
headers={"User-Agent": "Mozilla/5.0"},
)
with urlopen(req, timeout=10) as r:
content_length = r.headers.get("Content-Length")
if not content_length:
continue
autobuild_sizes[lang][ext] = f"{int(content_length) / 1048576:.1f} MB"
def _refresh_autobuild_once():
def _refresh_build_date_once():
global autobuild_date, autobuild_vers
try:
from urllib.request import Request, urlopen
req = Request(
STATUS_URL,
headers={
@@ -57,26 +30,47 @@ def _refresh_autobuild_once():
r.headers.get_content_charset() or "utf-8", "replace"
)
last_ver = None
rows = re.findall(r"(<tr\b[^>]*>.*?</tr>)", html, flags=re.I | re.S)
if not rows:
return
for row in ROW_RE.findall(html):
last_commit_ver = None
for row in rows:
cls = re.search(r'class\s*=\s*"([^"]*)"', row, flags=re.I)
classes = cls.group(1).lower() if cls else ""
if "commit" in classes:
mver = VER_RE.search(row)
if mver:
last_ver = mver.group(1)
continue
if "success" not in classes:
continue
text = re.sub(r"<[^>]+>", " ", row)
mts = DATE_RE.search(text)
if mts:
autobuild_date = date(*map(int, mts.groups()))
if last_ver:
autobuild_vers = last_ver
_refresh_build_sizes()
return
if "commit" in classes:
mver = re.search(
r"\b(\d+\.\d+\.\d+\.\d+\+\d{3,8}-[0-9a-fA-F]{7,40})\b", row
)
if mver:
last_commit_ver = mver.group(1)
elif "success" in classes:
mts = re.search(
r"\b(\d{4})\.(\d{2})\.(\d{2})\s+\d{2}:\d{2}:\d{2}\b", text
)
if not mts:
mds = re.search(r"\b(\d{2})\.(\d{2})\.(\d{4})\b", text)
if mds:
autobuild_date["YYYY"] = mds.group(1)
autobuild_date["MM"] = mds.group(2)
autobuild_date["DD"] = mds.group(3)
else:
return
else:
(
autobuild_date["YYYY"],
autobuild_date["MM"],
autobuild_date["DD"],
) = mts.groups()
if last_commit_ver:
autobuild_vers = last_commit_ver
return
except Exception:
pass
@@ -84,7 +78,7 @@ def _refresh_autobuild_once():
def _updater_loop():
while True:
_refresh_autobuild_once()
_refresh_build_date_once()
time.sleep(STATUS_SEC)
@@ -97,4 +91,4 @@ def ensure_started():
_started = True
_refresh_autobuild_once()
_refresh_build_date_once()
-50
View File
@@ -1,50 +0,0 @@
from os import path, listdir
from configparser import ConfigParser
import threading
_configs = {}
_loaded = False
_load_lock = threading.Lock()
def load_all_configs():
new_configs = {}
configs_dir = "configs"
if not path.isdir(configs_dir):
return new_configs
for filename in sorted(listdir(configs_dir)):
if not filename.endswith(".ini"):
continue
file_path = path.join(configs_dir, filename)
cp = ConfigParser()
with open(file_path, encoding="utf-8") as f:
cp.read_file(f)
for section in cp.sections():
section_data = new_configs.setdefault(section, {})
section_data.update(dict(cp[section]))
return new_configs
def ensure_loaded():
global _configs, _loaded
with _load_lock:
if _loaded:
return
_configs = load_all_configs()
_loaded = True
def get_section(name):
ensure_loaded()
return dict(_configs.get(name, {}))
def get_all_sections():
ensure_loaded()
return {section: dict(values) for section, values in _configs.items()}
+1 -1
View File
@@ -19,5 +19,5 @@ def render_localized_template(lang, template_name):
template_name,
year=date.today().year,
),
remove_empty_space=False,
remove_empty_space=True,
)
-9
View File
@@ -2,8 +2,6 @@ from os import path, listdir
from configparser import ConfigParser
import threading
from modules import configs
translations = {}
locales_name = {}
@@ -35,13 +33,6 @@ def load_all_locales():
section: dict(cp[section]) for section in cp.sections()
}
shared_sections = configs.get_all_sections()
if shared_sections:
for locale_translation in new_translations.values():
for section_name, section_values in shared_sections.items():
locale_section = locale_translation.setdefault(section_name, {})
locale_section.update(section_values)
new_locales_code = locales_code_default + tuple(sorted(locales_code_extra))
new_locales_name = {
locale_code: new_translations[locale_code]["title"]["language"]
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

+10 -21
View File
@@ -16,9 +16,7 @@ $c-shadow-soft: #1C1A281F;
$c-article-bd: #C0B9C491;
$c-primary: #609A21;
$c-banner: #F9AB00;
$c-banner-ink: #F9AB00AA;
$c-primary-ink: #609A21AA;
$c-link: #0472D8;
$c-link-hover: #0053B9;
@@ -182,21 +180,12 @@ body {
text-decoration: none;
&:hover {
box-shadow: inset 0 0 0 4px $c-banner-ink;
}
table {
table-layout: fixed;
box-shadow: inset 0 0 0 4px $c-primary-ink;
}
td {
text-align: center;
vertical-align: middle;
&:first-child,
&:last-child {
width: 128px;
}
}
img {
@@ -204,7 +193,7 @@ body {
}
h1 {
color: $c-banner;
color: $c-primary;
font-size: 2.5em;
margin: 0 0 16px;
}
@@ -213,14 +202,14 @@ body {
margin: 0em;
}
a {
display: block;
.p-link {
margin-top: 16px;
overflow-wrap: anywhere;
word-break: break-word;
color: $c-primary;
font-weight: bold;
color: $c-banner;
border: none;
}
a {
color: $c-primary;
}
}
@@ -486,7 +475,7 @@ iframe {
margin-bottom: 0;
}
p {
p, .p-link {
margin-top: 0.5em;
}
}
+4 -4
View File
@@ -56,7 +56,7 @@
('es_ES', 'Español')
) %}
<a href="//builds.kolibrios.org/{{ l }}/latest-{{ ext }}.7z"
title="{{ autobuild_vers }}, {{ autobuild_sizes[l][ext] }}"
title="ver. $autobuild_cmtid_{{ l }}, $autobuild_size_{{ l }}_{{ ext }}"
class="button">
{{ lang }}
{% if l == 'en_US' %}
@@ -100,9 +100,9 @@
{{ _(
'downloads:download_description',
kolibrios="<b>{0}</b>".format(_('title:index')),
zip="<a href='https://7-zip.org' target='_blank'>7zip</a>",
gpl="<a href='//www.gnu.org/licenses/gpl-2.0.html' target='_blank'>GPLv2</a>",
git="<a href='//git.kolibrios.org'>{0}</a>".format(_('downloads:git-server'))
zip="<a href='http://www.7-zip.org' target='_blank'>7zip</a>",
gpl="<a href='http://www.gnu.org/licenses/gpl-2.0.html' target='_blank'>GPLv2</a>",
git="<a href='https://git.kolibrios.org'>{0}</a>".format(_('downloads:git-server'))
) | safe }}
</p>
+1 -1
View File
@@ -10,7 +10,7 @@
{% include 'tmpl/_menu.htm' %}
<div id="article">
{% include 'tmpl/_banner.htm' %}
{% include 'tmpl/_git.htm' %}
{% include 'tmpl/_article.htm' %}
+4 -4
View File
@@ -3,7 +3,7 @@
'article:p1',
kolibrios="<b>{0}</b>"
.format(_('menu:kolibrios')),
drivers="<a href='//wiki.kolibrios.org/wiki/Hardware_Support'>{0}</a>"
drivers="<a href='http://wiki.kolibrios.org/wiki/Hardware_Support'>{0}</a>"
.format(_('article:drivers'))
) | safe }}
</p>
@@ -19,7 +19,7 @@
'article:p2',
kolibrios="<b>{0}</b>"
.format(_('menu:kolibrios')),
fasm="<a href='//flatassembler.net' target='_blank'>FASM</a>"
fasm="<a href='http://www.flatassembler.net' target='_blank'>FASM</a>"
) | safe }}
</p>
@@ -28,9 +28,9 @@
'article:p3',
kolibrios="<b>{0}</b>"
.format(_('menu:kolibrios')),
feedback="<a href='//board.kolibrios.org'>{0}</a>"
feedback="<a href='http://board.kolibrios.org'>{0}</a>"
.format(_('article:feedback')),
help="<a href='//git.kolibrios.org/KolibriOS/kolibrios'>{0}</a>"
help="<a href='https://git.kolibrios.org/KolibriOS/kolibrios'>{0}</a>"
.format(_('article:help'))
) | safe }}
</p>
-17
View File
@@ -1,17 +0,0 @@
<a id="banner" href="{{ _('banner:url') }}" target="_blank">
<table>
<tr>
<td valign="top" width="128">
<img src="{{ url_for('static', filename='img/logo.png') }}" alt="{{ _('title:index')}}">
</td>
<td valign="top">
<h1>{{ _('banner:header') }}</h1>
<p>{{ _('banner:text') }}</p>
<a href="{{ _('banner:url') }}">{{ _('banner:url') }}</a>
</td>
<td valign="top" width="128">
<img src="{{ url_for('static', filename='img/banners/' + _('banner:img')) }}" alt="{{ _('banner:alt') }}">
</td>
</tr>
</table>
</a>
+1 -1
View File
@@ -1,7 +1,7 @@
<div id="footer">
<img src="{{ url_for('static', filename='img/logo.png') }}" alt="KolibriOS">
<p>
&copy; 2004 - {{ year }} <br />
&copy; 2004{{ year }} <br />
{{ _('footer:team') }}
</p>
</div>
+19
View File
@@ -0,0 +1,19 @@
<a id="banner" href="https://git.kolibrios.org" target="_blank">
<table>
<tr>
<td valign="top" width="128">
<img src="{{ url_for('static', filename='img/logo.png') }}" alt="KolibriOS">
</td>
<td valign="top">
<h1>{{ _('git:header') }}</h1>
<p>{{ _('git:text') }}</p>
<p class="p-link">
<a href="https://git.kolibrios.org">https://git.kolibrios.org</a>
</p>
</td>
<td valign="top" width="128">
<img src="{{ url_for('static', filename='img/gitea.png') }}" alt="Gitea">
</td>
</tr>
</table>
</a>
+1 -1
View File
@@ -4,7 +4,7 @@
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='favicon.ico') }}">
<meta name="description" content="{{ _('header:%s' % request.url_rule.endpoint) }}">
<meta name="keywords"
content="kolibri, kolibrios, colibri, colibrios, колибри, колибриос, калибри, калибриос, operating system, assembler, fasm, alternate, open source">
content="kolibri, kolibrios, колибри, колибриос, colibri, operating system, assembler, калибри, fasm, alternate, open source">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">
<script src="{{ url_for('static', filename='script.min.js') }}"></script>
+7 -9
View File
@@ -1,13 +1,13 @@
<nav id="menu">
<a href="{{ url_for('index', lang=g.locale) }}"{% if request.endpoint == 'index' %} class="a-sel"{% endif %}>
<a href="{{ url_for('index', lang=g.locale) }}" class="{% if request.endpoint == 'index' %}a-sel{% endif %}">
{% if current == 'index' %}
<font bg="lightblue">{{ _('menu:kolibrios') }}</font>
{% else %}
{{ _('menu:kolibrios') }}
{% endif %}
</a>
<a href="{{ url_for('download', lang=g.locale) }}"{% if request.endpoint == 'download' %} class="a-sel"{% endif %}>
<a href="{{ url_for('download', lang=g.locale) }}" class="{% if request.endpoint == 'download' %}a-sel{% endif %}">
{% if current == 'download' %}
<font bg="lightblue">{{ _('menu:download') }}</font>
{% else %}
@@ -15,12 +15,10 @@
{% endif %}
</a>
<a href="//board.kolibrios.org">{{ _('menu:forum') }}</a>
<a href="//wiki.kolibrios.org/wiki/Main_Page/{{ g.locale }}">{{ _('menu:wiki') }}</a>
<a href="//git.kolibrios.org">Git</a>
<a href="https://board.kolibrios.org">{{ _('menu:forum') }}</a>
<a href="https://wiki.kolibrios.org/wiki/Main_Page/{{ g.locale }}">{{ _('menu:wiki') }}</a>
<a href="https://git.kolibrios.org">Git</a>
<button onclick="dropdown_show(this)" id="lang-butt">
<img src="{{ url_for('static', filename='img/flags/%s.png' % g.locale) }}" alt="{{ g.locale }}">
</button>
+3 -13
View File
@@ -7,21 +7,11 @@
<img src="{{ url_for('static', filename='img/icons/i_discord.png') }}" alt="Discord">Discord
</a>
<br />
<a href="https://facebook.com/groups/kolibrios/" target="_blank">
<a href="https://www.facebook.com/groups/kolibrios/" target="_blank">
<img src="{{ url_for('static', filename='img/icons/i_facebook.png') }}" alt="Facebook">Facebook
</a>
<br />
<a href="https://reddit.com/r/KolibriOS/" target="_blank">
<a href="https://www.reddit.com/r/KolibriOS/" target="_blank">
<img src="{{ url_for('static', filename='img/icons/i_reddit.png') }}" alt="Reddit">Reddit
</a>
</p>
<p class="p-socials">
<a href="https://matrix.to/#/#kolibrios:lair.moe" target="_blank">
<img src="{{ url_for('static', filename='img/icons/i_matrix.png') }}" alt="Matrix">Matrix
</a>
<br />
<a href="irc://kolibrios.org" target="_blank">
<img src="{{ url_for('static', filename='img/icons/i_irc.png') }}" alt="IRC">IRC
</a>
</p>
</p>