Comment copier les paramètres régionaux d’une application FileMaker vers une autre?

Oups, j’ai mal configuré les paramètres régionaux de mon application

Il y a quelques semaines, j’ai utilisé la dernière version de FileMaker Data Migration Tool (FM DMT) pour effectuer un déploiement. Étant quelqu’un qui aime introduire des facteurs inconnus dans les choses, j’ai ajouté le paramètre -target_locale à ma ligne de commande et l’ai défini sur « System », pensant que les paramètres régionaux resteraient inchangés.

Quelle erreur… Il s’est avéré que la valeur « System » ne signifie pas que les paramètres linguistiques restent les mêmes. Il s’agit d’utiliser les paramètres régionaux du système d’ exploitation dans lequel la migration des données a lieu et de les attribuer au fichier cible. D’où le nom « System ». 🤦‍♂️

D’ailleurs, si vous ne voulez pas modifier vos paramètres régionaux pendant la migration des données, n’utilisez pas le paramètre -target_locale dans votre commande FM DMT.

Quoi qu’il en soit, je me suis trompé. Comment puis-je maintenant rétablir les paramètres régionaux de mon fichier ?

Les paramètres régionaux contiennent plus d’un attribut

Lors de la sortie de FileMaker 19.5, Claris a apporté une amélioration à FM DMT en permettant aux développeurs d’utiliser un nouveau paramètre -target_locale pour modifier les paramètres régionaux du fichier cible. Lorsque j’ai lu la documentation, j’ai vu une liste des valeurs prises en charge.

Valeurs prises en charge pour le paramètre target_locale

D’une certaine manière, cela m’a donné l’impression que le réglage linguistique n’est qu’un paramètre représenté par une seule valeur (Language).

J’ai donc immédiatement pensé à restaurer les paramètres régionaux de mon fichier en exécutant à nouveau le DMT. Mais cette fois, j’ai réglé le paramètre -target_locale sur « English ». Mon application s’adresse à des utilisateurs anglophones et s’exécute sur une machine dont la langue système est l’anglais. Cela devrait donc me donner ce dont j’ai besoin, n’est-ce pas ?

Encore une fois, c’est une erreur.

Comme vous l’avez probablement compris, la même langue peut être parlée par des personnes de différents pays, qui peuvent avoir des préférences différentes sur de nombreux points, tels que

  • Quel jour est considéré comme le premier jour de la semaine (dimanche ou lundi) ?
  • Quelle abréviation utilisez-vous pour désigner le jour de la semaine, le mois ou les trimestres ?
  • Quel format de date utiliser ?
  • Quel caractère est utilisé comme délimiteur de milliers (s’il y en a un) ?
  • Métrique ou impérial ?
  • 12h ou 24h ?
  • Et bien d’autres choses encore..

Il y a tellement de nuances dans les paramètres régionaux. Il est impossible d’exprimer toutes ces nuances à l’aide d’une seule valeur. Ce que Claris a listé dans la documentation est une liste de paramètres préconfigurés que nous pourrions utiliser comme modèle. Mais dans mon cas, pour restaurer de façon identique les paramètres régionaux de mon application, je dois savoir ce que chaque paramètre était auparavant.

Comment faire ?

Extraire les paramètres régionaux d’un fichier FileMaker et les enregistrer

Il existe un moyen simple d’extraire les paramètres régionaux d’un fichier FM. Il me suffit d’utiliser la fonction Get ( FileLocaleElements ) sur une sauvegarde de mon fichier original pour extraire les paramètres régionaux de ce fichier.

Ne confondez pas la fonction Get ( FileLocaleElements) avec la fonction Get ( SystemLocaleElements). J’ai besoin de la première parce que le paramètre cible que je souhaite obtenir se trouve dans un fichier. Si un système d’exploitation capture parfaitement le paramètre cible dont vous avez besoin, utilisez la seconde pour le capturer.

Lorsque j’utilise la fonction Get ( FileLocaleElements ), j’obtiens une réponse JSON. Comme nous nous en doutions, elle contient BEAUCOUP d’informations.

