{"id":15921,"date":"2023-11-03T06:00:00","date_gmt":"2023-11-03T06:00:00","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/?p=15921"},"modified":"2025-05-01T03:09:41","modified_gmt":"2025-05-01T03:09:41","slug":"how-to-copy-locale-settings-from-one-filemaker-app-to-another","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/en\/how-to-copy-locale-settings-from-one-filemaker-app-to-another\/","title":{"rendered":"How to Copy Locale Settings from One FileMaker App to Another"},"content":{"rendered":"<h2 class=\"wp-block-heading\" id=\"Oops,-I-Messed-Up-the-Locale-Settings-of-My-App\" style=\"font-style:normal;font-weight:400\">Oops, I Messed Up the Locale Settings of My App<\/h2><p>A few weeks ago, I used the latest version of the <a href=\"https:\/\/support.claris.com\/s\/article\/FileMaker-data-migration-tool?language=en_US\" target=\"_blank\" rel=\"noreferrer noopener\">FileMaker Data Migration Tool<\/a> (FM DMT) to do a deployment. As a chaos monkey myself, I added the <em>-target_locale<\/em> parameter to my command line and set it to \u201cSystem\u201d and thought it would keep the locale setting the same.<\/p><p>Silly me. It turned out that the value \u201cSystem\u201d doesn\u2019t mean keeping the locale setting the same. It means using the locale setting of the operating <strong>system<\/strong> where the data migration occurs and giving it to the target file. Hence the name \u201cSystem\u201d. Duh.<\/p><p>By the way, if you don\u2019t want to change your locale settings during data migration, don\u2019t use the <em>-target_locale <\/em>parameter in your FM DMT command.<\/p><p>Anyway. I messed up. How do I get my file\u2019s locale setting back to what it was?<\/p><h2 class=\"wp-block-heading\" id=\"Locale-Settings-Contain-More-Than-One-Attribute\" style=\"font-style:normal;font-weight:400\">Locale Settings Contain More Than One Attribute<\/h2><p>When <a href=\"https:\/\/www.directimpactsolutions.com\/en\/filemaker-19-5-explained\/\">FileMaker 19.5<\/a> was released, Claris introduced an enhancement to the FM DMT by allowing developers to use a new parameter <em>-target_locale<\/em> to change the target file\u2019s locale setting. When I read the documentation, I saw a list of supported values.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"495\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png\" alt=\"\" class=\"wp-image-15922\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png 601w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3-300x247.png 300w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/figure><p>Supported names for the target_locale parameter<\/p><p>Somehow, this gave me the impression that the locale setting is just one parameter represented by a single value (Language).<\/p><p>So, my immediate thought on how to restore the locale setting of my file was to run the DMT again. But this time, set the <em>-target_locale<\/em> parameter to \u201cEnglish.\u201d My app serves English-speaking users and runs on a machine with English chosen as the system language. So this has to give me what I need, right?<\/p><p>Wrong again.<\/p><p>As you probably have realized, the same language can be spoken by people from different countries, who might have different preferences when it comes to many things, such as<\/p><ul class=\"wp-block-list\"><li>Which day is considered the 1st day of the week (Sunday or Monday)?<\/li>\n\n<li>What abbreviation do you call the day of the week, month or quarters?<\/li>\n\n<li>What date format to use<\/li>\n\n<li>What character is used as the thousand delimiter (if at all)?<\/li>\n\n<li>Metric or Imperial?<\/li>\n\n<li>12h or 24h?<\/li>\n\n<li>And so many more\u2026<\/li><\/ul><p>There\u2019s so much nuance to locale settings. It\u2019s impossible to express all these nuances using a single value. What Claris listed in the documentation is a list of pre-configured settings that we could use as a template. But in my case, to restore my app\u2019s locale setting to exactly what it was, I must know what each setting used to be.<\/p><p>So how do I do that?<\/p><h2 class=\"wp-block-heading\" id=\"Extract-Locale-Settings-from-a-FileMaker-File-and-Save\" style=\"font-style:normal;font-weight:400\">Extract Locale Settings from a FileMaker File and Save<\/h2><p>There\u2019s an easy way to extract locale settings from an FM file. All I need to do is use the function <a href=\"https:\/\/help.claris.com\/en\/pro-help\/content\/get-filelocaleelements.html#:~:text=Returns%20a%20JSON%20object%20with%20information%20about%20the%20current%20file's%20locale.\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Get ( FileLocaleElements )<\/em><\/a><em> <\/em>on a backup of my original file to extract that file\u2019s locale setting.<\/p><p>Do not confuse the function <em>Get ( FileLocaleElements ) <\/em>with the function <em>Get ( SystemLocaleElements ). <\/em>I need the former because the target setting I want is in a file. If an operating system perfectly captures the target setting you need, use the latter to capture it.<\/p><p>When I use the function <em>Get ( FileLocaleElements ), <\/em>I get a JSON response. As we suspected, it contains a LOT of information:<\/p><pre class=\"wp-block-code\"><code>{\n\t\"APIVers\" : 1,\n\t\"Currency\" : \n\t{\n\t\t\"Leading\" : true,\n\t\t\"Symbol\" : \"$\"\n\t},\n\t\"Date\" : \n\t{\n\t\t\"DMQ\" : \n\t\t{\n\t\t\t\"1stDayOfWeek\" : 1,\n\t\t\t\"DaysOfWeek\" : \n\t\t\t{\n\t\t\t\t\"AbbrvList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"Sun\",\n\t\t\t\t\t\"Mon\",\n\t\t\t\t\t\"Tue\",\n\t\t\t\t\t\"Wed\",\n\t\t\t\t\t\"Thu\",\n\t\t\t\t\t\"Fri\",\n\t\t\t\t\t\"Sat\"\n\t\t\t\t],\n\t\t\t\t\"NameList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"Sunday\",\n\t\t\t\t\t\"Monday\",\n\t\t\t\t\t\"Tuesday\",\n\t\t\t\t\t\"Wednesday\",\n\t\t\t\t\t\"Thursday\",\n\t\t\t\t\t\"Friday\",\n\t\t\t\t\t\"Saturday\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"Months\" : \n\t\t\t{\n\t\t\t\t\"AbbrvList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"Jan\",\n\t\t\t\t\t\"Feb\",\n\t\t\t\t\t\"Mar\",\n\t\t\t\t\t\"Apr\",\n\t\t\t\t\t\"May\",\n\t\t\t\t\t\"Jun\",\n\t\t\t\t\t\"Jul\",\n\t\t\t\t\t\"Aug\",\n\t\t\t\t\t\"Sep\",\n\t\t\t\t\t\"Oct\",\n\t\t\t\t\t\"Nov\",\n\t\t\t\t\t\"Dec\"\n\t\t\t\t],\n\t\t\t\t\"NameList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"January\",\n\t\t\t\t\t\"February\",\n\t\t\t\t\t\"March\",\n\t\t\t\t\t\"April\",\n\t\t\t\t\t\"May\",\n\t\t\t\t\t\"June\",\n\t\t\t\t\t\"July\",\n\t\t\t\t\t\"August\",\n\t\t\t\t\t\"September\",\n\t\t\t\t\t\"October\",\n\t\t\t\t\t\"November\",\n\t\t\t\t\t\"December\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"Quarters\" : \n\t\t\t{\n\t\t\t\t\"AbbrvList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"Q1\",\n\t\t\t\t\t\"Q2\",\n\t\t\t\t\t\"Q3\",\n\t\t\t\t\t\"Q4\"\n\t\t\t\t],\n\t\t\t\t\"NameList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"1st Quarter\",\n\t\t\t\t\t\"2nd Quarter\",\n\t\t\t\t\t\"3rd Quarter\",\n\t\t\t\t\t\"4th Quarter\"\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t\"DateNums\" : \n\t\t{\n\t\t\t\"0d\" : true,\n\t\t\t\"0m\" : true,\n\t\t\t\"YYyy\" : true\n\t\t},\n\t\t\"DateOrderID\" : 2,\n\t\t\"DateOrderName\" : \"YMD\",\n\t\t\"Sep\" : \"-\",\n\t\t\"YMD\" : \n\t\t{\n\t\t\t\"ElementArray\" : \n\t\t\t{\n\t\t\t\t\"NameList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"M-$\",\n\t\t\t\t\t\"YYYY#\"\n\t\t\t\t],\n\t\t\t\t\"SepList\" : \n\t\t\t\t&#91;\n\t\t\t\t\t\"-\",\n\t\t\t\t\t\"-\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"MustUseLocalesSep\" : false\n\t\t}\n\t},\n\t\"LocaleID\" : \n\t{\n\t\t\"IDNum\" : 21,\n\t\t\"IDStr\" : \"English\",\n\t\t\"ISOLangCode\" : \"en\",\n\t\t\"LID\" : \"English\",\n\t\t\"Name\" : \"English\"\n\t},\n\t\"Misc\" : \n\t{\n\t\t\"Active\" : false,\n\t\t\"Metric\" : true\n\t},\n\t\"Num\" : \n\t{\n\t\t\"1000s\" : \"&nbsp;\",\n\t\t\"Decimal\" : \".\",\n\t\t\"Lead0\" : true\n\t},\n\t\"Text\" : \n\t{\n\t\t\"SQuotLead\" : \"\u201c\",\n\t\t\"SQuotTrail\" : \"\u201d\",\n\t\t\"Sep\" : \"&nbsp;\"\n\t},\n\t\"Time\" : \n\t{\n\t\t\"12h\" : false,\n\t\t\"HMS\" : \n\t\t{\n\t\t\t\"0h\" : true,\n\t\t\t\"24h\" : \"\",\n\t\t\t\"Seconds\" : false\n\t\t},\n\t\t\"NightDay\" : \n\t\t{\n\t\t\t\"12hSuffix\" : true,\n\t\t\t\"amStr\" : \"\",\n\t\t\t\"pmStr\" : \"\"\n\t\t},\n\t\t\"Sep\" : \":\"\n\t}\n}<\/code><\/pre><p>To capture it, copy and paste this JSON into a text file and save it. Let\u2019s say I named this file <em>target_locale_setting.txt<\/em>.<\/p><h2 class=\"wp-block-heading\" id=\"Apply-Locale-Settings-Using-the-Saved-Extract\" style=\"font-style:normal;font-weight:400\">Apply Locale Settings Using the Saved Extract<\/h2><p>Now that I have extracted the settings from my original FM app and captured them in <em>target_locale_setting.txt<\/em>, I want to apply them to my new FM app.<\/p><p>To do so, I need to use the FM DMT with the <em>-target _locale<\/em> parameter again. If you need help learning the basics of FM DMT, check out our <a href=\"https:\/\/youtu.be\/srEVtB4wdk0?si=hbD1dzcEpvl2oS3D\" target=\"_blank\" rel=\"noreferrer noopener\">tutorial video<\/a>.<\/p><p>This time, rather than specifying the value \u201cSystem\u201d or using any of the supported language values, I specified a file path pointing to <em>target_locale_setting.txt<\/em> that contains the desired settings. Something like this:<\/p><pre class=\"wp-block-code\"><code>FMDataMigration -src_path &lt;my source file path&gt;\n -src_account &lt;my source file account&gt;\n -src_pwd &lt;my source file password&gt;\n -clone_path &lt;my clone file path&gt;\n -clone_account &lt;my clone file account&gt;\n -clone_pwd &lt;my clone file password&gt;\n -target_path &lt;my target file path&gt;\n -target_locale \"C:\\DMT\\target_locale_setting.txt\"<\/code><\/pre><p>This tells the FM DMT instead of using the operating system\u2019s setting or any of the pre-configured settings, use the exact settings specified in the .txt file that I specified. Given the .txt file contains the locale settings from my original app, this will essentially copy that setting into the new app.<\/p><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\" id=\"Conclusion\">Conclusion<\/h3><p>As convenient as the ability to specify the target locale with FM DMT is, it\u2019s certainly an intricate feature that should be used with caution (don\u2019t make the same mistake I did). Know that your FM app\u2019s locale setting is a collection of many attributes that can be extracted using the <em>Get ( FileLocaleElements ) <\/em>function. In addition, with FM DMT, besides all the pre-configured settings (represented by languages), you can specify the exact locale settings in the JSON format using a text file.<\/p><p>If you have more questions about FileMaker data migration or FileMaker deployments, please contact us.<\/p>","protected":false},"excerpt":{"rendered":"<p>Oops, I Messed Up the Locale Settings of My App A few weeks ago, I used the latest version of the FileMaker Data Migration Tool (FM DMT) to do a deployment. As a chaos monkey myself, I added the -target_locale parameter to my command line and set it to \u201cSystem\u201d and thought it would keep &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.directimpactsolutions.com\/en\/how-to-copy-locale-settings-from-one-filemaker-app-to-another\/\"> <span class=\"screen-reader-text\">How to Copy Locale Settings from One FileMaker App to Another<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":11,"featured_media":15922,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","footnotes":""},"categories":[29],"tags":[],"class_list":["post-15921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-low-code"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",601,495,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3-150x150.png",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3-300x247.png",300,247,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",601,495,false],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",601,495,false],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",601,495,false],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",601,495,false],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3-300x300.png",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3.png",600,494,false],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/5c09be9c-3cf2-4c98-9c65-b952ff3382b3-100x100.png",100,100,true]},"uagb_author_info":{"display_name":"Weihao Ding","author_link":"https:\/\/www.directimpactsolutions.com\/en\/author\/weihao-dingdirectimpactsolutions-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Oops, I Messed Up the Locale Settings of My App A few weeks ago, I used the latest version of the FileMaker Data Migration Tool (FM DMT) to do a deployment. As a chaos monkey myself, I added the -target_locale parameter to my command line and set it to \u201cSystem\u201d and thought it would keep&hellip;","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/15921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/comments?post=15921"}],"version-history":[{"count":2,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/15921\/revisions"}],"predecessor-version":[{"id":19984,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/15921\/revisions\/19984"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/media\/15922"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/media?parent=15921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/categories?post=15921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/tags?post=15921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}