Uma visão prática sobre persa localização
Localizar para persa (farsi) não é só traduzir texto. A primeira coisa que você precisa entender é que o alfabeto árabe é usado para escrever persa, mas tem letras extras que o árabe não tem. Se seu sistema de localização não lida com isso direito, você vai ter caracteres estranhos aparecendo ou texto cortado em momentos aleatórios. Eu trabalho com internacionalização de software há anos e já vi projetos inteiros quebreakavam na fase de teste porque alguém simplesmente assumiu que árabe = persa. Não é. O persa tem quatro vogais que não existem no árabe padrão. O alfabeto inclui além das 28 letras do árabe: , , , (em alguns contextos), e (que às vezes aparece como no texto digitado de forma informal). Se você está desenvolvendo uma interface para usuários iranianos, isso importa.
O que é persa localização
persa localização é o processo de adaptar um produto digital — site, aplicativo, software — para o mercado iraniano e falantes de farsi. Isso envolve tradução, mas também ajustes de layout, formato de data, moeda, numeração, direção do texto e conformidade com normas culturais. A Iran Standards Organization (ISIRI) define padrões de codificação que você deve considerar se quiser fazer isso corretamente. O persa usa a escrita da direita para a esquerda (RTL). Não é como o árabe ter um suporte RTL "meio incompleto". O iraniano padrão para UI é RTL, então sua ferramenta de localização precisa lidar com isso de verdade. Se você está usando uma framework que só tem suporte básico a RTL, você vai passar horas ajustando CSS e layouts manualmente.
Problemas reais que eu encontrei na prática
Um projeto que eu fiz recentemente envolvia um sistema de e-commerce. O cliente queria localizar para persa, e tudo parecia estar funcionando até deployar para produção. O problema era com números. No irã, usam números indo-árabes () em contextos informais, mas números ocidentais (0123456789) em contextos técnicos e comerciais. Meu primeiro deploy mostrou os preços com números indo-árabes e o gateway de pagamento rejeitou porque ele esperava dígitos ocidentais. Eu tive que adicionar um mapeamento nos dados de entrada antes de qualquer processamento. Isso não é algo que aparece nas documentações oficiais de internacionalização. Outro problema foi com a quebra de linha. O persa tem palavras longas, especialmente com composições de prefixo + raiz + sufixo. Meu cliente tinha um campo de endereço com 40 caracteres no máximo. Textos normais caem sem problema, mas endereços no irã frequentemente têm nomes de ruas em persa que não têm espaços claros na segmentação, e o navegador quebrava a linha no meio de uma palavra. Eu resolvi usando word-break: break-all no CSS junto com direction: rtl. Funciona, mas você precisa testar com dados reais. Testar com lorem ipsum nunca vai te mostrar esses problemas.
Formatação que você precisa saber
Data: o Irã usa o calendário Jalaali (persa solar). Isso é diferente do calendario gregoriano. A maioria das bibliotecas modernas já dá suporte a Jalaali, mas se você está usando uma stack mais antiga, vai precisar de uma biblioteca especializada como jalaali-js ou similar. Não tente converter manualmente. Erros de cálculo acontecem com frequência quando você tenta fazer isso no braço. Milhoeda: o rial iraniano (IRR) é a moeda oficial, mas na prática as transações diárias usam toman. Um toman equivale a dez riais. Isso é confuso para desenvolvedores. A maioria dos sistemas financeiros armazena em rials, mas a interface mostra em toman. Você precisa decidir isso no início do projeto, porque mudar depois é caro. Eu recomendo armazenar em rials e converter na exibição.
Números: como comentei, há dois sistemas. Para interfaces voltadas ao consumidor, use números indo-árabes. Para APIs, bancos de dados e integrações, use números ocidentais. Não mescle os dois no mesmo fluxo sem um plano claro.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Ferramentas e bibliotecas
Para formatação de data Jalaali, use a biblioteca jalaali-js (disponível via npm e CDN). ParaRTL, Certifique-se de usar dir="rtl" no html e text-align: right nos elementos de texto. Se você está usando um framework como React ou Vue, há pacotes como v-calendar que já têm suporte a Jalaali embutido. Para tradução, use ferramentas padrão como gettext, i18next ou a API de locale do navegador. O importante é garantir que seu pipeline de localização suporte codificação UTF-8 completa e que nenhum caractere persa seja substituído por "?" ou código hexadecimal. Já vi sistemas que salvam strings em JSON e convertem para ASCII de forma agressiva, destruindo todo o texto persa. Sempre verifique a encoding em cada etapa do fluxo.
Pitfalls comuns e como evitar
Fontes: muitas fontes não cobrem todos os caracteres persas. Se você está usando uma fonte genérica do sistema operacional, pode ter substituição de glifos inadequada. Fontes como Vazirmatn (antiga Vazir) são feitas especificamente para farsi e são gratuitas. Use-as. Se seu projeto está em produção e alguém perguntar por que caracteres estão aparecendo estranhos, verifique primeiro a fonte. Síntese de voz: se seu produto tem TTS (text-to-speech), o persa é praticamente abandonado pela maioria dos motores de voz comerciais. A Microsoft Azure tem umVoice "Farida" em farsi, mas a qualidade ainda deixa a desejar. Se você precisa de áudio, planeje isso desde o início. Não adianta pensar nisso na fase final.
Censura e conformidade: o Irã tem regulamentações específicas sobre conteúdo. Se seu produto vai ser usado lá, você precisa considerar isso. Não é algo técnico, mas afeta diretamente o design da localização. Palavras, imagens e até emojis podem ser problemáticos. Eu recomendo consultar um especialista local antes de lançar qualquer interface em farsi para o mercado iraniano.
Como começar um projeto de persa localização
A primeira coisa é mapear todas as strings que precisam ser traduzidas. Não pule essa etapa. Eu já vi pessoas começarem traduzindo direto sem extrair as strings primeiro, e no final terem que refazer tudo porque o código estava hardcodado. Use uma ferramenta de extração como i18next com sua config de backend ou gettext se estiver em PHP/Python. Depois, defina a estrutura de pastas e arquivos. O padrão ISO para persa é fa-IR. Use esse código em todo o projeto. Não use fa sozinho, porque isso pode conflitar com outras variantes.
Teste com dados reais. Endereços, nomes, datas, números de telefone iranianos. Números de telefone no Irã começam com +98 e têm 10 dígitos após o código do país. Formatos de CEP iranianos têm 10 dígitos. Se seu formulário de cadastro aceitar apenas 5 dígitos para CEP, você vai ter usuários reclamando. Não confie em máscaras de input genéricas. Adapte para os formatos locais. Por fim, não confie apenas em tradutores automáticos. O farsi tem níveis de formalidade que o árabe não tem da mesma forma. O tratamento "" (formal) vs "" (informal) aparece em interfaces e escolhas erradas geram estranheza. Contrate um revisor nativo iraniano. Custa menos do que corrigir erros de usabilidade depois.