Veja o botão:
Não me surpreenderia se o problema estivesse presente em todas as dicas.
Encontrei o mesmo problema.
Uma rápida olhada no Discourse mostra que escape é usado no rótulo do botão, título e conteúdo.
O que é escape:
Em um contexto de texto, estes parecem ser todos caracteres válidos para usar.
Eu me pergunto, é necessário aqui?
Acredito que o HTML não marcado com htmlSafe será escapado pelo template? ![]()
Uma correção pode ser substituir o apóstrofo de programação pelo apóstrofo francês real.
Use: ’
Não: '
Este símbolo não existe em teclados QWERTY dos EUA e também não existe em teclados AZERTY mais antigos, mas existe em ambos os novos teclados franceses padrão AFNOR (Association française de normalisation), seja AZERTY novo ou BÉPO.
Isso não corrigiria o problema mais profundo de que o apóstrofo programático não está sendo escapado corretamente, mas o apóstrofo francês real é o correto a ser usado e deve ser o que a maioria dos falantes de francês usará ao digitar assim que a maioria deles estiver em teclados padrão.
O antigo AZERTY nunca foi realmente padronizado por nenhum órgão oficial.
Tive o mesmo problema no Discourse 3.4.1…
Não posso substituir todos os ' no site. Você tem alguma sugestão?
Acabei de corrigir este problema com algum código personalizado, substitua ' por ’ em I18n.translations
withPluginApi("0.8.18", (api) => {
const locale = I18n.currentLocale();
function replaceSingleQuotes(obj) {
if (typeof obj === 'string') {
// Divide a string em tags HTML e partes não-tag
return obj.split(/(<[^>]+>)/g).map(segment => {
// Se o segmento for uma tag HTML, não substitua nada
if (segment.startsWith('<') && segment.endsWith('>')) {
return segment;
} else {
// Substitua as aspas simples apenas em partes não-HTML
return segment.replace(/'/g, '’');
}
}).join('');
} else if (typeof obj === 'object' && obj !== null) {
// Processa recursivamente as propriedades do objeto
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);
}
});
Isso deve ser corrigido agora, seguindo este commit: FIX: user tips in languages with apostrophes by pmusaraj · Pull Request #34118 · discourse/discourse · GitHub
Obrigado pelo relatório!
Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.