Compare commits
29
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1730eaeaf9 | ||
|
|
17edacd3ac | ||
|
|
03b45c8253 | ||
|
|
4cb94f613e | ||
|
|
d3bb363878 | ||
|
|
997e1c20bf | ||
|
|
fc8aa255df | ||
|
|
65f5c6658a | ||
|
|
db77b57f74 | ||
|
|
71681f43b7 | ||
|
|
763402303e | ||
|
|
2e8383611b | ||
|
|
5a4a306255 | ||
|
|
4eb8bdd170 | ||
|
|
5a7cf7ce1b | ||
|
|
335574864d | ||
|
|
7439561559 | ||
|
|
754e7ae38c | ||
|
|
70dfb015c4 | ||
|
|
a3ba6a78fb | ||
|
|
81d25bc645 | ||
|
|
89a5f8a5ae | ||
|
|
5953266fbc | ||
|
|
25d68524b7 | ||
|
|
838380254f | ||
|
|
8b9a0e4b75 | ||
|
|
f3eeff5939 | ||
|
|
9a22083ff9 | ||
|
|
fb0d1c2199 |
Executable
+31
@@ -0,0 +1,31 @@
|
||||
name: Docker Build and Push
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to Docker Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: git.kolibrios.org
|
||||
username: kolibrios
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name == 'push' }}
|
||||
tags: git.kolibrios.org/kolibrios/kolibrios.org:latest
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
@@ -19,3 +19,6 @@ docs/_build/
|
||||
# Our's
|
||||
Dockerfile
|
||||
.env
|
||||
static/*.css
|
||||
static/*.css.map
|
||||
static/*.min.js
|
||||
@@ -1,15 +1,10 @@
|
||||
from os import path, listdir
|
||||
from datetime import date
|
||||
from configparser import ConfigParser
|
||||
import re
|
||||
import datetime
|
||||
|
||||
from flask import (
|
||||
Flask,
|
||||
redirect,
|
||||
render_template,
|
||||
request,
|
||||
url_for,
|
||||
Response
|
||||
)
|
||||
from sass import compile as compile_sass
|
||||
from flask import Flask, redirect, request, url_for, g, Response
|
||||
|
||||
from modules import autobuild, locales, helpers
|
||||
|
||||
|
||||
# ---------- APP CONFIG ------------------------------------------------------
|
||||
@@ -17,84 +12,80 @@ from flask import (
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
locales.ensure_loaded()
|
||||
|
||||
# ---------- LOCALES FUNCTIONS -----------------------------------------------
|
||||
if app.debug:
|
||||
# CSS Compilation and minification
|
||||
css = compile_sass(filename="static/style.scss", output_style="compressed")
|
||||
with open("static/style.css", "w", encoding="utf-8") as f:
|
||||
f.write(css)
|
||||
|
||||
# JS minification
|
||||
with open("static/script.js", encoding="utf-8") as f:
|
||||
js = f.read()
|
||||
js = re.sub(r"/\*.*?\*/", "", js, flags=re.S)
|
||||
js = re.sub(r"//.*", "", js)
|
||||
js = re.sub(r"\s+", " ", js).strip()
|
||||
with open("static/script.min.js", "w", encoding="utf-8") as f:
|
||||
f.write(js)
|
||||
|
||||
|
||||
def load_all_locales():
|
||||
cp = ConfigParser()
|
||||
locales_list = []
|
||||
locales_dict = {}
|
||||
locales_dir = "locales"
|
||||
|
||||
for filename in listdir(locales_dir):
|
||||
if filename.endswith(".ini"):
|
||||
lang = path.splitext(filename)[0]
|
||||
with open(path.join(locales_dir, filename), encoding="utf-8") as f:
|
||||
cp.read_file(f)
|
||||
locales_dict[lang] = {
|
||||
section: dict(cp[section]) for section in cp.sections()
|
||||
}
|
||||
|
||||
for code, data in locales_dict.items():
|
||||
full_name = data.get("title", {}).get("language", code)
|
||||
locales_list.append({"code": code, "name": full_name})
|
||||
|
||||
priority = ["en", "ru", "es"]
|
||||
locales_list.sort(
|
||||
key=lambda loc: (0, priority.index(loc["code"]))
|
||||
if loc["code"] in priority
|
||||
else (1, loc["code"])
|
||||
)
|
||||
|
||||
locales_code = [loc["code"] for loc in locales_list]
|
||||
|
||||
return locales_list, locales_dict, locales_code
|
||||
@app.before_request
|
||||
def _ensure_updater_started():
|
||||
autobuild.ensure_started()
|
||||
|
||||
|
||||
locales_list, locales_dict, locales_code = load_all_locales()
|
||||
@app.before_request
|
||||
def before_request():
|
||||
if args := request.view_args:
|
||||
g.locale = args.get("lang", "en")
|
||||
g.translations = locales.translations.get(g.locale, helpers.get_best_lang())
|
||||
g.locales_name = locales.locales_name
|
||||
|
||||
|
||||
# ---------- HELPER FUNCTIONS ------------------------------------------------
|
||||
@app.context_processor
|
||||
def _inject_autobuild_vers():
|
||||
return {'autobuild_vers': autobuild.autobuild_vers}
|
||||
|
||||
|
||||
def get_best_lang():
|
||||
return request.accept_languages.best_match(locales_code) or "en"
|
||||
@app.context_processor
|
||||
def _inject_autobuild_date():
|
||||
return {'autobuild_date': autobuild.autobuild_date}
|
||||
|
||||
|
||||
def render_localized_template(lang, template_name):
|
||||
if lang not in locales_dict:
|
||||
return redirect(url_for("index", lang=get_best_lang()))
|
||||
@app.context_processor
|
||||
def inject_translations():
|
||||
def translate(text, **kwargs):
|
||||
section, key = text.split(":", 1)
|
||||
|
||||
return render_template(
|
||||
template_name,
|
||||
loc_list=locales_list,
|
||||
locale=locales_dict[lang],
|
||||
lang=lang,
|
||||
year=date.today().year,
|
||||
current=request.endpoint,
|
||||
)
|
||||
template = g.translations \
|
||||
.get(section, {}) \
|
||||
.get(key, f"${section}: {key}$")
|
||||
|
||||
try:
|
||||
return template.format(**kwargs)
|
||||
except Exception:
|
||||
return template
|
||||
|
||||
return {'_': translate}
|
||||
|
||||
|
||||
# ---------- MAIN PAGES ------------------------------------------------------
|
||||
# ---------- ROUTES -------------------------------------------------------
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def home():
|
||||
return redirect(url_for("index", lang=get_best_lang()))
|
||||
return redirect(url_for("index", lang=helpers.get_best_lang()))
|
||||
|
||||
|
||||
@app.route("/<lang>")
|
||||
def index(lang):
|
||||
return render_localized_template(lang, "index.html")
|
||||
return helpers.render_localized_template(lang, "index.html")
|
||||
|
||||
|
||||
@app.route("/<lang>/download")
|
||||
def download(lang):
|
||||
return render_localized_template(lang, "download.html")
|
||||
|
||||
|
||||
# ---------- ROBOTS.TXT + SITEMAP.XML ----------------------------------------
|
||||
return helpers.render_localized_template(lang, "download.html")
|
||||
|
||||
|
||||
@app.route("/robots.txt")
|
||||
@@ -111,10 +102,10 @@ def robots_txt():
|
||||
@app.route("/sitemap.xml")
|
||||
def sitemap_xml():
|
||||
base_url = request.url_root.rstrip("/")
|
||||
today = date.today().isoformat()
|
||||
today = datetime.date.today().isoformat()
|
||||
|
||||
urls = []
|
||||
for lang in locales_code:
|
||||
for lang in locales.locales_code:
|
||||
urls.append(f"{base_url}/{lang}")
|
||||
urls.append(f"{base_url}/{lang}/download")
|
||||
|
||||
@@ -125,12 +116,12 @@ def sitemap_xml():
|
||||
for loc in urls:
|
||||
xml_lines.extend(
|
||||
[
|
||||
" <url>",
|
||||
f" <loc>{loc}</loc>",
|
||||
f" <lastmod>{today}</lastmod>",
|
||||
" <changefreq>monthly</changefreq>",
|
||||
" <priority>0.8</priority>",
|
||||
" </url>",
|
||||
f" <url>",
|
||||
f" <loc>{loc}</loc>",
|
||||
f" <lastmod>{today}</lastmod>",
|
||||
f" <changefreq>monthly</changefreq>",
|
||||
f" <priority>0.8</priority>",
|
||||
f" </url>",
|
||||
]
|
||||
)
|
||||
xml_lines.append("</urlset>")
|
||||
|
||||
+42
-23
@@ -19,28 +19,39 @@ header = KolibriOS ist zu Git gewechselt!
|
||||
text = Schau dir unsere neue entwicklerfreundliche Infrastruktur an
|
||||
|
||||
[article]
|
||||
p1[0] = ist ein winziges, aber unglaublich leistungsfähiges und schnelles Betriebssystem für x86-kompatible PCs. Es benötigt nur wenige Megabyte Speicherplatz, einen i586-Prozessor und 12 MB RAM. Trotz seiner geringen Größe enthält es eine Vielzahl von Anwendungen wie einen Texteditor, einen Bildbetrachter, einen Grafikeditor, einen Webbrowser und über 30 spannende Spiele. Es bietet vollständige Unterstützung für die Dateisysteme FAT12/16/32, ermöglicht Lesezugriff auf NTFS, exFAT, ISO9660 und Ext2/3/4 sowie eine umfangreiche Sammlung von
|
||||
p1[1] = Treibern
|
||||
p1[2] = für gängige Sound-, Netzwerk- und Grafikkarten.
|
||||
p1 = {kolibrios} ist ein winziges, aber unglaublich leistungsfähiges und
|
||||
schnelles Betriebssystem für x86-kompatible PCs. Es benötigt nur wenige
|
||||
Megabyte Speicherplatz, einen i586-Prozessor und 12 MB RAM. Trotz seiner
|
||||
geringen Größe enthält es eine Vielzahl von Anwendungen wie einen
|
||||
Texteditor, einen Bildbetrachter, einen Grafikeditor, einen Webbrowser und
|
||||
über 30 spannende Spiele. Es bietet vollständige Unterstützung für die
|
||||
Dateisysteme FAT12/16/32, ermöglicht Lesezugriff auf NTFS, exFAT, ISO9660
|
||||
und Ext2/3/4 sowie eine umfangreiche Sammlung von {drivers} für gängige
|
||||
Sound-, Netzwerk- und Grafikkarten.
|
||||
drivers = Treibern
|
||||
|
||||
p2[0] = Haben Sie schon einmal von einem System geträumt, das in weniger als wenigen Sekunden vom Einschalten bis zu einer funktionierenden GUI bootet? Anwendungen, die sofort starten, direkt nach dem Klicken auf ein Symbol, ohne lästige Sanduhrzeiger? Diese Geschwindigkeit wird erreicht, da die Kernkomponenten von
|
||||
p2[1] = (Kernel und Treiber) vollständig in der Assemblersprache
|
||||
p2[11] = geschrieben sind
|
||||
p2[2] = Probieren Sie
|
||||
p2[3] = aus und vergleichen Sie es mit Schwergewichten wie Windows und Linux.
|
||||
p2 = Haben Sie schon einmal von einem System geträumt, das in weniger als
|
||||
wenigen Sekunden vom Einschalten bis zu einer funktionierenden GUI bootet?
|
||||
Anwendungen, die sofort starten, direkt nach dem Klicken auf ein Symbol,
|
||||
ohne lästige Sanduhrzeiger? Diese Geschwindigkeit wird erreicht, da die
|
||||
Kernkomponenten von {kolibrios} (Kernel und Treiber) vollständig in der
|
||||
Assemblersprache {fasm} geschrieben sind. Probieren Sie {kolibrios} aus und
|
||||
vergleichen Sie es mit Schwergewichten wie Windows und Linux.
|
||||
|
||||
p3[0] = hat sich 2004 von MenuetOS abgespalten und wird seitdem unabhängig entwickelt. Ihr
|
||||
p3[1] = Rückmeldung
|
||||
p3[2] = wird sehr geschätzt, und Ihre
|
||||
p3[3] = Hilfe
|
||||
p3[4] = ist noch mehr willkommen.
|
||||
p3 = {kolibrios} hat sich 2004 von MenuetOS abgespalten und wird seitdem
|
||||
unabhängig entwickelt. Ihr {feedback} wird sehr geschätzt, und Ihre {help}
|
||||
ist noch mehr willkommen.
|
||||
feedback = Rückmeldung
|
||||
help = Hilfe
|
||||
|
||||
p_subscription[0] = Wir hoffen, es gefällt Ihnen!
|
||||
p_subscription[1] = KolibriOS-Team
|
||||
p_subscription = Wir hoffen, es gefällt Ihnen!
|
||||
|
||||
[downloads]
|
||||
header = Herunterladen
|
||||
|
||||
version = Version:
|
||||
date = Build-Datum:
|
||||
|
||||
img-descr = Disketten-Image
|
||||
iso-descr = LiveCD-Abbild
|
||||
distr-descr = Universal Flash/Multi-Boot-Abbild
|
||||
@@ -54,16 +65,24 @@ 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 Sie die in KolibriOS vorgenommenen Änderungen speichern können.\n\
|
||||
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 Booten des Systems auf neuen Computern und Laptops verwendet wird.
|
||||
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[0] = Auf dieser Seite können Sie die nächtlichen Build-Distributionen herunterladen,
|
||||
was bedeutet, dass sie stets die neuesten Änderungen am System enthalten und
|
||||
daher instabil sein können. Alle Dateien sind mit
|
||||
download_description[1] = komprimiert.
|
||||
download_description[2] = wird unter der
|
||||
download_description[3] = Git-Server
|
||||
download_description = Auf dieser Seite können Sie die nächtlichen
|
||||
Build-Distributionen herunterladen, was bedeutet, dass sie stets die
|
||||
neuesten Änderungen am System enthalten und daher instabil sein können. Alle
|
||||
Dateien sind mit {zip} komprimiert. {kolibrios} wird unter der {gpl}-Lizenz
|
||||
vertrieben, und der Quellcode ist auf unserem {git} verfügbar.
|
||||
git-server = Git-Server
|
||||
|
||||
download_warn = Gelegentlich stufen einige Antivirenprogramme das
|
||||
{kolibrios}-Image fälschlicherweise als Bedrohung ein.
|
||||
Das ist ein Fehlalarm. {kolibrios} ist vollständig quelloffen, und Sie
|
||||
können es jederzeit selbst erstellen, um sicherzugehen, dass es
|
||||
vollständig sicher ist.
|
||||
|
||||
[screenshots]
|
||||
header = Bildschirmfotos
|
||||
|
||||
+39
-23
@@ -19,28 +19,37 @@ header = KolibriOS moved to Git!
|
||||
text = Check our new developers-friendly infrastructure
|
||||
|
||||
[article]
|
||||
p1[0] = is a tiny yet incredibly powerful and fast operating system for x86-compatible PCs. It requires only a few megabytes of disk space, an i586 processor, and 12 MB of RAM to run. Despite its small size, it includes a rich set of applications such as a text editor, image viewer, graphic editor, web browser, and over 30 exciting games. It offers full support for FAT12/16/32 file systems, read-only access to NTFS, exFAT, ISO9660, and Ext2/3/4, and
|
||||
p1[1] = drivers
|
||||
p1[2] = for popular sound, network, and graphics cards.
|
||||
p1 = {kolibrios} is a tiny yet incredibly powerful and fast operating system for
|
||||
x86-compatible PCs. It requires only a few megabytes of disk space, an i586
|
||||
processor, and 12 MB of RAM to run. Despite its small size, it includes a
|
||||
rich set of applications such as a text editor, image viewer, graphic
|
||||
editor, web browser, and over 30 exciting games. It offers full support for
|
||||
FAT12/16/32 file systems, read-only access to NTFS, exFAT, ISO9660, and
|
||||
Ext2/3/4, and an extensive set of {drivers} for popular sound, network, and
|
||||
graphics cards.
|
||||
drivers = drivers
|
||||
|
||||
p2[0] = Have you ever dreamed of a system that boots in less than few seconds from power-on to working GUI? About applications that start instantly, immediately after clicking an icon, without annoying hourglass pointers? This speed is achieved since the core parts of
|
||||
p2[1] = (kernel and drivers) are written entirely in
|
||||
p2[11] = assembly language
|
||||
p2[2] = Try
|
||||
p2[3] = and compare it with such heavyweights as Windows and Linux.
|
||||
p2 = Have you ever dreamed of a system that boots in less than few seconds from
|
||||
power-on to working GUI? About applications that start instantly,
|
||||
immediately after clicking an icon, without annoying hourglass pointers?
|
||||
This speed is achieved since the core parts of {kolibrios} (kernel and
|
||||
drivers) are written entirely in {fasm} assembly language. Try {kolibrios}
|
||||
and compare it with such heavyweights as Windows and Linux.
|
||||
|
||||
p3[0] = has forked off from MenuetOS in 2004, and is run under independent development since then. Your
|
||||
p3[1] = feedback
|
||||
p3[2] = is very much appreciated, and your
|
||||
p3[3] = help
|
||||
p3[4] = is even more welcome.
|
||||
p3 = {kolibrios} has forked off from MenuetOS in 2004, and is run under
|
||||
independent development since then. Your {feedback} is very much
|
||||
appreciated, and your {help} is even more welcome.
|
||||
feedback = feedback
|
||||
help = help
|
||||
|
||||
p_subscription[0] = We hope you will enjoy it!
|
||||
p_subscription[1] = KolibriOS Team
|
||||
p_subscription = We hope you will enjoy it!
|
||||
|
||||
[downloads]
|
||||
header = Downloads
|
||||
|
||||
version = Version:
|
||||
date = Build date:
|
||||
|
||||
img-descr = Floppy disk image
|
||||
iso-descr = LiveCD image
|
||||
distr-descr = Universal Flash/Multi-boot image
|
||||
@@ -52,16 +61,23 @@ 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 save changes made in KolibriOS.\n\
|
||||
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 the system on new computers and laptops.
|
||||
Hybrid image includes support for UEFI technology, which is used to boot\
|
||||
the system on new computers and laptops.
|
||||
|
||||
download_description[0] = On this page you can download the nightly builds distribution, which means
|
||||
that they always contain the most recent changes in the system and can,
|
||||
therefore, be unstable. All files are compressed with
|
||||
download_description[1] = is distributed under
|
||||
download_description[2] = license, its source code is available on our
|
||||
download_description[3] = Git server
|
||||
download_description = On this page you can download the nightly builds
|
||||
distribution, which means that they always contain the most recent changes
|
||||
in the system and can, therefore, be unstable. All files are compressed with
|
||||
{zip}. {kolibrios} is distributed under {gpl} license, its source code is
|
||||
available on our {git}.
|
||||
git-server = Git server
|
||||
|
||||
download_warn = Occasionally, some antivirus software may incorrectly flag the
|
||||
{kolibrios} image as a threat. This is a false positive. {kolibrios} is
|
||||
fully open source, and you can always build it yourself to be sure that
|
||||
it is completely safe.
|
||||
|
||||
[screenshots]
|
||||
header = Screenshots
|
||||
|
||||
+42
-23
@@ -1,5 +1,5 @@
|
||||
[title]
|
||||
language = Spanish
|
||||
language = Español
|
||||
index = KolibriOS
|
||||
download = KolibriOS - Descargar
|
||||
|
||||
@@ -19,27 +19,39 @@ header = ¡KolibriOS se ha trasladado a Git!
|
||||
text = Mira nuestra nueva infraestructura amigable para desarrolladores
|
||||
|
||||
[article]
|
||||
p1[0] = es un sistema operativo diminuto, pero increíblemente potente y rápido para PCs compatibles con x86. Solo necesita unos pocos megabytes de espacio en disco, un procesador i586 y 12 MB de memoria RAM. A pesar de su tamaño reducido, incluye un conjunto completo de aplicaciones como un editor de texto, visor de imágenes, editor gráfico, navegador web y más de 30 juegos emocionantes. Ofrece soporte completo para los sistemas de archivos FAT12/16/32, acceso de solo lectura a NTFS, exFAT, ISO9660 y Ext2/3/4, y dispone de un extenso conjunto de
|
||||
p1[1] = controladores
|
||||
p1[2] = para populares tarjetas de sonido, red y gráficas.
|
||||
p1 = {kolibrios} es un sistema operativo diminuto, pero increíblemente potente y
|
||||
rápido para PCs compatibles con x86. Solo necesita unos pocos megabytes de
|
||||
espacio en disco, un procesador i586 y 12 MB de memoria RAM. A pesar de su
|
||||
tamaño reducido, incluye un conjunto completo de aplicaciones como un editor
|
||||
de texto, visor de imágenes, editor gráfico, navegador web y más de 30
|
||||
juegos emocionantes. Ofrece soporte completo para los sistemas de archivos
|
||||
FAT12/16/32, acceso de solo lectura a NTFS, exFAT, ISO9660 y Ext2/3/4, y
|
||||
dispone de un extenso conjunto de {drivers} para populares tarjetas de
|
||||
sonido, red y gráficas.
|
||||
drivers = controladores
|
||||
|
||||
p2[0] = ¿Alguna vez has soñado con un sistema que arranca en menos de unos segundos, desde el encendido hasta una GUI operativa? ¿Con aplicaciones que se inician al instante, inmediatamente después de hacer clic en un icono, sin esos molestos punteros de reloj de arena? Esta velocidad se logra porque las partes fundamentales de
|
||||
p2[1] = (núcleo y controladores) están escritas completamente en lenguaje ensamblador
|
||||
p2[2] = Prueba
|
||||
p2[3] = y compáralo con pesos pesados como Windows y Linux.
|
||||
p2 = ¿Alguna vez has soñado con un sistema que arranca en menos de unos
|
||||
segundos, desde el encendido hasta una GUI operativa? ¿Con aplicaciones que
|
||||
se inician al instante, inmediatamente después de hacer clic en un icono,
|
||||
sin esos molestos punteros de reloj de arena? Esta velocidad se logra porque
|
||||
las partes fundamentales de {kolibrios} (núcleo y controladores) están
|
||||
escritas completamente en lenguaje ensamblador {fasm}. Prueba {kolibrios} y
|
||||
compáralo con pesos pesados como Windows y Linux.
|
||||
|
||||
p3[0] = separó de MenuetOS en 2004 y ha estado en desarrollo independiente desde entonces. Se agradece enormemente tu
|
||||
p3[1] = retroalimentación
|
||||
p3[2] = , y tu
|
||||
p3[3] = ayuda
|
||||
p3[4] = es aún más bienvenida.
|
||||
p3 = {kolibrios} separó de MenuetOS en 2004 y ha estado en desarrollo
|
||||
independiente desde entonces. Se agradece enormemente tu {feedback}, y tu
|
||||
{help} es aún más bienvenida.
|
||||
feedback = retroalimentación
|
||||
help = ayuda
|
||||
|
||||
p_subscription[0] = ¡Esperamos que lo disfrutes!
|
||||
p_subscription[1] = Equipo KolibriOS
|
||||
p_subscription = ¡Esperamos que lo disfrutes!
|
||||
|
||||
[downloads]
|
||||
header = Descargas
|
||||
|
||||
version = Versión:
|
||||
date = Fecha de compilación:
|
||||
|
||||
img-descr = Imagen de disquete
|
||||
iso-descr = Imagen LiveCD
|
||||
distr-descr = Imagen Flash Universal/Multi-boot
|
||||
@@ -51,16 +63,23 @@ 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 puedes guardar los cambios realizados en KolibriOS.\n\
|
||||
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 arrancar el sistema en los nuevos ordenadores y portátiles.
|
||||
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[0] = En esta página puedes descargar la distribución de compilaciones nocturnas,
|
||||
lo que significa que siempre contienen los cambios más recientes en el sistema y,
|
||||
por lo tanto, pueden ser inestables. Todos los archivos están comprimidos con
|
||||
download_description[1] = se distribuye bajo la licencia
|
||||
download_description[2] = y su código fuente está disponible en nuestro
|
||||
download_description[3] = servidor Git
|
||||
download_description = En esta página puedes descargar la distribución de
|
||||
compilaciones nocturnas, lo que significa que siempre contienen los cambios
|
||||
más recientes en el sistema y, por lo tanto, pueden ser inestables. Todos
|
||||
los archivos están comprimidos con {zip}. {kolibrios} se distribuye bajo la
|
||||
licencia {gpl} y su código fuente está disponible en nuestro {git}.
|
||||
git-server = servidor Git
|
||||
|
||||
download_warn = Ocasionalmente, algunos programas antivirus pueden marcar
|
||||
incorrectamente la imagen de {kolibrios} como una amenaza. Esto es un
|
||||
falso positivo. {kolibrios} es completamente de código abierto y siempre
|
||||
puedes compilarlo tú mismo para asegurarte de que es totalmente seguro.
|
||||
|
||||
[screenshots]
|
||||
header = Pantallas
|
||||
|
||||
+43
-22
@@ -19,27 +19,39 @@ header = KolibriOS a déménagé sur Git !
|
||||
text = Découvrez notre nouvelle infrastructure conviviale pour les développeurs
|
||||
|
||||
[article]
|
||||
p1[0] = est un système d`exploitation minuscule, mais incroyablement puissant et rapide, pour les PC compatibles x86. Il nécessite seulement quelques mégaoctets d`espace disque, un processeur i586 et 12 Mo de RAM. Malgré sa petite taille, il comprend une large gamme d`applications telles qu`un éditeur de texte, un visionneur d`images, un éditeur graphique, un navigateur web, et plus de 30 jeux captivants. Il prend en charge pleinement les systèmes de fichiers FAT12/16/32, permet la lecture seule de NTFS, exFAT, ISO9660 et Ext2/3/4, et offre un vaste ensemble de
|
||||
p1[1] = pilotes
|
||||
p1[2] = pour les cartes son, réseau et graphiques populaires.
|
||||
p1 = {kolibrios} est un système d`exploitation minuscule, mais incroyablement
|
||||
puissant et rapide, pour les PC compatibles x86. Il nécessite seulement
|
||||
quelques mégaoctets d`espace disque, un processeur i586 et 12 Mo de RAM.
|
||||
Malgré sa petite taille, il comprend une large gamme d`applications telles
|
||||
qu`un éditeur de texte, un visionneur d`images, un éditeur graphique, un
|
||||
navigateur web, et plus de 30 jeux captivants. Il prend en charge pleinement
|
||||
les systèmes de fichiers FAT12/16/32, permet la lecture seule de NTFS,
|
||||
exFAT, ISO9660 et Ext2/3/4, et offre un vaste ensemble de {drivers} pour les
|
||||
cartes son, réseau et graphiques populaires.
|
||||
drivers = pilotes
|
||||
|
||||
p2[0] = Avez-vous déjà rêvé d`un système qui démarre en quelques secondes, de la mise sous tension jusqu`à une interface graphique opérationnelle ? Des applications qui se lancent instantanément, immédiatement après avoir cliqué sur une icône, sans ces pointeurs sabliers agaçants ? Cette rapidité est obtenue car les parties essentielles de
|
||||
p2[1] = (noyau et pilotes) sont entièrement écrites en langage assembleur
|
||||
p2[2] = Essayez
|
||||
p2[3] = et comparez-le à des poids lourds tels que Windows et Linux.
|
||||
p2 = Avez-vous déjà rêvé d`un système qui démarre en quelques secondes, de la
|
||||
mise sous tension jusqu`à une interface graphique opérationnelle ? Des
|
||||
applications qui se lancent instantanément, immédiatement après avoir cliqué
|
||||
sur une icône, sans ces pointeurs sabliers agaçants ? Cette rapidité est
|
||||
obtenue car les parties essentielles de {kolibrios} (noyau et pilotes) sont
|
||||
entièrement écrites en langage assembleur {fasm}. Essayez {kolibrios} et
|
||||
comparez-le à des poids lourds tels que Windows et Linux.
|
||||
|
||||
p3[0] = s`est séparé de MenuetOS en 2004 et est développé de manière indépendante depuis lors. Vos
|
||||
p3[1] = retours
|
||||
p3[2] = sont grandement appréciés, et votre
|
||||
p3[3] = aide
|
||||
p3[4] = est encore plus bienvenue.
|
||||
p3 = {kolibrios} s`est séparé de MenuetOS en 2004 et est développé de manière
|
||||
indépendante depuis lors. Vos {feedback} sont grandement appréciés, et votre
|
||||
{help} est encore plus bienvenue.
|
||||
feedback = retours
|
||||
help = aide
|
||||
|
||||
p_subscription[0] = Nous espérons que vous l`apprécierez !
|
||||
p_subscription[1] = L`équipe de KolibriOS
|
||||
p_subscription = Nous espérons que vous l`apprécierez !
|
||||
|
||||
[downloads]
|
||||
header = Téléchargements
|
||||
|
||||
version = Version :
|
||||
date = Date de compilation :
|
||||
|
||||
img-descr = Image de la disquette
|
||||
iso-descr = Image du LiveCD
|
||||
distr-descr = Image Universal Flash/Multi-boot
|
||||
@@ -50,15 +62,24 @@ 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 pouvez sauvegarder les changements effectués dans KolibriOS.\n\
|
||||
\n\
|
||||
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.
|
||||
\n\
|
||||
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\
|
||||
pour démarrer le système sur les nouveaux ordinateurs et portables.
|
||||
|
||||
download_description[0] = Sur cette page, vous pouvez télécharger la distribution des builds nocturnes, ce qui signifie qu`ils contiennent toujours les modifications les plus récentes du système et peuvent donc être instables. Tous les fichiers sont compressés avec
|
||||
download_description[1] = est distribué sous licence
|
||||
download_description[2] = et son code source est disponible sur notre
|
||||
download_description[3] = serveur Git
|
||||
download_description = Sur cette page, vous pouvez télécharger la distribution
|
||||
des builds nocturnes, ce qui signifie qu`ils contiennent toujours les
|
||||
modifications les plus récentes du système et peuvent donc être instables.
|
||||
Tous les fichiers sont compressés avec {zip}. {kolibrios} est distribué sous
|
||||
licence {gpl} et son code source est disponible sur notre {git}.
|
||||
git-server = serveur Git
|
||||
|
||||
download_warn = Il arrive que certains antivirus signalent à tort l’image
|
||||
{kolibrios} comme une menace. Il s’agit d’un faux positif. {kolibrios} est
|
||||
entièrement open source et vous pouvez toujours le compiler vous-même pour
|
||||
vous assurer qu’il est totalement sûr.
|
||||
|
||||
[screenshots]
|
||||
header = Captures d`écran
|
||||
|
||||
+43
-23
@@ -16,30 +16,41 @@ git = Git
|
||||
|
||||
[git]
|
||||
header = KolibriOS si è spostato su Git!
|
||||
text = Dai un`occhiata alla nostra nuova infrastruttura pensata per gli sviluppatori
|
||||
text = Dai un`occhiata alla nostra nuova infrastruttura pensata per gli
|
||||
sviluppatori
|
||||
|
||||
[article]
|
||||
p1[0] = è un sistema operativo minuscolo, ma incredibilmente potente e veloce, per PC compatibili con x86. Per funzionare richiede solo pochi megabyte di spazio su disco, un processore i586 e 12 MB di RAM. Nonostante le dimensioni ridotte, include un ricco set di applicazioni come editor di testo, visualizzatore di immagini, editor grafico, browser web e oltre 30 giochi entusiasmanti. Supporta completamente i file system FAT12/16/32, e permette la lettura di NTFS, exFAT, ISO9660 ed Ext2/3/4, oltre a offrire un ampio set di
|
||||
p1[1] = driver
|
||||
p1[2] = per schede audio, di rete e grafiche più diffuse.
|
||||
p1 = {kolibrios} è un sistema operativo minuscolo, ma incredibilmente potente e
|
||||
veloce, per PC compatibili con x86. Per funzionare richiede solo pochi
|
||||
megabyte di spazio su disco, un processore i586 e 12 MB di RAM. Nonostante
|
||||
le dimensioni ridotte, include un ricco set di applicazioni come editor di
|
||||
testo, visualizzatore di immagini, editor grafico, browser web e oltre 30
|
||||
giochi entusiasmanti. Supporta completamente i file system FAT12/16/32, e
|
||||
permette la lettura di NTFS, exFAT, ISO9660 ed Ext2/3/4, oltre a offrire un
|
||||
ampio set di {drivers} per schede audio, di rete e grafiche più diffuse.
|
||||
drivers = driver
|
||||
|
||||
p2[0] = Hai mai sognato un sistema che si avvia in pochi secondi, dall`accensione fino a una GUI funzionante? Applicazioni che partono immediatamente, subito dopo aver cliccato su un`icona, senza quei fastidiosi cursori a clessidra? Questa velocità si ottiene poiché le parti fondamentali di
|
||||
p2[1] = (kernel e driver) sono scritte interamente in linguaggio assembly
|
||||
p2[2] = Prova
|
||||
p2[3] = e confrontalo con colossi come Windows e Linux.
|
||||
p2 = Hai mai sognato un sistema che si avvia in pochi secondi, dall`accensione
|
||||
fino a una GUI funzionante? Applicazioni che partono immediatamente, subito
|
||||
dopo aver cliccato su un`icona, senza quei fastidiosi cursori a clessidra?
|
||||
Questa velocità si ottiene poiché le parti fondamentali di {kolibrios}
|
||||
(kernel e driver) sono scritte interamente in linguaggio assembly {fasm}.
|
||||
Prova {kolibrios} e confrontalo con colossi come Windows e Linux.
|
||||
|
||||
p3[0] = si è staccato da MenuetOS nel 2004 ed è in sviluppo indipendente da allora. Il tuo
|
||||
p3[1] = recensioni
|
||||
p3[2] = è molto apprezzato, e il tuo
|
||||
p3[3] = aiuto
|
||||
p3[4] = è ancora più benvenuto.
|
||||
p3 = {kolibrios} si è staccato da MenuetOS nel 2004 ed è in sviluppo
|
||||
indipendente da allora. Il tuo {feedback} è molto apprezzato, e il tuo
|
||||
{help} è ancora più benvenuto.
|
||||
feedback = recensioni
|
||||
help = aiuto
|
||||
|
||||
p_subscription[0] = Ci auguriamo che vi piaccia!
|
||||
p_subscription[1] = Squadra KolibriOS
|
||||
p_subscription = Ci auguriamo che vi piaccia!
|
||||
|
||||
[downloads]
|
||||
header = Scaricamento
|
||||
|
||||
version = Versione:
|
||||
date = Data di compilazione:
|
||||
|
||||
img-descr = Immagine su dischetto
|
||||
iso-descr = Immagine LiveCD
|
||||
distr-descr = Immagine universale Flash/MultiBoot
|
||||
@@ -50,15 +61,24 @@ 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 è possibile salvare le modifiche apportate in KolibriOS.\n\
|
||||
\n\
|
||||
L`immagine ibrida include il supporto per la tecnologia UEFI, utilizzata per avviare il sistema su nuovi computer e portatili.
|
||||
\n\
|
||||
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\
|
||||
per avviare il sistema su nuovi computer e portatili.
|
||||
|
||||
download_description[0] = In questa pagina puoi scaricare la distribuzione delle build notturne, il che significa che contengono sempre le modifiche più recenti del sistema e, pertanto, possono essere instabili. Tutti i file sono compressi con
|
||||
download_description[1] = viene distribuito sotto licenza
|
||||
download_description[2] = e il suo codice sorgente è disponibile sul nostro
|
||||
download_description[3] = server Git
|
||||
download_description = In questa pagina puoi scaricare la distribuzione delle
|
||||
build notturne, il che significa che contengono sempre le modifiche più
|
||||
recenti del sistema e, pertanto, possono essere instabili. Tutti i file sono
|
||||
compressi con {zip}. {kolibrios} viene distribuito sotto licenza {gpl} e il
|
||||
suo codice sorgente è disponibile sul nostro {git}.
|
||||
git-server = server Git
|
||||
|
||||
download_warn = Occasionalmente, alcuni software antivirus potrebbero segnalare
|
||||
erroneamente l’immagine di {kolibrios} come una minaccia. Si tratta di un
|
||||
falso positivo. {kolibrios} è completamente open source e puoi sempre
|
||||
compilarlo tu stesso per essere certo che è del tutto sicuro.
|
||||
|
||||
[screenshots]
|
||||
header = Captures d`écran
|
||||
|
||||
+43
-23
@@ -19,28 +19,39 @@ header = KolibriOS is verhuisd naar Git!
|
||||
text = Bekijk onze nieuwe, ontwikkelaarsvriendelijke infrastructuur
|
||||
|
||||
[article]
|
||||
p1[0] = is een klein maar ongelooflijk krachtig en snel besturingssysteem voor x86-compatibele PC`s. Het heeft slechts enkele megabytes aan schijfruimte, een i586-processor en 12 MB RAM. Maar beschikt over een rijk scala aan toepassingen, waaronder een tekstverwerker, afbeeldingsviewer, grafische editor, webbrowser en meer dan 30 spannende games. Het biedt volledige ondersteuning voor de bestandssystemen FAT12/16/32, en heeft ook leesondersteuning voor NTFS, exFAT, ISO9660 en Ext2/3/4, en beschikt over een uitgebreide set van
|
||||
p1[1] = drivers
|
||||
p1[2] = voor populaire geluids-, netwerk- en grafische kaarten.
|
||||
p1 = {kolibrios} is een klein maar ongelooflijk krachtig en snel
|
||||
besturingssysteem voor x86-compatibele PC`s. Het heeft slechts enkele
|
||||
megabytes aan schijfruimte, een i586-processor en 12 MB RAM. Maar beschikt
|
||||
over een rijk scala aan toepassingen, waaronder een tekstverwerker,
|
||||
afbeeldingsviewer, grafische editor, webbrowser en meer dan 30 spannende
|
||||
games. Het biedt volledige ondersteuning voor de bestandssystemen
|
||||
FAT12/16/32, en heeft ook leesondersteuning voor NTFS, exFAT, ISO9660 en
|
||||
Ext2/3/4, en beschikt over een uitgebreide set van {drivers} voor populaire
|
||||
geluids-, netwerk- en grafische kaarten.
|
||||
drivers = drivers
|
||||
|
||||
p2[0] = Heb je ooit gedroomd van een systeem dat opstart in minder dan een paar seconden, van het aanzetten tot een werkende GUI? Toepassingen die direct starten, meteen na het klikken op een icoon, zonder die vervelende zandlopers? Deze snelheid wordt bereikt omdat de kernonderdelen van
|
||||
p2[1] = (kernel en drivers) volledig in de
|
||||
p2[11] = assemblytaal geschreven zijn!
|
||||
p2[2] = Probeer
|
||||
p2[3] = en vergelijk het met zwaargewichten zoals Windows en Linux.
|
||||
p2 = Heb je ooit gedroomd van een systeem dat opstart in minder dan een paar
|
||||
seconden, van het aanzetten tot een werkende GUI? Toepassingen die direct
|
||||
starten, meteen na het klikken op een icoon, zonder die vervelende
|
||||
zandlopers? Deze snelheid wordt bereikt omdat de kernonderdelen van
|
||||
{kolibrios} (kernel en drivers) volledig in de {fasm} assemblytaal
|
||||
geschreven zijn! Probeer {kolibrios} en vergelijk het met zwaargewichten
|
||||
zoals Windows en Linux.
|
||||
|
||||
p3[0] = is in 2004 afgesplitst van MenuetOS en wordt sindsdien onafhankelijk ontwikkeld. Jouw
|
||||
p3[1] = recensies
|
||||
p3[2] = wordt zeer gewaardeerd, en jouw
|
||||
p3[3] = hulp
|
||||
p3[4] = is nog meer welkom.
|
||||
p3 = {kolibrios} is in 2004 afgesplitst van MenuetOS en wordt sindsdien
|
||||
onafhankelijk ontwikkeld. Jouw {feedback} wordt zeer gewaardeerd, en jouw
|
||||
{help} is nog meer welkom.
|
||||
feedback = recensies
|
||||
help = hulp
|
||||
|
||||
p_subscription[0] = We hopen dat je ervan zult genieten!
|
||||
p_subscription[1] = KolibriOS-Team
|
||||
p_subscription = We hopen dat je ervan zult genieten!
|
||||
|
||||
[downloads]
|
||||
header = Downloads
|
||||
|
||||
version = Versie:
|
||||
date = Builddatum:
|
||||
|
||||
img-descr = Afbeelding op diskette
|
||||
iso-descr = LiveCD-afbeelding
|
||||
distr-descr = Universele Flash/Multi-boot image
|
||||
@@ -51,15 +62,24 @@ 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 wijzigingen die je in <b>KolibriOS</b> hebt aangebracht, kunt opslaan.\n\
|
||||
\n\
|
||||
Hybride image bevat ondersteuning voor UEFI-technologie, die wordt gebruikt om het systeem op te starten op nieuwe computers en laptops.
|
||||
\n\
|
||||
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\
|
||||
om het systeem op te starten op nieuwe computers en laptops.
|
||||
|
||||
download_description[0] = Op deze pagina kunt u de nightly builds-distributie downloaden, wat betekent dat ze altijd de meest recente wijzigingen in het systeem bevatten en daarom onstabiel kunnen zijn. Alle bestanden zijn gecomprimeerd met
|
||||
download_description[1] = wordt verspreid onder de
|
||||
download_description[2] = -licentie, en de broncode is beschikbaar op onze
|
||||
download_description[3] = Git-server
|
||||
download_description = Op deze pagina kunt u de nightly builds-distributie
|
||||
downloaden, wat betekent dat ze altijd de meest recente wijzigingen in het
|
||||
systeem bevatten en daarom onstabiel kunnen zijn. Alle bestanden zijn
|
||||
gecomprimeerd met {zip} wordt verspreid onder de {gpl}-licentie, en de
|
||||
broncode is beschikbaar op onze {git}.
|
||||
git-server = Git-server
|
||||
|
||||
download_warn = Af en toe kunnen sommige antivirusprogramma’s het
|
||||
{kolibrios}-image ten onrechte als een bedreiging aanmerken.
|
||||
Dit is een vals-positief. {kolibrios} is volledig open-source en je kunt
|
||||
het altijd zelf bouwen om er zeker van te zijn dat het volledig veilig is.
|
||||
|
||||
[screenshots]
|
||||
header = Schermafbeeldingen
|
||||
|
||||
+41
-22
@@ -19,27 +19,39 @@ header = КолибриОС перешла на Git!
|
||||
text = Ознакомьтесь с нашей новой, удобной для разработчиков инфраструктурой
|
||||
|
||||
[article]
|
||||
p1[0] = — это крошечная, но невероятно мощная и быстрая операционная система для x86-совместимых ПК. Для её работы достаточно всего нескольких мегабайт места на диске, процессора i586 и 12 МБ оперативной памяти. При этом она содержит богатый набор приложений, таких как текстовый редактор, просмотрщик изображений, графический редактор, веб-браузер и более 30 захватывающих игр.Имеется полная поддержка файловых систем FAT12/16/32, только на чтение доступны NTFS, exFAT, ISO9660 и Ext2/3/4, а также присутсвтвует обширный набор
|
||||
p1[1] = драйверов
|
||||
p1[2] = для популярных звуковых, сетевых и графических карт.
|
||||
p1 = {kolibrios} — это крошечная, но невероятно мощная и быстрая операционная
|
||||
система для x86-совместимых ПК. Для её работы достаточно всего нескольких
|
||||
мегабайт места на диске, процессора i586 и 12 МБ оперативной памяти. При
|
||||
этом она содержит богатый набор приложений, таких как текстовый редактор,
|
||||
просмотрщик изображений, графический редактор, веб-браузер и более 30
|
||||
захватывающих игр. Имеется полная поддержка файловых систем FAT12/16/32,
|
||||
только на чтение доступны NTFS, exFAT, ISO9660 и Ext2/3/4, а также
|
||||
присутсвтвует обширный набор {drivers} для популярных звуковых, сетевых и
|
||||
графических карт.
|
||||
drivers = драйверов
|
||||
|
||||
p2[0] = Вы когда-нибудь мечтали о системе, которая загружается менее чем за несколько секунд с момента включения до появления работающего графического интерфейса? О приложениях, которые запускаются мгновенно, сразу после нажатия на ярлык, без надоедливых индикаторов загрузки? Такая скорость достигается благодаря тому, что основные части
|
||||
p2[1] = (ядро и драйверы) полностью написаны на ассемблере
|
||||
p2[2] = Попробуйте
|
||||
p2[3] = и сравните её с такими тяжеловесами, как Windows и Linux.
|
||||
p2 = Вы когда-нибудь мечтали о системе, которая загружается менее чем за
|
||||
несколько секунд с момента включения до появления работающего графического
|
||||
интерфейса? О приложениях, которые запускаются мгновенно, сразу после
|
||||
нажатия на ярлык, без надоедливых индикаторов загрузки? Такая скорость
|
||||
достигается благодаря тому, что основные части {kolibrios} (ядро и
|
||||
драйверы) полностью написаны на ассемблере {fasm}. Попробуйте
|
||||
{kolibrios} и сравните её с такими тяжеловесами, как Windows и Linux.
|
||||
|
||||
p3[0] = отделилась от MenuetOS в 2004 году и с тех пор развивается независимым международным сообществом. Ваши
|
||||
p3[1] = отзывы
|
||||
p3[2] = очень ценится, а ваша
|
||||
p3[3] = помощь
|
||||
p3[4] = ценится ещё больше.
|
||||
p3 = {kolibrios} отделилась от MenuetOS в 2004 году и с тех пор развивается
|
||||
независимым международным сообществом. Ваши {feedback} очень ценятся, а ваша
|
||||
{help} ценится ещё больше.
|
||||
feedback = отзывы
|
||||
help = помощь
|
||||
|
||||
p_subscription[0] = Надеемся, вам понравится!
|
||||
p_subscription[1] = Команда КолибриОС
|
||||
p_subscription = Надеемся, вам понравится!
|
||||
|
||||
[downloads]
|
||||
header = Скачать
|
||||
|
||||
version = Версия:
|
||||
date = Дата сборки:
|
||||
|
||||
img-descr = Образ дискеты
|
||||
iso-descr = Образ LiveCD
|
||||
distr-descr = Универсальный образ Flash/Multi-boot
|
||||
@@ -51,16 +63,23 @@ all_rev = Все ночные сборки
|
||||
download_choice = Какой выбрать?
|
||||
download_help = Для новичка лучше всего подойдет LiveCD.\n \
|
||||
\n\
|
||||
По сравнению с LiveCD преимущество универсального образа в том, что вы можете сохранить изменения, сделанные в КолибриОС.\n\
|
||||
По сравнению с LiveCD преимущество универсального образа в том, что вы\
|
||||
можете сохранить изменения, сделанные в КолибриОС.\n\
|
||||
\n\
|
||||
Гибридный образ включает поддержку технологии UEFI, которая используется для загрузки системы на новых компьютерах и ноутбуках.
|
||||
Гибридный образ включает поддержку технологии UEFI, которая используется\
|
||||
для загрузки системы на новых компьютерах и ноутбуках.
|
||||
|
||||
download_description[0] = На этой странице вы можете скачать ночные сборки дистрибутива.
|
||||
Это означает, что они всегда содержат последние изменения в системе и,
|
||||
следовательно, могут быть нестабильными. Все файлы сжаты с помощью
|
||||
download_description[1] = распространяется под лицензией
|
||||
download_description[2] = а исходный код доступен на нашем
|
||||
download_description[3] = Git-сервере
|
||||
download_description = На этой странице вы можете скачать ночные сборки
|
||||
дистрибутива. Это означает, что они всегда содержат последние изменения в
|
||||
системе и, следовательно, могут быть нестабильными. Все файлы сжаты с
|
||||
помощью {zip}. {kolibrios} распространяется под лицензией {gpl}, а
|
||||
исходный код доступен на нашем {git}.
|
||||
git-server = Git-сервере
|
||||
|
||||
download_warn = Иногда антивирусы могут по ошибке помечать образ {kolibrios}
|
||||
как угрозу. Это ложное срабатывание. {kolibrios} имеет полностью открытый
|
||||
исходный код, и вы всегда можете собрать её самостоятельно, чтобы
|
||||
убедиться, что она абсолютно безопасна.
|
||||
|
||||
[screenshots]
|
||||
header = Скриншоты
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
import re
|
||||
import threading
|
||||
import time
|
||||
|
||||
|
||||
STATUS_URL = "https://builds.kolibrios.org/status.html"
|
||||
STATUS_SEC = 300 # refetch each 5 minutes
|
||||
|
||||
autobuild_date = "DD.MM.YYYY"
|
||||
autobuild_vers = "0.0.0.0+0000-0000000"
|
||||
|
||||
_started = False
|
||||
_updater_lock = threading.Lock()
|
||||
|
||||
|
||||
def _refresh_build_date_once():
|
||||
global autobuild_date, autobuild_vers
|
||||
try:
|
||||
from urllib.request import Request, urlopen
|
||||
|
||||
req = Request(
|
||||
STATUS_URL,
|
||||
headers={
|
||||
"User-Agent": "Mozilla/5.0",
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
||||
},
|
||||
)
|
||||
with urlopen(req, timeout=10) as r:
|
||||
html = r.read().decode(
|
||||
r.headers.get_content_charset() or "utf-8", "replace"
|
||||
)
|
||||
|
||||
rows = re.findall(r"(<tr\b[^>]*>.*?</tr>)", html, flags=re.I | re.S)
|
||||
if not rows:
|
||||
return
|
||||
|
||||
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 ""
|
||||
|
||||
text = re.sub(r"<[^>]+>", " ", row)
|
||||
|
||||
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 = f"{mds.group(1)}.{mds.group(2)}.{mds.group(3)}"
|
||||
else:
|
||||
return
|
||||
else:
|
||||
y, mo, d = mts.groups()
|
||||
autobuild_date = f"{d}.{mo}.{y}"
|
||||
|
||||
if last_commit_ver:
|
||||
autobuild_vers = last_commit_ver
|
||||
return
|
||||
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def _updater_loop():
|
||||
while True:
|
||||
_refresh_build_date_once()
|
||||
time.sleep(STATUS_SEC)
|
||||
|
||||
|
||||
def ensure_started():
|
||||
global _started
|
||||
with _updater_lock:
|
||||
if _started:
|
||||
return
|
||||
threading.Thread(target=_updater_loop, daemon=True).start()
|
||||
_started = True
|
||||
|
||||
|
||||
_refresh_build_date_once()
|
||||
@@ -0,0 +1,23 @@
|
||||
from datetime import date
|
||||
|
||||
from flask import redirect, render_template, request, url_for
|
||||
from htmlmin import minify as minify_html
|
||||
|
||||
from modules import locales
|
||||
|
||||
|
||||
def get_best_lang():
|
||||
return request.accept_languages.best_match(locales.locales_code) or "en"
|
||||
|
||||
|
||||
def render_localized_template(lang, template_name):
|
||||
if lang not in locales.locales_code:
|
||||
return redirect(url_for("index", lang=get_best_lang()))
|
||||
|
||||
return minify_html(
|
||||
render_template(
|
||||
template_name,
|
||||
year=date.today().year,
|
||||
),
|
||||
remove_empty_space=True,
|
||||
)
|
||||
@@ -0,0 +1,51 @@
|
||||
from os import path, listdir
|
||||
from configparser import ConfigParser
|
||||
import threading
|
||||
|
||||
|
||||
translations = {}
|
||||
locales_name = {}
|
||||
locales_code = ()
|
||||
|
||||
_loaded = False
|
||||
_load_lock = threading.Lock()
|
||||
|
||||
|
||||
def load_all_locales():
|
||||
new_translations = {}
|
||||
locales_dir = "locales"
|
||||
|
||||
locales_code_default = ("en", "ru", "es")
|
||||
locales_code_extra = []
|
||||
new_locales_code = ()
|
||||
|
||||
for filename in listdir(locales_dir):
|
||||
if filename.endswith(".ini"):
|
||||
cp = ConfigParser()
|
||||
lang = path.splitext(filename)[0]
|
||||
with open(path.join(locales_dir, filename), encoding="utf-8") as f:
|
||||
cp.read_file(f)
|
||||
|
||||
if lang not in locales_code_default:
|
||||
locales_code_extra.append(lang)
|
||||
|
||||
new_translations[lang] = {
|
||||
section: dict(cp[section]) for section in cp.sections()
|
||||
}
|
||||
|
||||
new_locales_code = locales_code_default + tuple(sorted(locales_code_extra))
|
||||
new_locales_name = {
|
||||
locale_code: new_translations[locale_code]["title"]["language"]
|
||||
for locale_code in new_locales_code
|
||||
}
|
||||
|
||||
return new_translations, new_locales_name, new_locales_code
|
||||
|
||||
|
||||
def ensure_loaded():
|
||||
global translations, locales_name, locales_code, _loaded
|
||||
with _load_lock:
|
||||
if _loaded:
|
||||
return
|
||||
translations, locales_name, locales_code = load_all_locales()
|
||||
_loaded = True
|
||||
@@ -1 +1,10 @@
|
||||
blinker==1.9.0
|
||||
click==8.1.8
|
||||
colorama==0.4.6
|
||||
Flask==3.1.0
|
||||
htmlmin==0.1.12
|
||||
itsdangerous==2.2.0
|
||||
Jinja2==3.1.6
|
||||
libsass==0.23.0
|
||||
MarkupSafe==3.0.2
|
||||
Werkzeug==3.1.3
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
{ pkgs ? import <nixpkgs> {} }: let
|
||||
pypkgs = pkgs.python3Packages;
|
||||
in pkgs.mkShell {
|
||||
name = "kolibrios.org";
|
||||
|
||||
buildInputs = with pypkgs; [
|
||||
python
|
||||
virtualenv
|
||||
pkgs.nodePackages.sass
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
if [ ! -d "venv" ]; then
|
||||
python -m venv .venv
|
||||
fi
|
||||
|
||||
source .venv/bin/activate
|
||||
|
||||
if [ -f "requirements.txt" ]; then
|
||||
pip install -r requirements.txt
|
||||
fi
|
||||
'';
|
||||
|
||||
LD_LIBRARY_PATH = "${pkgs.stdenv.cc.cc.lib}/lib";
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 612 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 542 B |
+1
-1
@@ -68,7 +68,7 @@ function updateDots() {
|
||||
var dots = document.querySelectorAll("#dots .dot");
|
||||
dots.forEach(function(dot, index) {
|
||||
// index starts at 0 so add FIRST_IMG_ID to match your slide IDs
|
||||
dot.className = "dot" + ((index + FIRST_IMG_ID) === current ? " active" : "");
|
||||
dot.classList.toggle("active", (index + FIRST_IMG_ID) === current);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,465 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Source Sans Pro", "Open Sans", sans-serif;
|
||||
background: #e1e2e2 url(img/bg.png) repeat fixed 0 0;
|
||||
}
|
||||
|
||||
#menu {
|
||||
background: rgba(22, 22, 23, .8);
|
||||
color: #FFFFFF;
|
||||
cursor: default;
|
||||
line-height: 2em;
|
||||
padding: 0.5em 0;
|
||||
text-align: center;
|
||||
text-shadow: 2px 2px 2px #00000063;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 9000;
|
||||
}
|
||||
|
||||
#menu > * {
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
margin: 0 1em;
|
||||
text-decoration: none;
|
||||
transition: color 0.15s ease;
|
||||
}
|
||||
|
||||
#menu a:hover,
|
||||
#menu a.a-sel {
|
||||
color: #ffe36a;
|
||||
}
|
||||
|
||||
#menu img {
|
||||
filter: drop-shadow(2px 2px 2px #00000020);
|
||||
}
|
||||
|
||||
#lang-butt {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* LANG-DROPDOWN */
|
||||
|
||||
#lang-dropdown {
|
||||
position: fixed;
|
||||
z-index: 9100;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
}
|
||||
|
||||
#lang-dropdown::before {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
border: 11px solid #333C;
|
||||
border-left: 10px solid rgba(255, 255, 255, 0);
|
||||
border-right: 10px solid rgba(255, 255, 255, 0);
|
||||
border-top: 0px solid rgba(255, 255, 255, 0);
|
||||
top: -10px;
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
|
||||
#lang-dropdown > div {
|
||||
display: block;
|
||||
margin-left: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #333;
|
||||
box-shadow: 0 0 5px #000;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
|
||||
overflow: hidden;
|
||||
background: #333;
|
||||
background: #333E;
|
||||
backdrop-filter: saturate(180%) blur(6px);
|
||||
}
|
||||
|
||||
#lang-dropdown > div a {
|
||||
display: block;
|
||||
padding: 0 3em 0 1em;
|
||||
font-size: 90%;
|
||||
line-height: 2.5;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.07);
|
||||
text-decoration: none;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
#lang-dropdown > div a:hover {
|
||||
border-bottom: 1px solid #34312eff;
|
||||
border-top: 1px solid #4c4c4cff;
|
||||
background: #444;
|
||||
background: linear-gradient(328deg, #c20d2c7d, #3928c78a);
|
||||
}
|
||||
|
||||
#lang-dropdown > div a.a-sel {
|
||||
color: #888 !important;
|
||||
}
|
||||
|
||||
#lang-dropdown > div a.a-sel img {
|
||||
color: #888 !important;
|
||||
filter: brightness(0.5);
|
||||
}
|
||||
|
||||
#lang-dropdown > div a img {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
margin-top: -3px;
|
||||
width: 16px;
|
||||
height: 11px;
|
||||
filter: drop-shadow(1px 2px 2px #0003);
|
||||
}
|
||||
|
||||
#lang-dropdown>div a:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#lang-dropdown>div a:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* ARTICLE */
|
||||
|
||||
#article {
|
||||
background: rgba(254, 255, 255, 1);
|
||||
border: 1px solid #c0b9c491;
|
||||
border-radius: 4px;
|
||||
box-shadow: rgb(28 26 40 / 12%) 0px 4px 4px -2px;
|
||||
margin: 2em auto;
|
||||
max-width: 910px;
|
||||
padding: 2em;
|
||||
text-align: justify;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#banner {
|
||||
box-sizing: border-box;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 0 0 1px #00000020;
|
||||
transition: box-shadow 0.3s ease;
|
||||
display: block;
|
||||
margin: 0px 0px 1em;
|
||||
padding: 1.25em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#banner:hover {
|
||||
box-shadow: inset 0 0 0 4px #609A21AA;
|
||||
}
|
||||
|
||||
#banner td {
|
||||
text-align: center;
|
||||
vertical-align: center;
|
||||
}
|
||||
|
||||
#banner img {
|
||||
height: 7em;
|
||||
}
|
||||
|
||||
#banner h1 {
|
||||
margin-top: 0em;
|
||||
color: #609A21;
|
||||
font-size: 2.5em;
|
||||
margin: 0 0 16px;
|
||||
}
|
||||
|
||||
#banner p {
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
#banner .p-link {
|
||||
margin-top: 16px;
|
||||
color: #609A21;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#banner a {
|
||||
color: #609A21;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 125%;
|
||||
padding: 0;
|
||||
margin: 0 0 16px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1F1F1F;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.p-socials {
|
||||
text-align: center;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.p-socials a {
|
||||
margin: 1em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.p-socials br {
|
||||
margin: 0em 0em 1em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.p-socials img {
|
||||
height: 1em;
|
||||
margin-right: 0.5em;
|
||||
margin-bottom: -0.15em;
|
||||
}
|
||||
|
||||
.p-subscription
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* DOWNLOADS */
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
table a {
|
||||
padding-bottom: 1px;
|
||||
border-bottom: 1px solid;
|
||||
text-decoration: none;
|
||||
color: #0472D8
|
||||
}
|
||||
|
||||
table a:hover
|
||||
{
|
||||
color: #0053B9;
|
||||
}
|
||||
|
||||
tr {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.tr-margin-bot>td{
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
.tr-margin-top>td{
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.td-image {
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
.td-description {
|
||||
text-align: left;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.td-description .beta {
|
||||
border: 1px solid grey;
|
||||
color: grey;
|
||||
font-size: 0.75em;
|
||||
font-weight: bold;
|
||||
border-radius: 0.25em;
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
.td-date {
|
||||
text-align: right;
|
||||
padding-right: 2em;
|
||||
}
|
||||
|
||||
.td-languages {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.td-languages a + a {
|
||||
display: inline;
|
||||
margin-left: 1em;
|
||||
margin-top: 0em;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.help-button {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
background: #FF9800;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 1px rgba(254,181,94,0.9), inset 0 -2px rgba(0,0,0,0.04);
|
||||
color: #FFFFFF;
|
||||
padding: 0.5em 1em;
|
||||
text-align: center;
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
.help-button:hover {
|
||||
background: #F6920B;
|
||||
}
|
||||
|
||||
acronym {
|
||||
border-bottom: 1px dashed #ccc;
|
||||
text-decoration: none;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* SCREENS.CSS */
|
||||
|
||||
#show {
|
||||
max-width: 1280px;
|
||||
max-height: 800px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
border: 1px solid #182028;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#show img {
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#show img.visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
aspect-ratio: 16 / 9;
|
||||
}
|
||||
|
||||
#carousel {
|
||||
text-align: center;
|
||||
margin: 1.25em auto 1em;
|
||||
}
|
||||
|
||||
#dots {
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 0.625em;
|
||||
height: 0.625em;
|
||||
background: #ccc;
|
||||
border-radius: 50%;
|
||||
margin: 0 0.25em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dot.active {
|
||||
background: #333;
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
|
||||
#footer {
|
||||
margin: 2em auto;
|
||||
text-align: center;
|
||||
color: #848585;
|
||||
display: block;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
color: rgb(132, 133, 133);
|
||||
text-shadow: rgb(255, 255, 255) 1px 1px 0px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
#footer img
|
||||
{
|
||||
margin-bottom: 0.5em;
|
||||
height: 7em;
|
||||
}
|
||||
|
||||
#footer p
|
||||
{
|
||||
margin: 0;
|
||||
|
||||
}
|
||||
|
||||
/* ADAPTIVE LAYOUT */
|
||||
|
||||
@media (max-width:864px) {
|
||||
|
||||
#article {
|
||||
margin: 0 0 1em;
|
||||
padding: 1em 1em 1.5em;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#banner {
|
||||
max-width: calc(100% - 2px);
|
||||
margin: 1px 0 1em;
|
||||
outline: 1px solid rgb(227 227 227);;
|
||||
}
|
||||
|
||||
#banner table td:first-child,
|
||||
#banner table td:last-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#banner h1 {
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#banner p, #banner .p-link {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.p-socials a {
|
||||
display: block;
|
||||
margin: 1em 0 0;
|
||||
}
|
||||
|
||||
#menu>* {
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
.td-description {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.td-date {
|
||||
display: none;
|
||||
padding-right: 1em;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.td-languages a + a {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
margin-top: 0.5em;
|
||||
margin-left: 0em;
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: 1em auto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,520 @@
|
||||
/* VARIABLES */
|
||||
|
||||
$c-body-bg-img: url(img/bg.png);
|
||||
$c-body-bg: #E2E2E2;
|
||||
$c-text: #333333;
|
||||
$c-white: #FFFFFF;
|
||||
$c-gray: #888888;
|
||||
$c-black: #000000;
|
||||
|
||||
$c-menu-bg: #161617CC;
|
||||
$c-menu-hover: #FFE36A;
|
||||
$c-menu-shadow: #00000040;
|
||||
|
||||
$c-shadow-soft: #1C1A281F;
|
||||
|
||||
$c-article-bd: #C0B9C491;
|
||||
|
||||
$c-primary: #609A21;
|
||||
$c-primary-ink: #609A21AA;
|
||||
|
||||
$c-link: #0472D8;
|
||||
$c-link-hover: #0053B9;
|
||||
$c-text-link: #1F1F1F;
|
||||
|
||||
$c-lang-panel: #333333D8;
|
||||
$c-lang-sep-top: #FFFFFF0F;
|
||||
$c-lang-sep-bot: #00000012;
|
||||
$c-lang-grad-start:#C20D2C7D;
|
||||
$c-lang-grad-end: #3928C78A;
|
||||
$c-hover-bot-bd: #34312E;
|
||||
$c-hover-top-bd: #484848;
|
||||
|
||||
$c-dot: #CCCCCC;
|
||||
$c-screen-border: #182028;
|
||||
|
||||
/* STYLES */
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Source Sans Pro", "Open Sans", sans-serif;
|
||||
background: $c-body-bg $c-body-bg-img repeat fixed 0 0;
|
||||
}
|
||||
|
||||
#menu {
|
||||
background: $c-menu-bg;
|
||||
color: $c-white;
|
||||
cursor: default;
|
||||
line-height: 2em;
|
||||
padding: 0.5em 0;
|
||||
text-align: center;
|
||||
text-shadow: 2px 2px 2px $c-menu-shadow;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 9000;
|
||||
|
||||
& > * {
|
||||
color: $c-white;
|
||||
cursor: pointer;
|
||||
margin: 0 1em;
|
||||
text-decoration: none;
|
||||
transition: color 0.15s ease;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a.a-sel {
|
||||
color: $c-menu-hover;
|
||||
}
|
||||
|
||||
img {
|
||||
filter: drop-shadow(2px 2px 2px $c-menu-shadow);
|
||||
}
|
||||
}
|
||||
|
||||
#lang-butt {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* LANG-DROPDOWN */
|
||||
|
||||
#lang-dropdown {
|
||||
position: fixed;
|
||||
z-index: 9100;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
border: 10px solid $c-lang-panel;
|
||||
border-left: 10px solid transparent;
|
||||
border-right: 10px solid transparent;
|
||||
border-top: 0;
|
||||
top: -10px;
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: block;
|
||||
margin-left: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid $c-text;
|
||||
box-shadow: 0 0 10px $c-menu-shadow;
|
||||
overflow: hidden;
|
||||
background: $c-lang-panel;
|
||||
backdrop-filter: saturate(180%) blur(6px);
|
||||
|
||||
a {
|
||||
display: block;
|
||||
padding: 0 3em 0 1em;
|
||||
font-size: 90%;
|
||||
line-height: 2.5;
|
||||
border-top: 1px solid $c-lang-sep-top;
|
||||
border-bottom: 1px solid $c-lang-sep-bot;
|
||||
text-decoration: none;
|
||||
color: $c-white !important;
|
||||
|
||||
&:hover {
|
||||
border-bottom: 1px solid $c-hover-bot-bd;
|
||||
border-top: 1px solid $c-hover-top-bd;
|
||||
background-color: $c-hover-top-bd;
|
||||
background-image: linear-gradient(328deg, $c-lang-grad-start, $c-lang-grad-end);
|
||||
}
|
||||
|
||||
&.a-sel {
|
||||
color: $c-gray !important;
|
||||
|
||||
img {
|
||||
color: $c-gray !important;
|
||||
filter: brightness(0.5);
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
margin-top: -3px;
|
||||
width: 16px;
|
||||
height: 11px;
|
||||
filter: drop-shadow(1px 2px 2px $c-menu-shadow);
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ARTICLE */
|
||||
|
||||
#article {
|
||||
background: $c-white;
|
||||
border: 1px solid $c-article-bd;
|
||||
border-radius: 4px;
|
||||
box-shadow: $c-shadow-soft 0 4px 4px -2px;
|
||||
margin: 2em auto;
|
||||
max-width: 910px;
|
||||
padding: 2em;
|
||||
text-align: justify;
|
||||
color: $c-text;
|
||||
}
|
||||
|
||||
#banner {
|
||||
box-sizing: border-box;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 0 0 1px $c-menu-shadow;
|
||||
transition: box-shadow 0.3s ease;
|
||||
display: block;
|
||||
margin: 0px 0px 1em;
|
||||
padding: 1.25em;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
box-shadow: inset 0 0 0 4px $c-primary-ink;
|
||||
}
|
||||
|
||||
td {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 7em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: $c-primary;
|
||||
font-size: 2.5em;
|
||||
margin: 0 0 16px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
.p-link {
|
||||
margin-top: 16px;
|
||||
color: $c-primary;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $c-primary;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 125%;
|
||||
padding: 0;
|
||||
margin: 0 0 16px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $c-text-link;
|
||||
|
||||
&:hover {
|
||||
color: $c-black;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.p {
|
||||
&-socials {
|
||||
text-align: center;
|
||||
margin-bottom: 0px;
|
||||
|
||||
a {
|
||||
margin: 1em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
br {
|
||||
margin: 0em 0em 1em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 1em;
|
||||
margin-right: 0.5em;
|
||||
margin-bottom: -0.15em;
|
||||
}
|
||||
}
|
||||
|
||||
&-subscription {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&-warn {
|
||||
img {
|
||||
margin-bottom: -2px;
|
||||
margin-right: 0.25em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* DOWNLOADS */
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
|
||||
a {
|
||||
padding-bottom: 1px;
|
||||
border-bottom: 1px solid;
|
||||
text-decoration: none;
|
||||
color: $c-link;
|
||||
|
||||
&:hover {
|
||||
color: $c-link-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.tr {
|
||||
&-header {
|
||||
b {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
&-margin {
|
||||
&-bot > td {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
&-top > td {
|
||||
padding-top: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: middle;
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.td {
|
||||
&-image {
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
&-description {
|
||||
text-align: left;
|
||||
width: 40%;
|
||||
|
||||
.beta {
|
||||
border: 1px solid $c-gray;
|
||||
color: $c-gray;
|
||||
font-size: 0.75em;
|
||||
font-weight: bold;
|
||||
border-radius: 0.25em;
|
||||
padding: 0.25em;
|
||||
}
|
||||
}
|
||||
|
||||
&-languages {
|
||||
text-align: right;
|
||||
padding-left: 2em;
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
a + a {
|
||||
margin-left: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
&-info {
|
||||
img {
|
||||
margin-right: 0.25em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.help-button {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
color: $c-primary;
|
||||
|
||||
img {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
acronym {
|
||||
border-bottom: 1px dashed $c-dot;
|
||||
text-decoration: none;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* SCREENS.CSS */
|
||||
|
||||
#show {
|
||||
max-width: 1280px;
|
||||
max-height: 800px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
border: 1px solid $c-screen-border;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
|
||||
&.visible {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 100%;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
aspect-ratio: 16 / 9;
|
||||
}
|
||||
|
||||
#carousel {
|
||||
text-align: center;
|
||||
margin: 1.25em auto 1em;
|
||||
}
|
||||
|
||||
#dots {
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 0.625em;
|
||||
height: 0.625em;
|
||||
background: $c-dot;
|
||||
border-radius: 50%;
|
||||
margin: 0 0.25em;
|
||||
cursor: pointer;
|
||||
|
||||
&.active {
|
||||
background: $c-text;
|
||||
}
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
|
||||
#footer {
|
||||
margin: 2em auto;
|
||||
text-align: center;
|
||||
color: $c-gray;
|
||||
display: block;
|
||||
width: 100%;
|
||||
text-shadow: $c-white 1px 1px 0px;
|
||||
font-size: 90%;
|
||||
|
||||
img {
|
||||
margin-bottom: 0.5em;
|
||||
height: 7em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ADAPTIVE LAYOUT */
|
||||
|
||||
@media (max-width:864px) {
|
||||
#article {
|
||||
margin: 0 0 1em;
|
||||
padding: 1em 1em 1.5em;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#banner {
|
||||
max-width: calc(100% - 2px);
|
||||
margin: 1px 0 1em;
|
||||
outline: 1px solid $c-body-bg;
|
||||
|
||||
table td {
|
||||
&:first-child,
|
||||
&:last-child {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
p, .p-link {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
.p-socials a {
|
||||
display: block;
|
||||
margin: 1em 0 0;
|
||||
}
|
||||
|
||||
#menu > * {
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
.tr {
|
||||
&-header {
|
||||
b {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td {
|
||||
&-description {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
&-languages a {
|
||||
display: block;
|
||||
width: max-content;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
&-languages a + a {
|
||||
margin-top: 0.5em;
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: 1em auto;
|
||||
}
|
||||
}
|
||||
+65
-24
@@ -10,8 +10,29 @@
|
||||
{% include 'tmpl/_menu.htm' %}
|
||||
|
||||
<div id="article">
|
||||
<h1>{{ locale['downloads']['header'] }}</h1>
|
||||
<h1>{{ _('downloads:header') }}</h1>
|
||||
|
||||
<table>
|
||||
<tr class="tr-margin-bot">
|
||||
<td colspan="3"><hr /></td>
|
||||
</tr>
|
||||
|
||||
<tr class="tr-margin-bot tr-header">
|
||||
<td class="td-image" width="40">
|
||||
<img src="{{ url_for('static', filename='img/icons/i_kolibrios.png') }}" alt="kolibrios">
|
||||
</td>
|
||||
<td class="td-description">
|
||||
{{ _('downloads:version') }} <b>{{ autobuild_vers }}</b>
|
||||
</td>
|
||||
<td class="td-languages">
|
||||
{{ _('downloads:date') }} <b>{{ autobuild_date }}</b>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="tr-margin-bot">
|
||||
<td colspan="3"><hr /></td>
|
||||
</tr>
|
||||
|
||||
{% for ext, alt in (
|
||||
('img', 'floppy'),
|
||||
('iso', 'cd'),
|
||||
@@ -23,14 +44,11 @@
|
||||
<img src="{{ url_for('static', filename='img/icons/i_%s.png' % alt) }}" alt="{{ alt }}">
|
||||
</td>
|
||||
<td class="td-description">
|
||||
{{ locale['downloads']['%s-descr' % ext] }}
|
||||
{{ _('downloads:%s-descr' % ext) }}
|
||||
{% if ext == 'raw' %}
|
||||
<span class="beta">BETA</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="td-date">
|
||||
$autobuild_date_ru
|
||||
</td>
|
||||
<td class="td-languages">
|
||||
{% for l, lang in (
|
||||
('en_US', 'English'),
|
||||
@@ -38,41 +56,64 @@
|
||||
('es_ES', 'Español')
|
||||
) %}
|
||||
<a href="//builds.kolibrios.org/{{ l }}/latest-{{ ext }}.7z"
|
||||
title="ver. $autobuild_cmtid_{{ l }}, $autobuild_size_{{ l }}_{{ ext }}">{{ lang }}</a>
|
||||
title="ver. $autobuild_cmtid_{{ l }}, $autobuild_size_{{ l }}_{{ ext }}"
|
||||
class="button">
|
||||
{{ lang }}
|
||||
{% if l == 'en_US' %}
|
||||
<img src="{{ url_for('static', filename='img/flags/en.png') }}" alt="{{ lang }}">
|
||||
{% elif l == 'ru_RU' %}
|
||||
<img src="{{ url_for('static', filename='img/flags/ru.png') }}" alt="{{ lang }}">
|
||||
{% elif l == 'es_ES' %}
|
||||
<img src="{{ url_for('static', filename='img/flags/es.png') }}" alt="{{ lang }}">
|
||||
{% endif %}</a>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<hr />
|
||||
</td>
|
||||
<td colspan="3"><hr /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr class="tr-margin-top">
|
||||
<td class="td-description" colspan="2">
|
||||
<td class="td-description td-info" colspan="2">
|
||||
<div role="button" class="help-button"
|
||||
onclick="alert('{{ locale.downloads.download_help }}');">
|
||||
{{ locale['downloads']['download_choice'] }}
|
||||
onclick="alert('{{ _('downloads:download_help') }}');">
|
||||
<img src="{{ url_for('static', filename='img/icons/i_info.png') }}" alt="Info">
|
||||
<u>{{ _('downloads:download_choice') }}</u>
|
||||
</div>
|
||||
<td class="td-date">
|
||||
<a href="//archive.kolibrios.org/ru/">{{ locale['downloads']['prev_rev'] }}</a>
|
||||
</td>
|
||||
<td class="td-languages">
|
||||
<a href="//builds.kolibrios.org/">{{ locale['downloads']['all_rev'] }}</a>
|
||||
<a href="//archive.kolibrios.org/{{ g.locale | e }}/">
|
||||
{{ _('downloads:prev_rev') }}
|
||||
</a>
|
||||
<a href="//builds.kolibrios.org/">
|
||||
{{ _('downloads:all_rev') }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
{{ locale['downloads']['download_description[0]'] }}
|
||||
<a href='http://www.7-zip.org' target='_blank'>7zip</a>.
|
||||
<b>{{ locale['title']['index'] }}</b> {{ locale['downloads']['download_description[1]'] }}
|
||||
<a href='http://www.gnu.org/licenses/gpl-2.0.html' target='_blank'>GPLv2</a>,
|
||||
{{ locale['downloads']['download_description[2]'] }}
|
||||
<a href='https://git.kolibrios.org'>{{ locale['downloads']['download_description[3]'] }}</a>.
|
||||
{{ _(
|
||||
'downloads:download_description',
|
||||
kolibrios="<b>{0}</b>".format(_('title:index')),
|
||||
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>
|
||||
|
||||
<h1>{{ locale['screenshots']['header'] }}</h1>
|
||||
<p class="p-warn">
|
||||
<img src="{{ url_for('static', filename='img/icons/i_warn.png') }}" alt="Warn">{{ _(
|
||||
'downloads:download_warn',
|
||||
kolibrios="<b>{0}</b>".format(_('title:index'))
|
||||
) | safe }}
|
||||
</p>
|
||||
|
||||
<h1>{{ _('screenshots:header') }}</h1>
|
||||
|
||||
<div id="screen" onclick="next()">
|
||||
<div id="show">
|
||||
@@ -81,7 +122,7 @@
|
||||
id="slide{{ i }}"
|
||||
src="{{ url_for('static', filename='img/screenshots/%d.png' % i ) }}"
|
||||
{% if i == 1 %}class="visible"{% endif %}
|
||||
alt="{{ locale['screenshots']['%d' % i] }}"
|
||||
alt="{{ _('screenshots:%d' % i) }}"
|
||||
>
|
||||
{% endfor %}
|
||||
</div>
|
||||
@@ -93,4 +134,4 @@
|
||||
{% include 'tmpl/_footer.htm' %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
+29
-28
@@ -1,43 +1,44 @@
|
||||
<p>
|
||||
<b>{{ locale['menu']['kolibrios'] }}</b>
|
||||
{{ locale['article']['p1[0]'] }}
|
||||
<a href="http://wiki.kolibrios.org/wiki/Hardware_Support">
|
||||
{{- locale['article']['p1[1]'] -}}
|
||||
</a>
|
||||
{{ locale['article']['p1[2]'] }}
|
||||
{{ _(
|
||||
'article:p1',
|
||||
kolibrios="<b>{0}</b>"
|
||||
.format(_('menu:kolibrios')),
|
||||
drivers="<a href='http://wiki.kolibrios.org/wiki/Hardware_Support'>{0}</a>"
|
||||
.format(_('article:drivers'))
|
||||
) | safe }}
|
||||
</p>
|
||||
|
||||
<iframe src="https://www.youtube.com/embed/IEi25wYyj20" allowfullscreen="true"></iframe>
|
||||
{% if g.locale == 'ru' %}
|
||||
<iframe src="https://www.youtube.com/embed/IEi25wYyj20" allowfullscreen="true"></iframe>
|
||||
{% else %}
|
||||
<iframe src="https://www.youtube.com/embed/SATYQyIcimM" allowfullscreen="true"></iframe>
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
{{ locale['article']['p2[0]'] }}
|
||||
<b>{{ locale['menu']['kolibrios'] }}</b>
|
||||
{{ locale['article']['p2[1]'] }}
|
||||
<a href="http://www.flatassembler.net" target="_blank">FASM</a>
|
||||
{%- set extra = locale.article.get('p2[11]', '').strip() -%}
|
||||
{%- if extra -%} {{ " " + extra }} {%- endif -%}!
|
||||
{{ locale.article['p2[2]'] }}
|
||||
<b>{{ locale['menu']['kolibrios'] }}</b>
|
||||
{{ locale['article']['p2[3]'] }}
|
||||
{{ _(
|
||||
'article:p2',
|
||||
kolibrios="<b>{0}</b>"
|
||||
.format(_('menu:kolibrios')),
|
||||
fasm="<a href='http://www.flatassembler.net' target='_blank'>FASM</a>"
|
||||
) | safe }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>{{ locale['menu']['kolibrios'] }}</b>
|
||||
{{ locale['article']['p3[0]'] }}
|
||||
<a href="http://board.kolibrios.org">
|
||||
{{- locale['article']['p3[1]'] -}}
|
||||
</a>
|
||||
{{ locale['article']['p3[2]'] }}
|
||||
<a href="https://git.kolibrios.org/KolibriOS/kolibrios">
|
||||
{{- locale['article']['p3[3]'] -}}
|
||||
</a>
|
||||
{{ locale['article']['p3[4]'] }}
|
||||
{{ _(
|
||||
'article:p3',
|
||||
kolibrios="<b>{0}</b>"
|
||||
.format(_('menu:kolibrios')),
|
||||
feedback="<a href='http://board.kolibrios.org'>{0}</a>"
|
||||
.format(_('article:feedback')),
|
||||
help="<a href='https://git.kolibrios.org/KolibriOS/kolibrios'>{0}</a>"
|
||||
.format(_('article:help'))
|
||||
) | safe }}
|
||||
</p>
|
||||
|
||||
<p class="p-subscription">
|
||||
<b>
|
||||
{{ locale['article']['p_subscription[0]'] }}
|
||||
{{ _('article:p_subscription') }}
|
||||
<br/>
|
||||
{{ locale['article']['p_subscription[1]'] }}
|
||||
{{ _('footer:team') }}
|
||||
</b>
|
||||
</p>
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<img src="{{ url_for('static', filename='img/logo.png') }}" alt="KolibriOS">
|
||||
<p>
|
||||
© 2004 – {{ year }} <br />
|
||||
{{ locale['footer']['team'] }}
|
||||
{{ _('footer:team') }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -5,8 +5,8 @@
|
||||
<img src="{{ url_for('static', filename='img/logo.png') }}" alt="KolibriOS">
|
||||
</td>
|
||||
<td valign="top">
|
||||
<h1>{{ locale['git']['header'] }}</h1>
|
||||
<p>{{ locale['git']['text'] }}</p>
|
||||
<h1>{{ _('git:header') }}</h1>
|
||||
<p>{{ _('git:text') }}</p>
|
||||
<p class="p-link">
|
||||
<a href="https://git.kolibrios.org">https://git.kolibrios.org</a>
|
||||
</p>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{ locale['title'][request.url_rule.endpoint] }}</title>
|
||||
<title>{{ _('title:%s' % request.url_rule.endpoint) }}</title>
|
||||
<link rel="icon" type="image/x-icon" href="{{ url_for('static', filename='favicon.ico') }}">
|
||||
<meta name="description" content="{{ locale['header'][request.url_rule.endpoint] }}">
|
||||
<meta name="description" content="{{ _('header:%s' % request.url_rule.endpoint) }}">
|
||||
<meta name="keywords"
|
||||
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.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='script.min.js') }}"></script>
|
||||
</head>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<div id="lang-dropdown">
|
||||
<div>
|
||||
{%- for lang_item in loc_list %}
|
||||
{% set lang_code = lang_item.code %}
|
||||
{% set lang_name = lang_item.name %}
|
||||
{%- for lang_code in g.locales_name.keys() %}
|
||||
{% set lang_name = g.locales_name[lang_code] %}
|
||||
{%- if request.view_args["lang"] == lang_code %}
|
||||
<font bg=#FF9800>
|
||||
<a class="a-sel" href="{{ url_for(request.url_rule.endpoint, lang=lang_code) }}">
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<nav id="menu">
|
||||
<a href="{{ url_for('index', lang=lang) }}" class="{% if current == 'index' %}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">{{ locale['menu']['kolibrios'] }}</font>
|
||||
<font bg="lightblue">{{ _('menu:kolibrios') }}</font>
|
||||
{% else %}
|
||||
{{ locale['menu']['kolibrios'] }}
|
||||
{{ _('menu:kolibrios') }}
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
<a href="{{ url_for('download', lang=lang) }}" class="{% if current == 'download' %}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">{{ locale['menu']['download'] }}</font>
|
||||
<font bg="lightblue">{{ _('menu:download') }}</font>
|
||||
{% else %}
|
||||
{{ locale['menu']['download'] }}
|
||||
{{ _('menu:download') }}
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
<a href="https://board.kolibrios.org">{{ locale['menu']['forum'] }}</a>
|
||||
<a href="https://wiki.kolibrios.org/wiki/Main_Page/{{ lang }}">{{ locale['menu']['wiki'] }}</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' % lang) }}" alt="{{ lang }}">
|
||||
<img src="{{ url_for('static', filename='img/flags/%s.png' % g.locale) }}" alt="{{ g.locale }}">
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
Reference in New Issue
Block a user