abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:44 | Bezpečnostní upozornění

    Zpráva Justičního výboru Sněmovny reprezentantů upozorňuje na cenzurní kampaň Evropské komise, mířenou proti svobodě projevu na sociálních sítích. V dokumentu se uvádí, že se Evropská komise během posledních šesti let účastnila více než 100 uzavřených jednání, během nichž po platformách požadovala úpravy pravidel moderování obsahu, přičemž toto úsilí Komise zahrnovalo i cenzuru politických názorů a pravdivých informací. Výbor zdůrazňuje, že tento přístup Bruselu ohrožuje ústavou zaručená práva Američanů na svobodu projevu.

    NUKE GAZA! 🎆 | Komentářů: 10
    dnes 04:33 | Nová verze

    Linus Torvalds vydal jádro Linux 6.19. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).

    |🇵🇸 | Komentářů: 0
    včera 03:33 | IT novinky

    Do prodeje jde tichá bezdrátová herní myš Logitech PRO X2 SUPERSTRIKE s analogovými spínači s haptickou odezvou (HITS, Haptic Inductive Trigger System). Cena je 4 459 Kč.

    Ladislav Hagara | Komentářů: 7
    7.2. 21:00 | Zajímavý projekt

    Microsoft na GitHubu zveřejnil zdrojový kód projektu LiteBox, jedná se o 'knihovní operační systém' (library OS) zaměřený na bezpečnost, využívající systémovou architekturu LVBS k ochraně jádra před útoky z uživatelského prostoru. LiteBox je napsán v Rustu a uvolněný pod licencí MIT. Projekt je teprve v rané fázi vývoje.

    NUKE GAZA! 🎆 | Komentářů: 3
    7.2. 16:11 | Zajímavý software

    BreezyBox je open-source shell a virtuální terminál pro populární jednočip ESP32. Nabízí základní unixové příkazy, sledování aktuálního pracovního adresáře (CWD), jednoduchý instalátor a spouštěč aplikací v podobě ELF binárních souborů, zabudovaný HTTP server nebo třeba ovládání WiFi - ukázka použití coby 'malého osobního počítače'. Ačkoliv je BreezyBox inspirovaný BusyBoxem, oproti němu má tento projekt několik externích závislostí, zejména na ESP-IDF SDK. BreezyBox je dostupný pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    7.2. 16:00 | Humor

    Byl představen cross-assembler xa.sh, napsaný čistě v Bourne shell skriptu. Tento nástroj umožňuje zpracovávat assemblerový kód pro Intel 8080, přičemž je možné snadno přidat podporu i pro další architektury, například 6502 a 6809. Skript využívá pouze různé běžné unixové příkazy jako jsou awk, sed nebo printf. Skript si lze stáhnout z GitHubového repozitáře projektu.

    NUKE GAZA! 🎆 | Komentářů: 6
    6.2. 17:22 | IT novinky

    Byla představena nová verze modelu Claude Opus 4.6 od společnosti Anthropic. Jako demonstraci možností Anthropic využil 16 agentů Claude Opus 4.6 k vytvoření kompilátoru jazyka C, napsaného v programovacím jazyce Rust. Claude pracoval téměř autonomně, projekt trval zhruba dva týdny a náklady činily přibližně 20 000 dolarů. Výsledkem je fungující kompilátor o 100 000 řádcích kódu, jehož zdrojový kód je volně dostupný na GitHubu pod licencí Creative Commons.

    NUKE GAZA! 🎆 | Komentářů: 20
    6.2. 16:44 | Komunita

    Kultovní britský seriál The IT Crowd (Ajťáci) oslavil dvacáté výročí svého prvního vysílání. Sitcom o dvou sociálně nemotorných pracovnících a jejich nadřízené zaujal diváky svým humorem a ikonickými hláškami. Seriál, který debutoval v roce 2006, si i po dvou dekádách udržuje silnou fanouškovskou základnu a pravidelně se objevuje v seznamech nejlepších komedií své doby. Nedávné zatčení autora seriálu Grahama Linehana za hatecrime však vyvolává otázku, jestli by tento sitcom v současné Velké Británii vůbec vznikl.

    NUKE GAZA! 🎆 | Komentářů: 10
    6.2. 13:33 | IT novinky

    Společnost JetBrains oznámila, že počínaje verzí 2026.1 budou IDE založená na IntelliJ ve výchozím nastavení používat Wayland.

    Ladislav Hagara | Komentářů: 5
    6.2. 11:22 | IT novinky

    Společnost SpaceX amerického miliardáře Elona Muska podala žádost o vypuštění jednoho milionu satelitů na oběžnou dráhu kolem Země, odkud by pomohly zajistit provoz umělé inteligence (AI) a zároveň šetřily pozemské zdroje. Zatím se ale neví, kdy by se tak mělo stát. V žádosti Federální komisi pro spoje (FCC) se píše, že orbitální datová centra jsou nejúspornějším a energeticky nejúčinnějším způsobem, jak uspokojit rostoucí poptávku po

    … více »
    Ladislav Hagara | Komentářů: 29
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (26%)
     (3%)
     (5%)
     (2%)
     (12%)
     (28%)
    Celkem 815 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Lokalizace JSON konfiguračních souborů

    Josef Kufner avatar 15.1.2014 13:43 Josef Kufner | skóre: 70
    Lokalizace JSON konfiguračních souborů
    Přečteno: 386×
    Dobré ráno,

    mám konfiguraci uloženou v JSON souborech a chci přidat možnost překladu v ní vyskytujících se řetězců.

    Napadá vás něco lepšího než je toto?
    {
      "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š...
    Hello world ! Segmentation fault (core dumped)

    Odpovědi

    16.1.2014 23:30 michi
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    Ten formát není vůbec šťastnej.

    Nejjednodušší, co mě napadá, je dát si přeložitelný řetězce/položky do jedné další velké dictionary s jménem např. "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í.
    Josef Kufner avatar 17.1.2014 00:14 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    Myslíš něco jako toto?

    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."
        ]
      }
    }
    Hello world ! Segmentation fault (core dumped)
    17.1.2014 07:04 michi
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    Nene, spíš toto :)
    {
      "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í.
    17.1.2014 08:15 Filip Jirsák
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    To je nevýhoda JSONu, že je to hromada dat prakticky bez struktury. Použil bych XML, elementy s texty, které se mají překládat, by měly atribut 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>
    
    Josef Kufner avatar 17.1.2014 20:06 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    To by šlo, vlastně to je celkem i pěkné (na XML). A Androidí aplikace dělají něco podobného (překlady mají bokem, ale odkazují atributem a hodnota pak je prázdná).

    Jenže zavedením XML namísto JSON bych si značně zkomplikoval život v mnoha jiných ohledech mimo překladů a ztratil hodně výkonu. Ono se mi tam jinak JSON velice hodí, jen jsem narazil na takový malý háček...
    Hello world ! Segmentation fault (core dumped)
    23.1.2014 16:12 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    Tak ono při vhodném převedení xml atributů na json položky jsou XML a JSON v podstatě isomorfní, takže je celkem jedno, který z formátu použiješ (v podstatě to je osobní preference). Jestli už používáš json, udělal bych jak píše michi výše.
    Josef Kufner avatar 23.1.2014 19:02 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Lokalizace JSON konfiguračních souborů
    To jo, jenže u některých formátů pak můžu tvrdě narazit na některé jejich skryté nedostatky a tou dobou už se formát bude měnit těžko. Tak sháním, kdo si už ten nos nabil :-)
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.