Sonderzeichen-Codierungsproblem bei Onboarding-Tipps

Siehe den Button:

Es würde mich nicht überraschen, wenn das Problem in allen Tooltips vorhanden wäre.

6 „Gefällt mir“

Ich bin auf dasselbe Problem gestoßen.

Ein kurzer Blick auf Discourse zeigt, dass escape für die Beschriftung, den Titel und den Inhalt der Schaltfläche verwendet wird.

Was bedeutet escape:

In einem Textkontext scheinen dies alles gültige Zeichen zu sein.

Ich frage mich, ob es hier erforderlich ist?
Ich glaube, HTML, das nicht mit htmlSafe gekennzeichnet ist, wird vom Template escaped? :thinking:

2 „Gefällt mir“

Eine Lösung könnte darin bestehen, das programmatische Apostroph durch das tatsächliche französische Apostroph zu ersetzen.

Verwenden Sie:
Nicht: '

Dieses Zeichen existiert nicht auf US-QWERTY-Tastaturen und auch nicht auf älteren AZERTY-Tastaturen, aber es existiert auf beiden neuen AFNOR (Association française de normalisation) Standard-Französisch-Tastaturen, entweder neues AZERTY oder BÉPO.

Dies würde nicht das tiefere Problem beheben, dass das programmatische Apostroph nicht korrekt maskiert ist, aber das echte französische Apostroph ist das richtige und sollte von den meisten französischen Sprechern verwendet werden, sobald die Mehrheit von ihnen Standardtastaturen verwendet.

Das alte AZERTY wurde nie von einer offiziellen Stelle standardisiert.

1 „Gefällt mir“

Got same issue on Discourse 3.4.1 …
Ich kann unmöglich alle ' auf der Website ersetzen. Haben Sie Vorschläge?

Ich habe dieses Problem gerade mit benutzerdefiniertem Code behoben, ersetze ' durch 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 „Gefällt mir“

Dies sollte jetzt nach diesem Commit behoben sein: FIX: user tips in languages with apostrophes by pmusaraj · Pull Request #34118 · discourse/discourse · GitHub

Danke für den Bericht!

4 „Gefällt mir“

Dieses Thema wurde nach 3 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr zulässig.