Come ho creato un’estensione di Chrome per convertire l’ortografia Reg US • The Register

Mani su Il registro ha iniziato la sua vita a Londra nel 1994 e oggi ha giornalisti e altro personale in tutto il mondo, vale a dire San Francisco, Sydney, Singapore, Berlino e oltre.

Un tempo i nostri avvoltoi scrivevano nel loro stile locale: gli americani usavano l’ortografia americana, gli inglesi facevano affidamento sull’ortografia britannica, anche gli australiani erano praticamente in modalità britannica e tutti gli altri facevano ciò che sembrava naturale. Ad esempio, se un articolo fosse stato scritto dal team statunitense e pubblicato nella mattina del Regno Unito, l’ortografia sarebbe spesso cambiata in inglese.

Man mano che aggiungevamo più scrittori ed editori in tutto il mondo e raggiungevamo più persone a livello globale – ora circa 40 milioni di lettori unici all’anno – in tutti i tipi di fusi orari, è diventato necessario, per motivi logistici e professionali, concordare un solo stile coerente per il intero sito. Dopo Il registro spostati da un .co.uk a un .com durante la pandemia, abbiamo scelto l’ortografia americana.

Come mai? Perché riflette onestamente la vera natura globale dei nostri lettori. L’ortografia del Regno Unito potrebbe farci apparire solo nel Regno Unito. Sì, siamo cresciuti dalla Gran Bretagna, ma oggi ci occupiamo del maggior numero possibile di esperti di tecnologia aziendale in tutto il pianeta. Vogliamo che il nostro gusto di giornalismo tecnologico irriverente e informato si diffonda in lungo e in largo, in modo da poter fare la nostra parte per sfidare i fornitori, spiegare cosa sta succedendo e mordere la mano che alimenta l’IT.

Tuttavia, l’ortografia americana non è la tazza di tè di tutti, o almeno questa è l’impressione che abbiamo avuto leggendo appunti centrati sui mattoni lanciati recentemente attraverso le nostre finestre digitali.

Come un ramo d’ulivo che appassiona il segmento dei nostri lettori con una preferenza per l’inglese del re, questo avvoltoio ha deciso di creare un’estensione del browser Chrome per cambiare le parole negli articoli pubblicati dall’ortografia degli Stati Uniti al Regno Unito.

Si chiama Spellerizer, perché stavo cercando di essere sottilmente stupido nella speranza di distinguermi dall’ingenuità tentacolare e impenitente che è la nuova normalità di Internet. Inoltre, il nome stupido serve a ricordare che l’estensione non funziona molto bene. Ma ehi, è gratis.

La traduzione, anche tra l’ortografia statunitense e britannica, è un’arte che richiede considerazione del contesto. Spellerizer non è così artistico; si basa su un algoritmo di ricerca e sostituzione di forza bruta che non presta attenzione alle parole che lo circondano. Quindi, se vede “controllo”, sostituirà l’ortografia statunitense con “assegno”, anche se l’ortografia britannica appropriata in quel caso è anche “controllo”.

In realtà, avrei dovuto fare affidamento su un modello di apprendimento automatico per apportare modifiche ortografiche più informate. Ma allora questo non sarebbe stato un progetto di programmazione del fine settimana. Sentiti libero di inviare miglioramenti tramite GitHub.

La mia speranza nel creare Spellerizer è dimostrare che è ragionevolmente facile scrivere un’estensione per browser e incoraggiare coloro che hanno una modesta familiarità con JavaScript a cimentarsi.

Naturalmente ci sono opzioni simili, come script di shell, Perl o Python per recuperare, tradurre e sputare pagine. Ma il browser è un software particolarmente importante e vale la pena personalizzarlo se ti piace scrivere codice.

Spellerizer può essere scaricato e installato dal Chrome Web Store o dal suo repository GitHub. La prima è un’opzione migliore se vuoi che persista e riceva aggiornamenti: alcune persone segnalano che Chrome rimuove le estensioni caricate manualmente (decompresse) al riavvio del browser come precauzione di sicurezza. Tuttavia, questa non è stata la mia esperienza.

