Firma Proxmox vydala novou serverovou distribuci Datacenter Manager ve verzi 1.0 (poznámky k vydání). Podobně jako Virtual Environment, Mail Gateway či Backup Server je založená na Debianu, k němuž přidává integraci ZFS, webové administrační rozhraní a další. Datacenter Manager je určený ke správě instalací právě ostatních distribucí Proxmox.
Byla vydána nová verze 2.4.66 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 5 bezpečnostních chyb.
Programovací jazyk JavaScript (Wikipedie) dnes slaví 30 let od svého oficiálního představení 4. prosince 1995.
Byly zveřejněny informace o kritické zranitelnosti CVE-2025-55182 s CVSS 10.0 v React Server Components. Zranitelnost je opravena v Reactu 19.0.1, 19.1.2 a 19.2.1.
Bylo rozhodnuto, že nejnovější Linux 6.18 je jádrem s prodlouženou upstream podporou (LTS). Ta je aktuálně plánována do prosince 2027. LTS jader je aktuálně šest: 5.10, 5.15, 6.1, 6.6, 6.12 a 6.18.
Byla vydána nová stabilní verze 3.23.0, tj. první z nové řady 3.23, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.
Byla vydána verze 6.0 webového aplikačního frameworku napsaného v Pythonu Django (Wikipedie). Přehled novinek v poznámkách k vydání.
Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
{
"name": {
"cs_CZ": "Název pluginu",
"en_GB": "Plugin name"
},
"found-msg": {
"cs_CZ": [
"Nalezena %d položka.",
"Nalezeny %d položky.",
"Nalezeno %d položek."
],
"en_GB": [
"Found %d item.",
"Found %d items."
]
}
"sql-table": "Items",
"entity-class": "\\Plugin\\Items",
"some-numbers": [ 123, 45, 67, 89, 10 ]
}
Přemýšlím, jak JSON konfiguráky provázat s gettextem a umožnit nějak kultivovaně hledat, co bylo přeloženo a co ještě nikoliv. Zádrhel je v tom, že něco přeloženo má být ("name", "found-msg"), ale spousta věcí být přeložena nesmí ("sql-table", "entity-class"). Přitom to jsou v podstatě uživatelská data editovaná z administračního rozhraní, takže to nesmí být provázané s gettextem příliš...
"translatable": { } a nad tím pracovat v nějakým „chytřejším“ jazyce, co umí (de)serializovat JSON text a pracovat s tím civilizovaně objektově – na straně klienta třeba JavaScript, na serveru si představím třeba Ruby. Samozřejmě to vůbec nemusí pasovat do tvé use-case, ale to by chtělo asi hlubší popis problému a prostředí.
config.json:
{
"name": "$name",
"found-msg": "$found-msg",
"sql-table": "Items",
"entity-class": "\\Plugin\\Items",
"some-numbers": [ 123, 45, 67, 89, 10 ]
}
config.en_GB.json:
{
"info": {
// metadata o prekladu
},
"strings": {
"$name": "Plugin name",
"$found-msg": [
"Found %d item.",
"Found %d items."
]
}
}
config.cs_CZ.json:
{
"info": {
},
"strings": {
"$name": "Název pluginu",
"$found-msg": [
"Nalezena %d položka.",
"Nalezeny %d položky.",
"Nalezeno %d položek."
]
}
}
{
"languages": [
"en_GB",
"cs_CZ"
],
"strings": {
"name": {
"cs_CZ": "Název pluginu",
"en_GB": "Plugin name"
},
"found-msg": {
"cs_CZ": [
"Nalezena %d položka.",
"Nalezeny %d položky.",
"Nalezeno %d položek."
],
"en_GB": [
"Found %d item.",
"Found %d items."
]
}
},
"sql-table": "Items",
"entity-class": "\\Plugin\\Items",
"some-numbers": [ 123, 45, 67, 89, 10 ]
}
Je to v podstatě tvůj původní formát, jen vede přeložitelné řetězce izolovaně v jednom objektu, kde je objektově dobře najdeš. Odtud je něčím, co rozumí JSON syntaxi, můžeš vytáhnout do objektů a zpracovávat po jednom jak je potřeba, aniž by ses dostal na atributy, na který se nešahá. Rozdělovat to na víc souborů ani práce s čistě find/replace toolem není asi na tohle moc ideální, ale jak jsem psal, využitelnost závisí na případu použití.
xml:lang. Třeba takhle, samozřejmě to jde strukturovat i více nebo méně:
<config> <name xml:lang="cs_CZ">Název pluginu</name> <name xml:lang="en_GB">Plugin name</name> <found-msg xml:lang="cs_CZ" lower-bound="1" upper-bound="1">Nalezena %d položka.</found-msg> <found-msg xml:lang="cs_CZ" lower-bound="2" upper-bound="4">Nalezeny %d položky.</found-msg> <found-msg xml:lang="cs_CZ" lower-bound="5">Nalezeno %d položek.</found-msg> <found-msg xml:lang="en_GB" lower-bound="1" upper-bound="1">Found %d item.</found-msg> <found-msg xml:lang="en_GB" lower-bound="2">Found %d items.</found-msg> <sql-table>Items</sql-table> <entity-class>\Plugin\Items</entity-class> <some-numbers>123</some-numbers> <some-numbers>45</some-numbers> <some-numbers>67</some-numbers> <some-numbers>89</some-numbers> <some-numbers>10</some-numbers> </config>
Tiskni
Sdílej: