Problema di codifica dei caratteri speciali nei suggerimenti per l'onboarding

Vedi il pulsante:

Non mi sorprenderei se il problema fosse presente in tutte le descrizioni comandi.

6 Mi Piace

Mi sono imbattuto nello stesso problema.

Una rapida occhiata a Discourse mostra che escape viene utilizzato sull’etichetta del pulsante, sul titolo e sul contenuto.

Cos’è escape:

In un contesto di testo, questi sembrano tutti caratteri validi da utilizzare.

Mi chiedo, è necessario qui?
Credo che l’html non contrassegnato con htmlSafe verrà escapato dal template? :thinking:

2 Mi Piace

Una soluzione potrebbe essere sostituire l’apostrofo di programmazione con l’apostrofo francese vero e proprio.

Usa: ’
Non: '

Questo simbolo non esiste sulle tastiere US QWERTY e non esiste nemmeno su quelle AZERTY più vecchie, ma esiste su entrambe le nuove tastiere francesi standard AFNOR (Association française de normalisation), sia nuove AZERTY che BÉPO.

Non risolverebbe il problema più profondo che l’apostrofo programmatico non viene correttamente escapato, ma l’apostrofo francese vero è quello corretto da usare e dovrebbe essere quello che la maggior parte dei parlanti francesi userà nella digitazione una volta che la maggioranza di loro sarà su tastiere standard.

La vecchia AZERTY non è mai stata effettivamente standardizzata da alcun organismo ufficiale.

1 Mi Piace

Ho lo stesso problema su Discourse 3.4.1…
Non posso assolutamente sostituire tutti gli apostrofi sul sito web. Avete suggerimenti?

Ho appena risolto questo problema con del codice personalizzato, sostituisci ' con ’ in I18n.translations

withPluginApi("0.8.18", (api) => {
    const locale = I18n.currentLocale();

    function replaceSingleQuotes(obj) {
        if (typeof obj === 'string') {
            // Split the string into HTML tags and non-tag parts
            return obj.split(/(<[^>]+>)/g).map(segment => {
                // If the segment is an HTML tag, do not replace anything
                if (segment.startsWith('<') && segment.endsWith('>')) {
                    return segment;
                } else {
                    // Replace single quotes only in non-HTML parts
                    return segment.replace(/'/g, '’');
                }
            }).join('');
        } else if (typeof obj === 'object' && obj !== null) {
            // Recursively process object properties
            for (const key in obj) {
                obj[key] = replaceSingleQuotes(obj[key]);
            }
        }
        return obj;
    }

    if (I18n.translations[locale].js) {
        I18n.translations[locale].js = replaceSingleQuotes(I18n.translations[locale].js);
    }
});

1 Mi Piace

Dovrebbe essere risolto ora in seguito a questo commit: FIX: user tips in languages with apostrophes by pmusaraj · Pull Request #34118 · discourse/discourse · GitHub

Grazie per la segnalazione!

4 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 3 giorni. Non sono più consentite nuove risposte.