{"id":872,"date":"2009-11-19T14:00:40","date_gmt":"2009-11-19T13:00:40","guid":{"rendered":"http:\/\/blogs.wittwer.fr\/whiler\/?p=872"},"modified":"2023-03-12T15:06:46","modified_gmt":"2023-03-12T14:06:46","slug":"cw3sample","status":"publish","type":"post","link":"https:\/\/blogs.wittwer.fr\/whiler\/2009\/11\/19\/cw3sample\/","title":{"rendered":"Localisations\u2026"},"content":{"rendered":"<p>Depuis le d\u00e9but de la semaine, je suis le <a target=\"_blank\" href=\"https:\/\/codegear.logix.fr\/blog\/index.php\/2009\/11\/13\/agenda-codeway-3-plus-que-quelques-jours-pour-sinscrire\/\" rel=\"noopener\">CodeWay 3<\/a>&#8230;<\/p>\n<p>Dans cet article, je vous propose de retrouver une application mettant en \u0153uvre diff\u00e9rents points abord\u00e9s durant les diverses sessions dont&nbsp;:<\/p>\n<ul>\n<li>Les composants <a target=\"_blank\" href=\"https:\/\/www.tmssoftware.com\/site\/advsmoothcontrols.asp\" rel=\"noopener\">TMS Software<\/a><\/li>\n<li>Le TWebGoogleMap de <a target=\"_blank\" href=\"https:\/\/www.thierry-laborde.com\/\" rel=\"noopener\">Thierry Laborde<\/a><\/li>\n<li>Comment <a target=\"_blank\" href=\"https:\/\/www.obones.com\/codeway3\" rel=\"noopener\">internationaliser<\/a> une application Delphi<\/li>\n<\/ul>\n<p>L&rsquo;application ressemble \u00e0 ceci&nbsp;:<br \/>\n<div id=\"attachment_874\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a title=\"Interface en fran\u00e7ais\" href=\"\/whiler\/wp-content\/uploads\/2009\/11\/map.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-874\" src=\"\/whiler\/wp-content\/uploads\/2009\/11\/map-300x223.jpg\" alt=\"Interface en fran\u00e7ais\" title=\"Cliquer pour agrandir\" width=\"300\" height=\"223\" class=\"size-medium wp-image-874\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/map-300x223.jpg 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/map.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-874\" class=\"wp-caption-text\">Interface en fran\u00e7ais<\/p><\/div><\/p>\n<p>On remarquera que l&rsquo;interface est en fran\u00e7ais sur la capture ci-dessus. <\/p>\n<p>Cette fois-ci, l&rsquo;interface est en anglais&nbsp;:<!--more--><br \/>\n<div id=\"attachment_873\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a title=\"Carte mixte, interface en anglais\" href=\"\/whiler\/wp-content\/uploads\/2009\/11\/hybrid.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-873\" src=\"\/whiler\/wp-content\/uploads\/2009\/11\/hybrid-300x223.jpg\" alt=\"Carte mixte, interface en anglais\" title=\"Cliquer pour agrandir\" width=\"300\" height=\"223\" class=\"size-medium wp-image-873\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/hybrid-300x223.jpg 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/hybrid.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-873\" class=\"wp-caption-text\">Carte mixte, interface en anglais<\/p><\/div><\/p>\n<p>La mise en \u0153uvre est parfaitement d\u00e9crite dans la <a target=\"_blank\" href=\"https:\/\/www.obones.com\/codeway3\" rel=\"noopener\">session d&rsquo;Olivier Sannier<\/a> ainsi que dans la <a target=\"_blank\" href=\"https:\/\/dxgettext.po.dk\/documentation\" rel=\"noopener\">documentation<\/a> fournie avec le programme d&rsquo;installation de <a target=\"_blank\" href=\"https:\/\/dxgettext.po.dk\/\" rel=\"noopener\">dxgettext<\/a> permettant d&rsquo;avoir tout sous la main.<\/p>\n<p>Dans mon exemple, j&rsquo;ai mis en \u0153uvre&nbsp;:<\/p>\n<ul>\n<li>traduction simple<\/li>\n<li>traduction avec plusieurs variables<\/li>\n<li>traduction avec pluriel<\/li>\n<li>utilisation de la langue courante de l&rsquo;OS<\/li>\n<li>modification de la langue \u00e0 chaud<\/li>\n<\/ul>\n<p>Le TWebGoogleMap de Thierry utilise l&rsquo;<a target=\"_blank\" href=\"https:\/\/code.google.com\/intl\/fr\/apis\/maps\/documentation\/reference.html\" rel=\"noopener\">API de Google<\/a> pour afficher l&rsquo;interface de <a target=\"_blank\" href=\"https:\/\/maps.google.com\/maps?hl=fr\" rel=\"noopener\">Google Maps<\/a> et permet de g\u00e9rer tr\u00e8s facilement l&rsquo;ajout de <a target=\"_blank\" href=\"https:\/\/code.google.com\/intl\/fr\/apis\/maps\/documentation\/reference.html#GMarker\" rel=\"noopener\">marqueurs<\/a>, les diff\u00e9rents <a target=\"_blank\" href=\"https:\/\/code.google.com\/intl\/fr\/apis\/maps\/documentation\/reference.html#GMapType\" rel=\"noopener\">types de cartes<\/a>, les <a target=\"_blank\" href=\"https:\/\/code.google.com\/intl\/fr\/apis\/maps\/documentation\/reference.html#GMap2.setZoom\" rel=\"noopener\">zooms<\/a>, &#8230;<br \/>\n<div id=\"attachment_875\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a title=\"Carte du relief\" href=\"\/whiler\/wp-content\/uploads\/2009\/11\/terrain.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-875\" src=\"\/whiler\/wp-content\/uploads\/2009\/11\/terrain-300x223.jpg\" alt=\"Carte du relief\" title=\"Cliquer pour agrandir\" width=\"300\" height=\"223\" class=\"size-medium wp-image-875\" srcset=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/terrain-300x223.jpg 300w, https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/uploads\/2009\/11\/terrain.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-875\" class=\"wp-caption-text\">Carte du relief<\/p><\/div><\/p>\n<p>Avec le TWebGoogleMap, j&rsquo;ai mis en \u0153uvre&nbsp;:<\/p>\n<ul>\n<li>latitude et longitude<\/li>\n<li>les types de cartes<\/li>\n<li>le zoom<\/li>\n<li>les marqueurs&nbsp;: ajout, suppression, click<\/li>\n<\/ul>\n<p>Les sources sont disponibles ici&nbsp;: <a href=\"\/whiler\/wp-content\/uploads\/2009\/11\/wgeoipgs_src.zip\">Sources<\/a><br \/>\nPour tester l&rsquo;application compil\u00e9e, il suffit de d\u00e9compacter le fichier suivant&nbsp;: <a href=\"\/whiler\/wp-content\/uploads\/2009\/11\/wgeoipgs.zip\">Application compil\u00e9e<\/a><br \/>\nAvant d&rsquo;effectuer une premi\u00e8re recherche, vous devez avoir la <a title=\"Cliquer pour t\u00e9l\u00e9charger la base de donn\u00e9es de Maxmind\" href=\"https:\/\/geolite.maxmind.com\/download\/geoip\/database\/GeoLiteCity.dat.gz\">base de donn\u00e9es de Maxmind<\/a> dans le m\u00eame r\u00e9pertoire que l&rsquo;application. Vous pouvez retourner sur le <a href=\"\/whiler\/2009\/10\/19\/sample-geolite-city-delphi\/\">pr\u00e9c\u00e9dent article<\/a> plus d\u00e9taill\u00e9 sur la g\u00e9olocalisation.<\/p>\n<div class=\"thanks_button_div\" \n                  style=\"float: right; margin-right: 10px; margin-top:10px;\"><div id=\"thanksButtonDiv_872_1\" style=\"background-image:url(https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/thanks_compact_brown1.png); background-repeat:no-repeat; float: left; display: inline;\"\n                onmouseover=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_872_1', true);\" \n                onmouseout=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_872_1', false);\"\n                onclick=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_872_1', false);\" >\n                <input type=\"button\" onclick=\"thankYouButtonClick(872, 'You left &ldquo;Thanks&rdquo; already for this post')\" value=\"Merci\u00a0 7\"\n                  class=\"thanks_button thanks_compact thanks_brown1\"\n                  style=\"  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#00f;\"\n                  id=\"thanksButton_872_1\" title=\"Click to leave &ldquo;Thanks&rdquo; for this post\"\/>\n             <\/div><div id=\"ajax_loader_872_1\" style=\"display:inline;visibility: hidden;\"><img decoding=\"async\" alt=\"ajax loader\" src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/ajax-loader.gif\" \/><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Depuis le d\u00e9but de la semaine, je suis le CodeWay 3\u2026 Dans cet article, je vous propose de retrouver une application mettant en \u0153uvre diff\u00e9rents points abord\u00e9s durant les diverses sessions dont : Les composants TMS Software, l TWebGoogleMap de Thierry Laborde, comment internationaliser une application Delphi&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7,6],"tags":[122,15,154,44,119,120,118,108,109],"class_list":["post-872","post","type-post","status-publish","format-standard","hentry","category-delphi","category-dev","tag-122","tag-api","tag-delphi","tag-embarcadero","tag-geolite","tag-localisation","tag-maxmind","tag-script","tag-translate"],"_links":{"self":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/comments?post=872"}],"version-history":[{"count":1,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/872\/revisions"}],"predecessor-version":[{"id":6401,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/872\/revisions\/6401"}],"wp:attachment":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/media?parent=872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/categories?post=872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/tags?post=872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}