Vládní CERT (GovCERT.CZ) upozorňuje (𝕏) na kritickou zranitelnost v jsPDF, CVE-2025-68428. Tato zranitelnost umožňuje neautentizovaným vzdáleným útočníkům číst libovolné soubory z lokálního souborového systému serveru při použití jsPDF v prostředí Node.js. Problém vzniká kvůli nedostatečné validaci vstupu u cest k souborům předávaných několika metodám jsPDF. Útočník může zneužít tuto chybu k exfiltraci citlivých
… více »V úterý 13. ledna 2025 se v pražské kanceláři SUSE v Karlíně uskuteční 5. Mobile Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a související infrastrukturu. Akci pořádá David Heidelberg.
… více »Už je 14 dní zbývá do začátku osmého ročníku komunitního setkání nejen českých a slovenských správců sítí CSNOG 2026. Registrace na akci je stále otevřená, ale termín uzávěrky se blíží. I proto organizátoři doporučují, aby se zájemci přihlásili brzy, nejlépe ještě tento týden.
Komunitní setkání CSNOG 2026 se uskuteční 21. a 22. ledna na Univerzitě Tomáše Bati ve Zlíně a jeho pořadateli jsou sdružení CESNET, CZ.NIC a NIX.CZ. Bližší informace o komunitě CSNOG (Czech a Slovak Network Operators Group) a jejich setkáních jsou k dispozici na webu csnog.eu.Rok 2026 sotva začal, ale už v prvním týdnu se nashromáždilo nezvykle mnoho zajímavostí, událostí a zpráv. Jedno je ale jisté - už ve středu se koná Virtuální Bastlírna - online setkání techniků, bastlířů a ajťáků, kam rozhodně doražte, ideálně s mikrofonem a kamerou a zapojte se do diskuze o zajímavých technických tématech.
Dějí se i ne zcela šťastné věci – zdražování a nedostupnost RAM a SSD, nedostatek waferů, 3€ clo na každou položku z Číny … více »Vývojáři GNOME a Firefoxu zvažují ve výchozím nastavení vypnutí funkce vkládání prostředním tlačítkem myši. Zdůvodnění: "U většiny uživatelů tento X11ism způsobuje neočekávané chování".
Nástroj pro obnovu dat GNU ddrescue (Wikipedie) byl vydán v nové verzi 1.30. Vylepšena byla automatická obnova z disků s poškozenou čtecí hlavou.
Protokol IPv6 má již 30 let. První návrh specifikace RFC 1883 je z prosince 1995.
Byli vyhlášeni vítězové ocenění Steam Awards 2025. Hrou roku a současně nejlepší hrou, která vám nejde, je Hollow Knight: Silksong.
Byla vydána nová verze 26.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Anh-Linh. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Jednotný seznam blokovaných internetových stránek vedený Českým telekomunikační úřadem obsahoval také Český telekomunikační úřad.
{
"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: