Farsi/número árabe a ser emitido corretamente
Pergunta
Ok, pode ser que você pense essa pergunta dup, mas eu juro que não é. lol você tem um arquivo que sai como tal:
<div id="first">1</div>
2
<div id="third">
<? $i = 3; echo(i) ?>
</div>
Quais saídas:
1
2
3
Agora, se eu quiser ter uma saída como abaixo:
?
?
?
Bem, eu esperava colocar a versão árabe/farsi de 1,2,3 em vez de '?'. Isso está me deixando louco, Q1: Como posso usar o HTML/CSS converter números em árabe/farsi?
P2: E por que diabos quando eu mudo meu idioma (winxp) tudo muda, exceto números?
Solução
Não existe uma maneira automatizada de alterar números ou mesmo dígitos. Configure um mapeamento entre então e converta manualmente.
Os números nunca são localizados, porque, diferentemente das palavras da linguagem natural, os números árabes são entendidos na maior parte do mundo.
Outras dicas
Se você deseja numerar uma lista, você pode usar um ol
elemento e mudar o list-style-type
Dele tipo:
ol {
list-style: arabic-indic;
}
Expandindo a resposta de Shirzitco e Kirk Woll acima-que salvou meu, mas quando o cliente decidiu que todo o conteúdo em um CMS do WordPress deveria usar números orientais-arábicos em vez do árabe ocidental com o qual começaram:
function recursiveReplace(node) {
if (node.nodeType === 3) { // text node
node.nodeValue = node.nodeValue
.replace(/0/g,'۰')
.replace(/1/g,'۱')
.replace(/2/g,'۲')
.replace(/3/g,'۳')
.replace(/4/g,'۴')
.replace(/5/g,'۵')
.replace(/6/g,'۶')
.replace(/7/g,'۷')
.replace(/8/g,'۸')
.replace(/9/g,'۹');
} else if (node.nodeType === 1) { // element
$(node).contents().each(function () {
recursiveReplace(this);
});
}
}
recursiveReplace(document.body);
Use este JavaScript, isso substituirá os números:
function recursiveReplace(node) {
if (node.nodeType == 3) { // text node
node.nodeValue = node.nodeValue.replace("1", "۱");
} else if (node.nodeType == 1) { // element
$(node).contents().each(function () {
recursiveReplace(this);
});
}
}
recursiveReplace(document.body);