{
	"APIVers" : 1,
	"Currency" : 
	{
		"Leading" : true,
		"Symbol" : "$"
	},
	"Date" : 
	{
		"DMQ" : 
		{
			"1stDayOfWeek" : 1,
			"DaysOfWeek" : 
			{
				"AbbrvList" : 
				[
					"Sun",
					"Mon",
					"Tue",
					"Wed",
					"Thu",
					"Fri",
					"Sat"
				],
				"NameList" : 
				[
					"Sunday",
					"Monday",
					"Tuesday",
					"Wednesday",
					"Thursday",
					"Friday",
					"Saturday"
				]
			},
			"Months" : 
			{
				"AbbrvList" : 
				[
					"Jan",
					"Feb",
					"Mar",
					"Apr",
					"May",
					"Jun",
					"Jul",
					"Aug",
					"Sep",
					"Oct",
					"Nov",
					"Dec"
				],
				"NameList" : 
				[
					"January",
					"February",
					"March",
					"April",
					"May",
					"June",
					"July",
					"August",
					"September",
					"October",
					"November",
					"December"
				]
			},
			"Quarters" : 
			{
				"AbbrvList" : 
				[
					"Q1",
					"Q2",
					"Q3",
					"Q4"
				],
				"NameList" : 
				[
					"1st Quarter",
					"2nd Quarter",
					"3rd Quarter",
					"4th Quarter"
				]
			}
		},
		"DateNums" : 
		{
			"0d" : true,
			"0m" : true,
			"YYyy" : true
		},
		"DateOrderID" : 2,
		"DateOrderName" : "YMD",
		"Sep" : "-",
		"YMD" : 
		{
			"ElementArray" : 
			{
				"NameList" : 
				[
					"M-$",
					"YYYY#"
				],
				"SepList" : 
				[
					"-",
					"-"
				]
			},
			"MustUseLocalesSep" : false
		}
	},
	"LocaleID" : 
	{
		"IDNum" : 21,
		"IDStr" : "English",
		"ISOLangCode" : "en",
		"LID" : "English",
		"Name" : "English"
	},
	"Misc" : 
	{
		"Active" : false,
		"Metric" : true
	},
	"Num" : 
	{
		"1000s" : " ",
		"Decimal" : ".",
		"Lead0" : true
	},
	"Text" : 
	{
		"SQuotLead" : "“",
		"SQuotTrail" : "”",
		"Sep" : " "
	},
	"Time" : 
	{
		"12h" : false,
		"HMS" : 
		{
			"0h" : true,
			"24h" : "",
			"Seconds" : false
		},
		"NightDay" : 
		{
			"12hSuffix" : true,
			"amStr" : "",
			"pmStr" : ""
		},
		"Sep" : ":"
	}
}

Pour la capturer, copiez et collez cette réponse JSON dans un fichier texte et enregistrez-la. Disons que j’ai nommé ce fichier target_locale_setting.txt.

Appliquer les paramètres régionaux à l’aide de l’extraction sauvegardé

Maintenant que j’ai extrait les paramètres de mon application FM d’origine et que je les ai capturés dans target_locale_setting.txt, je veux les appliquer à ma nouvelle application FM.

Pour ce faire, je dois utiliser le DMT de FM avec le paramètre -target _locale. Si vous avez besoin d’aide pour apprendre les bases de FM DMT, consultez notre vidéo tutorielle.

Cette fois, au lieu de spécifier la valeur « System » ou d’utiliser l’une des valeurs linguistiques prises en charge, j’ai spécifié un chemin d’accès au fichier target_locale_setting.txt qui contient les paramètres souhaités. Voici ce que cela donne :

FMDataMigration -src_path <my source file path>
 -src_account <my source file account>
 -src_pwd <my source file password>
 -clone_path <my clone file path>
 -clone_account <my clone file account>
 -clone_pwd <my clone file password>
 -target_path <my target file path>
 -target_locale "C:\DMT\target_locale_setting.txt"

Cela indique au FM DMT qu’au lieu d’utiliser les paramètres du système d’exploitation ou l’un des paramètres préconfigurés, il doit utiliser les paramètres exacts spécifiés dans le fichier .txt que j’ai indiqué. Etant donné que le fichier .txt contient les paramètres régionaux de mon application d’origine, cela copiera essentiellement ces paramètres dans la nouvelle application.

Conclusion

Aussi pratique que soit la possibilité de spécifier un paramètre linguistique cible avec FM DMT, il s’agit certainement d’une fonctionnalité complexe qui doit être utilisée avec prudence (ne faites pas la même erreur que moi). Sachez que le réglage des paramètres régionaux de votre application FM est une collection de nombreux attributs qui peuvent être extraits à l’aide de la fonction Get ( FileLocaleElements ). De plus, avec FM DMT, en plus de tous les paramètres préconfigurés (représentés par les langues), vous pouvez spécifier les paramètres régionaux exacts au format JSON à l’aide d’un fichier texte.

Si vous avez d’autres questions sur la migration de données FileMaker ou les déploiements FileMaker, veuillez nous contacter.