faberNovel / ad_localize

ADLocalize is a simple way to manage your localization files. Supported wording sources : CSVs and Google Sheets. Localization file generation available for iOS, Android, JSON (i18next), YAML and Java properties
https://rubygems.org/gems/ad_localize
MIT License
24 stars 8 forks source link

Feature/escape percent #74

Closed ferrandp closed 2 years ago

ferrandp commented 2 years ago

Par défaut, le signe '%' n'a pas besoin d'être échappé sur Android. Il n'y a pas non plus de raison d'utiliser le code %. En revanche, lorsqu'une traduction possède un formateur (%s, %1$@, etc.) c'est qu'elle va être utilisée avec la méthode context.getString en lui donnant des arguments supplémentaires. Dans ce cas là, le pourcentage doit être échappé avec un deuxième symbole '%'.

nicolasygrand commented 2 years ago

Je ne me rappelle plus du cas exact mais j'ai justement eu des problèmes avec le double échappement via le caractère % sur Flexfuel. Et il y a une raison toute simple pour utiliser % qui est que le standard XML le propose notamment pour éviter des confusions.

Tu as rencontré des problèmes en particulier qui t'ont poussé à faire cette PR ?

ferrandp commented 2 years ago

@nicolasygrand Le caractère spécial ne remplace pas l'échappement du caractère '%'. Dans le cas où le context.getString est utilisé, il faut obligatoirement l'échapper. Si tu as plus d'infos sur le cas qui posait problème sur Flexfuel, je suis preneur, mais quand j'ai posé la question sur le chan Android je n'ai pas eu la moindre réponse 🤷‍♂️