{"id":502,"date":"2010-03-28T22:52:44","date_gmt":"2010-03-28T21:52:44","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=502"},"modified":"2010-03-29T21:29:16","modified_gmt":"2010-03-29T20:29:16","slug":"django-rosetta-parce-que-pierre-qui-roule-namasse-pas-mousse","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2010\/03\/28\/django-rosetta-parce-que-pierre-qui-roule-namasse-pas-mousse\/","title":{"rendered":"Django-rosetta, parce que pierre qui roule n&#8217;amasse pas mousse"},"content":{"rendered":"<p>Vous aimez mon titre ? Parce que moi, j&#8217;en suis super fier en fait. Et oui, il m&#8217;en faut peu. Bon donc pour la django-app du mois de f\u00e9vrier, j&#8217;avais choisi django-transmeta qui permettait de traduire facilement son contenu. Mais un site n&#8217;est pas fait que de contenu, il est aussi fait de label, de menu, de tout plein de truc qu&#8217;il faut internationaliser \u00e0 coup de .po et de .mo. Ce qui est, il faut bien le dire, un poil chiant. Limite je pourrais dire, qu&#8217;\u00e0 vouloir traduire tout ces mots, on pourrait bien finir par y laisser notre peau.<\/p>\n<p>C&#8217;est l\u00e0 que django-rosetta intervient.<\/p>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi (et la doc) ?<\/h1>\n<p>Comme bien souvent, sur la <a href=\"http:\/\/code.google.com\/p\/django-rosetta\/\">page qui lui est destin\u00e9, qui est, un google code<\/a>. Pour l&#8217;installation, rosetta fait dans le rustique : tar.gz ou svn checkout. Brut mais efficace.<\/p>\n<p>Ensuite il suffira de rajouter django-rosetta dans les INSTALLED_APPS\u00a0 et de rajouter ses urls dans l&#8217;urlpattern qui va bien. Et c&#8217;est tout, apr\u00e8s roule ma poule (ou ma pierre, de rosette HA HA).<\/p>\n<p>Pour la doc, la encore, il n&#8217;y a que la page home du google code. Mais l&#8217;app est suffisament bien faite, pour que la doc pr\u00e9sente soit amplement suffisante.<\/p>\n<h1>2- Comment \u00e7a marche ?<\/h1>\n<p>Django-rosetta vous permet de rendre la r\u00e9daction des .po moins chiante que dans un simple gedit. Mais du coup, cela veut dire que l&#8217;application a besoin d&#8217;avoir les permissions d&#8217;\u00e9critures sur certains des fichiers de votre arborescence.<\/p>\n<p>Du coup, elle n&#8217;est utilisable que de l&#8217;admin django. C&#8217;est un choix qui me semble, en fait, tr\u00e8s logique. Et puis est ce que cela existe des gens qui n&#8217;utilisent pas du tout la partie admin de django ?<\/p>\n<p>Ensuite, c&#8217;est tout simple, on a une liste des fichiers po, avec les pourcentages de traduction effectu\u00e9es. On en choisit un et on se met au boulot. On peut m\u00eame choisir si l&#8217;on veut afficher toute s les chaines ou que celle que l&#8217;on n&#8217;a pas encore traduite.<\/p>\n<p>Allez op, deux petites images pour vous montrer le truc, parce que je suis gentil. (Et puis que je ne me suis pas trop fatigu\u00e9, je reprend honteusement celles du google code officiel).<\/p>\n<p><a href=\"http:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-1.png\" rel=\"lightbox[502]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-504\" title=\"rosetta-1\" src=\"http:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-1-300x146.png\" alt=\"\" width=\"300\" height=\"146\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-1-300x146.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-1.png 833w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-2.1.png\" rel=\"lightbox[502]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-505\" title=\"rosetta-2.1\" src=\"http:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-2.1-300x228.png\" alt=\"\" width=\"300\" height=\"228\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-2.1-300x228.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/03\/rosetta-2.1.png 921w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Voil\u00e0, avec cette deuxi\u00e8me app, j&#8217;en ai fini de parler, en tout cas pour un temps, d&#8217;internationalisation. A bient\u00f4t (dans un mois) pour de nouvelles d\u00e9couvertes dans le merveilleux pays des app django.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous aimez mon titre ? Parce que moi, j&#8217;en suis super fier en fait. Et oui, il m&#8217;en faut peu. Bon donc pour la django-app du mois de f\u00e9vrier, j&#8217;avais choisi django-transmeta qui permettait de traduire facilement son contenu. Mais un site n&#8217;est pas fait que de contenu, il est aussi fait de label, de &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2010\/03\/28\/django-rosetta-parce-que-pierre-qui-roule-namasse-pas-mousse\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Django-rosetta, parce que pierre qui roule n&#8217;amasse pas mousse<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35],"tags":[99,98],"class_list":["post-502","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois","tag-django","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-86","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=502"}],"version-history":[{"count":4,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/502\/revisions"}],"predecessor-version":[{"id":522,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/502\/revisions\/522"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}