Chiamata di funzioni C all’interno di javascript

Il javascript stampa il HTML sulla pagina di esempio riportato di seguito, è possibile chiamare un C funzione su di esso, per esempio, in C per convertire qualcosa in un’altra lingua, c’è una funzione LANG_Str("text") che converte il testo in lingua specificata. È possibile utilizzare questa funzione, a seguito di testo all’interno di Javascript?.

"<tr><th>Service</th><th>Target Allocation (%)</th><th></th>"

EDIT:

Praticamente sto volendo fare un umano la lingua di traduzione. Il sito già supporta multi-lingua, il problema è la schermata personalizzata, come quello illustrato che viene generato in Javascript, non è possibile utilizzare la funzione utilizzata per tradurre il testo nel modo in cui è fatto normalmente in C.

Dall’interno di un browser web? No.
Come è questa stringa generata? Se si sta generando da C, allora sì, si può fare. Se si sta generando da JavaScript, quindi no.
Non è necessario implementare il i18n della tua app? Sicuramente dovrebbe essere fatto in un altro modo…
Lo script è eseguito in C utilizzando HTML_WriteToCgi
È la radice della tua domanda: “come posso creare un multi-lingua (inglese, spagnolo, Mandarino) sito?”

OriginaleL’autore ahmet | 2012-06-21

5 Replies
  1. 7

    Se è in esecuzione nel browser: no. Mi dispiace.

    Si potrebbe essere in grado di farlo nel codice lato server in anticipo (ad esempio, Python o PHP che può richiamare C) quando mettendo insieme il contenuto della pagina. In alternativa è possibile fare una richiesta AJAX al server che espone la funzione C come un’API HTTP/Endpoint (via, GCI, FCGI o Python/PHP/Perl). Ma non nel browser.

    Questo è perché il JS viene eseguito in una sandbox ambiente virtuale che non ha accesso a chiamate di sistema o qualcosa al di fuori delle runtime.

    MODIFICA

    In risposta al tuo commento “Lo script è eseguito in C utilizzando HTML_WriteToCgi”, questo suggerisce che si stanno mettendo insieme l’HTML in C sul vostro server. Se questo è corretto, vado per la mia opzione 1 di cui sopra, inserendo direttamente i valori in JS codice sorgente se tutti i valori sono venuti fuori alcuni dati noti dal server.

    Si potrebbe prendere in considerazione lo spostamento di alcune funzionalità del browser JS e indietro nel codice lato server per risolvere il tuo problema.

    Sarebbe una buona idea spostare tutto il codice JS e invece solo WriteToCgi il codice javascript?, questo dovrebbe consentire a me di chiamare la funzione all’interno.
    Che è certamente possibile, sì. In alternativa, se si sta chiamando una funzione di localizzazione in JS, e si conoscono tutti i valori che verranno utilizzati, si può costruire un JavaScript mappa di stringhe da tradurre valori e di simulare l’input/output della funzione C.
    Questa risposta non è del tutto corretto: è possibile compilazione C client-side JavaScript utilizzando EngScripten.

    OriginaleL’autore Joe

  2. 3

    È possibile fare una richiesta speciale, in modo che il webserver possibile utilizzare tale richiesta e inviarlo alla pagina web.

    OriginaleL’autore

  3. 2

    JavaScript non è possibile accedere a tutti gli altri processi direttamente, ma può fare una richiesta al server per le informazioni. Il server è in grado di chiamare una funzione C che, se necessario,.

    Alla fine, non è JavaScript chiamata la funzione C è il server (e qualsiasi sia la lingua che si utilizza: Python, PHP, ASP.NET, JSP, ecc), che verrà chiamata la funzione C.

    OriginaleL’autore zzzzBov

  4. 0

    Si potrebbe considerare la creazione di un Servizio web RESTful sul server che riceverà il testo d’origine e la lingua di destinazione id, per poi tornare il testo tradotto. È quindi possibile accedervi da una pagina web tramite un chiamata ajax.

    OriginaleL’autore Jonathan M

  5. 0

    La mia interpretazione è che il vostro obiettivo è quello di chiamare una funzione C all’interno di HTML /Javascript e catturare l’output.

    Quello che si potrebbe fare è creare una VM. In sostanza, si dispone di una vasta gamma di “memoria”, un paio di “registri”, ecc… La parte più difficile è quello di assicurarsi che essi set di istruzioni e il bytecode della tua VM specchi di alcuni comuni del set di istruzioni che c’è un compilatore C per. È possibile compilare il codice C che la VM sul tuo computer, salvarlo in un file, ed eseguire su VM. Se questo è troppo difficile, si può solo ottenere una C per il montaggio del convertitore, e basta definire un paio di istruzioni per il Montaggio, invece. C’è un Linux emulatore in puro javascript, senza chiamate al server che fa esattamente quello.

    OriginaleL’autore ndrewxie

Lascia un commento