Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.
Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.
Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4 už běží také ve Windows.
Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.
Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.
Operátor O2 představil tarif Datamanie 1200 GB . Nový tarif přináší 1200 GB dat s neomezenou 5G rychlostí, a také možnost neomezeného volání do všech sítí za 15 Kč na den. Při roční variantě předplatného zákazníci získají po provedení jednorázové platby celou porci dat najednou a mohou je bezstarostně čerpat kdykoli během roku. Do 13. listopadu jej O2 nabízí za zvýhodněných 2 988 Kč. Při průměrné spotřebě tak 100 GB dat vychází na 249 Kč měsíčně.
Byly publikovány informace o útoku na zařízení s Androidem pojmenovaném Pixnapping Attack (CVE-2025-48561). Aplikace může číst citlivá data zobrazovaná jinou aplikací. V demonstračním videu aplikace čte 2FA kódy z Google Authenticatoru.
Lokalizácia rozšírení, ako aj samotnej aplikácie, sa vykonáva dvoma spôsobmi. Prvý z nich využíva XML entity a používa sa pri preklade statického textu v XUL súboroch (ale aj iných XML súboroch).
Druhý spôsob je určený na preklad textov, ktoré ovláda JavaScript.
Tieto texty sú uložené vo formáte podobnom Java property sheetom. Do XUL
súborov sa dostávajú pomocou XUL tagu <stringbundle>
.
Všetky lokalizované texty sa vkladajú do adresárov, ktoré prislúchajú jednotlivým jazykom.
chrome/
|- content/
|- locale/
: |- cs-CZ/
|- en-US/
|- sk-SK/
:
O lokalizácii musíme Firefoxu povedať. To urobíme v súbore install.rdf
:
<em:file>
< Description about="urn:mozilla:extension:file:abc6.jar">
<em:package>content/</em:package>
<em:skin>skin/classic/</em:skin>
<em:locale>locale/cs-CZ/</em:locale>
<em:locale>locale/en-US/</em:locale>
<em:locale>locale/sk-SK/</em:locale>
</Description>
</em:file>
V každom adresári s lokalizovanými textami sa musí nachádzať súbor
content.rdf
, ktorý určuje, pre aký jazyk je lokalizácia určená. V
nasledujúcom príklade deklarujem preklad do českého jazyka (cs-CZ):
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
<Seq about="urn:mozilla:locale:root">
<li resource="urn:mozilla:locale:cs-CZ"/>
</Seq>
<Description about="urn:mozilla:locale:cs-CZ">
<chrome:packages>
<Seq about="urn:mozilla:locale:cs-CZ:packages">
<li resource="urn:mozilla:locale:cs-CZ:abc6"/>
</Seq>
</chrome:packages>
</Description>
</RDF>
Firefox vyberie jeden z adresárov, ktorý zodpovedá nastaveniam
prehliadača a ten sprístupní rozšíreniu cez známy pseudo protokol
chrome:
. Chrome, ako sme mali možnosť pochopiť z tutoriálu,
sprístupňuje vnútorné dáta aplikácie Mozilly.
Ak sa na našom dialógu (alebo inom XUL okne) nič dynamicky nemení, môžeme na preklad textu využiť prirodzený mechanizmus XML - entity. Entity v XML súboroch môžeme substituovať a namiesto nich nám XML parser doplní text, ktorý reprezentujú:
<xmltag xmlatribút="&xmlentita1;">
Text &xmlentita2; zvyšok textu.
</xmltag>
Entity sú definované špeciálnym tagom <!ENTITY> priamo v XML súbore, alebo v externom DTD súbore.
Pri lokalizácii rozšírenia vložíme všetky entity, ktoré reprezentujú lokalizované texty, do DTD súborov. DTD súbory umiestníme do adresárov s lokalizovanými textami. DTD musí byť uložené v kódovaní UTF-8. Tu je ukážka:
Lokalizované texty - chrome/locale/jazyk/abc6settings.dtd
:
<!ENTITY abc6.settings.show_url "Zobraz adresu odkazu">
<!ENTITY abc6.settings.sort_links "Zoraďovať odkazy:">
...
XUL súbor - chrome/content/abc6settings.xul
:
<?xml version="1.0"?>
<!DOCTYPE dialog SYSTEM "chrome://abc6/locale/abc6settings.dtd">
...
<label value="&abc6.settings.sort_links;"/>
...
Všimnite, si, že v ceste k DTD súboru sme vynechali adresár jazyka. Ten vyberie Firefox sám.
Ak potrebujeme v XUL okne dynamicky meniť text JavaScriptom, musíme do
XUL súboru nechať načítavať textové súbory podobné Java property sheetom.
Do XUL súboru ich vložíme tagom <stringbundle>
. Ten by sa mal
nachádzať v tagu <stringbundleset>
a to čisto z technických dôvodov.
Tu je názorná ukážka:
Stringbundle súbor - chrome/locale/jazyk/subor.properties
:
xyz_text_1 = Prv\u00e1 text
xyz_text_2 = Text \u010d\u00edslo dva.
XUL súbor - chrome/content/súbor.xul:
...
<stringbundleset>
<stringbundle id="localStrs" src="chrome://xyz/locale/subor.properties">
</stringbundleset>
<label id="label1"/>
...
Súbor s JavaScriptom - chrome/content/súbor.js
:
function func() {
var localized = document.getElementById("localStrs");
var label1 = document.getElementById("label1");
label1.value = localized.getText("xyz_text_1");
}
V lokalizovaných textoch by nemala byť použitá diakritika. Nahradiť ju treba kódmi UTF-8. Každý kód znaku UTF-8 má tvar \uXXXX, kde X je hexadecimálna číslica (0-9, alebo a-f). XXXX je kód znaku v tabuľke UTF-8.
V ukážkovom kóde JavaScriptu funkcia func() zobrazí text označený v súbore s prekladom ako "xyz_text_1".
Ak chcete vidieť lokalizáciu pomocou DTD v akcii, stiahnite si Tutoriál AbcLinuxu.cz číslo 6. V nasledujúcom dieli použijem aj preklad pomocou <stringbundle>
. Na domácu úlohu skúste nájsť iné využitie pre DTD súbory v rozšírení.
Dnes sme prebrali poslednú dôležitú tému tohto seriálu - Lokalizáciu. Toto bol posledný teoretický diel seriálu.
Sľub z minulého dielu som nedodržal a bočný panel nášho tutoriálu som nenahradil XUL stránkou. Nasledujúci článok bude krátka referenčná príručka dôležitých XUL elementov. Bočný panel preto nahradím za XUL súbor v ďalšom diele.
Dúfam, že seriál vám dal dostatok vedomostí, aby ste mohli technológie Mozilly využiť v praxi a profitovať z nich. A to úplne zadarmo.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
a v javascriptu načítám
var messageBundle = srGetStrBundle("chrome://myext/locale/myext.properties");
Hezký seriál :)