Poiché non avevo mai avuto un’estensione nel Chrome Web Store, puoi aspettarti di visualizzare un avviso: “Questa estensione non è considerata attendibile da Navigazione sicura avanzata”. – nella pagina chrome://extensions/ dopo l’installazione. Google spiega: “Per i nuovi sviluppatori, in genere ci vogliono alcuni mesi per diventare affidabili”.

Spellerizer non è ufficialmente approvato o supportato da Il registro e il suo editore Situation Publishing che non fornisce alcuna garanzia sulla sua idoneità o funzione. Come dice l’elenco del Chrome Web Store, probabilmente non ne hai bisogno. Ma se lo vuoi, se lo vuoi davvero, i miei editori sono d’accordo con l’esistenza dell’estensione per il momento.

La documentazione dell’API Chrome Extension di Google è un buon posto per familiarizzare con le stranezze della creazione di un’estensione del browser. Una volta che hai un’idea di base di come i componenti principali (il file manifest, il service worker, gli script di contenuto e altre pagine Web relative alle estensioni) si relazionano tra loro, vale la pena installare un’estensione come Chrome Extension Source Viewer (CRX) per visualizza il codice sorgente dell’estensione dal Chrome Web Store prima del download.

È possibile visualizzare il codice sorgente di un’estensione già installata, ma ci vuole un po’ più di sforzo perché devi conoscere il percorso della cartella dell’estensione di Chrome (chrome://version/ -> [Profile Path field]/extensions) e quindi riconoscere l’identificatore di 32 caratteri corretto utilizzato per il nome della directory dell’interno, tra gli altri che potrebbero essere presenti.

Spellerizer è forse più complicato del necessario perché ho scelto di implementare l’internazionalizzazione, un modo per sostituire le stringhe di testo visibili nell’estensione con il testo tradotto in base alla lingua impostata del browser. Lo script localize.js raccoglie i valori di testo dagli elementi della pagina HTML contrassegnati con l’attributo “data-i18n” e quindi sostituisce le traduzioni estratte dal file messages.json.

L’estensione, scritta utilizzando Manifest v3, funziona caricando il service worker, background.js e mostrando onboarding-page.html al momento dell’installazione. Preliminarmente fuori mano, aggiunge una funzione di ascolto all’icona Spellerizer, che se hai seguito le istruzioni e bloccato sulla barra del browser, sarà visibile senza frugare nel menu a comparsa Estensioni.

La funzione listener collegata all’icona dell’avvoltoio dello Spellerizer attiva il file content-script.js, che fa la maggior parte del lavoro. Se cliccato durante la visualizzazione di a Registrati pagina, recupera il file di dati di ortografia, spelling_data.json (reso disponibile dallo sviluppatore Heiswayi Nrird con una licenza MIT) e scorre tutti i nodi DOM, una struttura ad albero utilizzata per organizzare gli elementi in una pagina Web.

L’approccio che ho adottato non era particolarmente sofisticato – da allora ho appreso che esiste un modo più conciso per iterare i nodi DOM usando un oggetto Treewalker – ma i loop all’interno dei loop fanno il lavoro. La funzione scanWords (riga 20, content-script.js) separa il testo visualizzato associato ai nodi DOM in singole parole e confronta ciascuna delle circa 1700 coppie di parole USA/Regno Unito. Se trova una corrispondenza, scambia l’ortografia statunitense con quella britannica, preservando il caso dell’originale.

Se lo script trova delle parole da sostituire, aggiornerà il badge dell’icona dell’estensione con un numero che rappresenta il conteggio delle parole scambiate. Il badge scompare quando fai clic su un’altra scheda del browser. E se ricarichi a Registrati pagina, tutte le modifiche apportate scompaiono poiché sono solo lato client.

C’è anche una pagina delle opzioni che ho aggiunto per testare i dati persistenti tramite l’API di archiviazione locale. Accessibile tramite un ctrl-clic sull’icona Spellerizer, il menu delle opzioni ha una singola casella di controllo denominata “Pace nel mondo”.

Come puoi immaginare, non ha alcun effetto. Divertiti. ®

Leave a Comment

Your email address will not be published. Required fields are marked *