semantic-link-labs 0.6.0__py3-none-any.whl → 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of semantic-link-labs might be problematic. Click here for more details.

Files changed (103) hide show
  1. semantic_link_labs-0.7.0.dist-info/METADATA +148 -0
  2. semantic_link_labs-0.7.0.dist-info/RECORD +111 -0
  3. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/WHEEL +1 -1
  4. sempy_labs/__init__.py +26 -2
  5. sempy_labs/_ai.py +3 -65
  6. sempy_labs/_bpa_translation/_translations_am-ET.po +828 -0
  7. sempy_labs/_bpa_translation/_translations_ar-AE.po +860 -0
  8. sempy_labs/_bpa_translation/_translations_cs-CZ.po +894 -0
  9. sempy_labs/_bpa_translation/_translations_da-DK.po +894 -0
  10. sempy_labs/_bpa_translation/_translations_de-DE.po +933 -0
  11. sempy_labs/_bpa_translation/_translations_el-GR.po +936 -0
  12. sempy_labs/_bpa_translation/_translations_es-ES.po +915 -0
  13. sempy_labs/_bpa_translation/_translations_fa-IR.po +883 -0
  14. sempy_labs/_bpa_translation/_translations_fr-FR.po +938 -0
  15. sempy_labs/_bpa_translation/_translations_ga-IE.po +912 -0
  16. sempy_labs/_bpa_translation/_translations_he-IL.po +855 -0
  17. sempy_labs/_bpa_translation/_translations_hi-IN.po +892 -0
  18. sempy_labs/_bpa_translation/_translations_hu-HU.po +910 -0
  19. sempy_labs/_bpa_translation/_translations_is-IS.po +887 -0
  20. sempy_labs/_bpa_translation/_translations_it-IT.po +931 -0
  21. sempy_labs/_bpa_translation/_translations_ja-JP.po +805 -0
  22. sempy_labs/_bpa_translation/_translations_nl-NL.po +924 -0
  23. sempy_labs/_bpa_translation/_translations_pl-PL.po +913 -0
  24. sempy_labs/_bpa_translation/_translations_pt-BR.po +909 -0
  25. sempy_labs/_bpa_translation/_translations_pt-PT.po +904 -0
  26. sempy_labs/_bpa_translation/_translations_ru-RU.po +909 -0
  27. sempy_labs/_bpa_translation/_translations_ta-IN.po +922 -0
  28. sempy_labs/_bpa_translation/_translations_te-IN.po +896 -0
  29. sempy_labs/_bpa_translation/_translations_th-TH.po +873 -0
  30. sempy_labs/_bpa_translation/_translations_zh-CN.po +767 -0
  31. sempy_labs/_bpa_translation/_translations_zu-ZA.po +916 -0
  32. sempy_labs/_clear_cache.py +9 -4
  33. sempy_labs/_generate_semantic_model.py +30 -56
  34. sempy_labs/_helper_functions.py +358 -14
  35. sempy_labs/_icons.py +10 -1
  36. sempy_labs/_list_functions.py +478 -237
  37. sempy_labs/_model_bpa.py +194 -18
  38. sempy_labs/_model_bpa_bulk.py +363 -0
  39. sempy_labs/_model_bpa_rules.py +4 -4
  40. sempy_labs/_model_dependencies.py +12 -10
  41. sempy_labs/_one_lake_integration.py +7 -7
  42. sempy_labs/_query_scale_out.py +45 -66
  43. sempy_labs/_refresh_semantic_model.py +7 -0
  44. sempy_labs/_translations.py +154 -1
  45. sempy_labs/_vertipaq.py +103 -90
  46. sempy_labs/directlake/__init__.py +5 -1
  47. sempy_labs/directlake/_directlake_schema_compare.py +27 -31
  48. sempy_labs/directlake/_directlake_schema_sync.py +55 -66
  49. sempy_labs/directlake/_dl_helper.py +233 -0
  50. sempy_labs/directlake/_get_directlake_lakehouse.py +6 -7
  51. sempy_labs/directlake/_get_shared_expression.py +1 -1
  52. sempy_labs/directlake/_guardrails.py +17 -13
  53. sempy_labs/directlake/_update_directlake_partition_entity.py +54 -30
  54. sempy_labs/directlake/_warm_cache.py +1 -1
  55. sempy_labs/lakehouse/_get_lakehouse_tables.py +61 -69
  56. sempy_labs/lakehouse/_lakehouse.py +3 -2
  57. sempy_labs/lakehouse/_shortcuts.py +1 -1
  58. sempy_labs/migration/_create_pqt_file.py +174 -182
  59. sempy_labs/migration/_migrate_calctables_to_lakehouse.py +236 -268
  60. sempy_labs/migration/_migrate_calctables_to_semantic_model.py +75 -73
  61. sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +442 -426
  62. sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +91 -97
  63. sempy_labs/migration/_refresh_calc_tables.py +92 -101
  64. sempy_labs/report/_BPAReportTemplate.json +232 -0
  65. sempy_labs/report/__init__.py +6 -2
  66. sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +9 -0
  67. sempy_labs/report/_bpareporttemplate/.platform +11 -0
  68. sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +710 -0
  69. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +11 -0
  70. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +191 -0
  71. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +438 -0
  72. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +127 -0
  73. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +576 -0
  74. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +207 -0
  75. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +506 -0
  76. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +127 -0
  77. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +513 -0
  78. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +8 -0
  79. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +112 -0
  80. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +11 -0
  81. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +513 -0
  82. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +352 -0
  83. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +37 -0
  84. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +542 -0
  85. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +221 -0
  86. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +127 -0
  87. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +576 -0
  88. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +127 -0
  89. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +9 -0
  90. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +38 -0
  91. sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +10 -0
  92. sempy_labs/report/_bpareporttemplate/definition/report.json +176 -0
  93. sempy_labs/report/_bpareporttemplate/definition/version.json +4 -0
  94. sempy_labs/report/_bpareporttemplate/definition.pbir +14 -0
  95. sempy_labs/report/_generate_report.py +255 -139
  96. sempy_labs/report/_report_functions.py +26 -33
  97. sempy_labs/report/_report_rebind.py +31 -26
  98. sempy_labs/tom/_model.py +75 -58
  99. semantic_link_labs-0.6.0.dist-info/METADATA +0 -22
  100. semantic_link_labs-0.6.0.dist-info/RECORD +0 -54
  101. sempy_labs/directlake/_fallback.py +0 -60
  102. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/LICENSE +0 -0
  103. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,938 @@
1
+ #
2
+ msgid ""
3
+ msgstr ""
4
+ "Language: fr-FR\n"
5
+ "MIME-Version: 1.0\n"
6
+ "Content-Type: text/plain; charset=UTF-8\n"
7
+ "Content-Transfer-Encoding: 8bit\n"
8
+
9
+ # rule_name
10
+ msgid "Do not use floating point data types"
11
+ msgstr "Ne pas utiliser de types de données à virgule flottante"
12
+
13
+ # rule_name
14
+ msgid "Avoid using calculated columns"
15
+ msgstr "Évitez d’utiliser des colonnes calculées"
16
+
17
+ # rule_name
18
+ msgid "Check if bi-directional and many-to-many relationships are valid"
19
+ msgstr ""
20
+ "Vérifiez si les relations bidirectionnelles et plusieurs-à-plusieurs sont "
21
+ "valides"
22
+
23
+ # rule_name
24
+ msgid "Check if dynamic row level security (RLS) is necessary"
25
+ msgstr ""
26
+ "Vérifiez si la sécurité dynamique au niveau des lignes (RLS) est nécessaire"
27
+
28
+ # rule_name
29
+ msgid ""
30
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
31
+ "security"
32
+ msgstr ""
33
+ "Évitez d’utiliser des relations plusieurs-à-plusieurs sur les tables "
34
+ "utilisées pour la sécurité dynamique au niveau des lignes"
35
+
36
+ # rule_name
37
+ msgid "Many-to-many relationships should be single-direction"
38
+ msgstr "Les relations plusieurs-à-plusieurs doivent être unidirectionnelles"
39
+
40
+ # rule_name
41
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
42
+ msgstr "Définir IsAvailableInMdx à false sur les colonnes sans attributs"
43
+
44
+ # rule_name
45
+ msgid ""
46
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
47
+ "hybrid table"
48
+ msgstr ""
49
+ "Définir la propriété « Définition de la couverture des données » sur la "
50
+ "partition DirectQuery d’une table hybride"
51
+
52
+ # rule_name
53
+ msgid ""
54
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
55
+ "on fact tables"
56
+ msgstr ""
57
+ "Définir les tables de dimensions en mode double au lieu de l’importation "
58
+ "lors de l’utilisation de DirectQuery sur des tables de faits"
59
+
60
+ # rule_name
61
+ msgid "Minimize Power Query transformations"
62
+ msgstr "Réduire les transformations Power Query"
63
+
64
+ # rule_name
65
+ msgid "Consider a star-schema instead of a snowflake architecture"
66
+ msgstr ""
67
+ "Considérez un schéma en étoile au lieu d’une architecture en forme de flocon"
68
+ " de neige"
69
+
70
+ # rule_name
71
+ msgid "Avoid using views when using Direct Lake mode"
72
+ msgstr "Évitez d’utiliser des vues lors de l’utilisation du mode Direct Lake"
73
+
74
+ # rule_name
75
+ msgid "Avoid adding 0 to a measure"
76
+ msgstr "Évitez d’ajouter 0 à une mesure"
77
+
78
+ # rule_name
79
+ msgid "Reduce usage of calculated tables"
80
+ msgstr "Réduire l’utilisation des tables calculées"
81
+
82
+ # rule_name
83
+ msgid "Reduce usage of calculated columns that use the RELATED function"
84
+ msgstr ""
85
+ "Réduire l’utilisation des colonnes calculées qui utilisent la fonction "
86
+ "RELATED"
87
+
88
+ # rule_name
89
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
90
+ msgstr ""
91
+ "Évitez les relations bidirectionnelles ou plusieurs-à-plusieurs excessives"
92
+
93
+ # rule_name
94
+ msgid "Remove auto-date table"
95
+ msgstr "Supprimer la table de date automatique"
96
+
97
+ # rule_name
98
+ msgid "Date/calendar tables should be marked as a date table"
99
+ msgstr ""
100
+ "Les tables de dates/calendriers doivent être marquées comme une table de "
101
+ "dates"
102
+
103
+ # rule_name
104
+ msgid "Large tables should be partitioned"
105
+ msgstr "Les tables volumineuses doivent être partitionnées"
106
+
107
+ # rule_name
108
+ msgid "Limit row level security (RLS) logic"
109
+ msgstr "Logique de sécurité au niveau des lignes (RLS) limitée"
110
+
111
+ # rule_name
112
+ msgid "Model should have a date table"
113
+ msgstr "Le modèle doit avoir une table de dates"
114
+
115
+ # rule_name
116
+ msgid "Calculation items must have an expression"
117
+ msgstr "Les éléments de calcul doivent avoir une expression"
118
+
119
+ # rule_name
120
+ msgid "Relationship columns should be of the same data type"
121
+ msgstr "Les colonnes de relation doivent être du même type de données"
122
+
123
+ # rule_name
124
+ msgid "Data columns must have a source column"
125
+ msgstr "Les colonnes de données doivent avoir une colonne source"
126
+
127
+ # rule_name
128
+ msgid "Set IsAvailableInMdx to true on necessary columns"
129
+ msgstr "Définissez IsAvailableInMdx à true sur les colonnes nécessaires"
130
+
131
+ # rule_name
132
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
133
+ msgstr "Évitez la fonction USERELATIONSHIP et la RLS sur la même table"
134
+
135
+ # rule_name
136
+ msgid "Avoid using the IFERROR function"
137
+ msgstr "Évitez d’utiliser la fonction IFERROR"
138
+
139
+ # rule_name
140
+ msgid ""
141
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
142
+ msgstr ""
143
+ "Utiliser la fonction TREATAS au lieu de INTERSECT pour les relations "
144
+ "virtuelles"
145
+
146
+ # rule_name
147
+ msgid "The EVALUATEANDLOG function should not be used in production models"
148
+ msgstr ""
149
+ "La fonction EVALUATEANDLOG ne doit pas être utilisée dans les modèles de "
150
+ "production"
151
+
152
+ # rule_name
153
+ msgid "Measures should not be direct references of other measures"
154
+ msgstr ""
155
+ "Les mesures ne devraient pas être des références directes à d’autres mesures"
156
+
157
+ # rule_name
158
+ msgid "No two measures should have the same definition"
159
+ msgstr "Il n’y a pas deux mesures qui devraient avoir la même définition"
160
+
161
+ # rule_name
162
+ msgid ""
163
+ "Avoid addition or subtraction of constant values to results of divisions"
164
+ msgstr ""
165
+ "Éviter l’addition ou la soustraction de valeurs constantes aux résultats des"
166
+ " divisions"
167
+
168
+ # rule_name
169
+ msgid "Avoid using '1-(x/y)' syntax"
170
+ msgstr "Évitez d’utiliser la syntaxe '1-(x/y)'"
171
+
172
+ # rule_name
173
+ msgid "Filter measure values by columns, not tables"
174
+ msgstr "Filtrez les valeurs de mesure par colonnes, et non par tables"
175
+
176
+ # rule_name
177
+ msgid "Filter column values with proper syntax"
178
+ msgstr "Filtrer les valeurs de colonne avec la syntaxe appropriée"
179
+
180
+ # rule_name
181
+ msgid "Use the DIVIDE function for division"
182
+ msgstr "Utiliser la fonction DIVIDE pour la division"
183
+
184
+ # rule_name
185
+ msgid "Column references should be fully qualified"
186
+ msgstr "Les références de colonne doivent être entièrement qualifiées"
187
+
188
+ # rule_name
189
+ msgid "Measure references should be unqualified"
190
+ msgstr "Les références de mesure ne doivent pas être qualifiées"
191
+
192
+ # rule_name
193
+ msgid "Inactive relationships that are never activated"
194
+ msgstr "Relations inactives qui ne sont jamais activées"
195
+
196
+ # rule_name
197
+ msgid "Remove unnecessary columns"
198
+ msgstr "Supprimer les colonnes inutiles"
199
+
200
+ # rule_name
201
+ msgid "Remove unnecessary measures"
202
+ msgstr "Supprimer les mesures inutiles"
203
+
204
+ # rule_name
205
+ msgid "Ensure tables have relationships"
206
+ msgstr "S’assurer que les tables ont des relations"
207
+
208
+ # rule_name
209
+ msgid "Calculation groups with no calculation items"
210
+ msgstr "Groupes de calcul sans éléments de calcul"
211
+
212
+ # rule_name
213
+ msgid "Visible objects with no description"
214
+ msgstr "Objets visibles sans description"
215
+
216
+ # rule_name
217
+ msgid "Provide format string for 'Date' columns"
218
+ msgstr "Fournir une chaîne de format pour les colonnes 'Date'"
219
+
220
+ # rule_name
221
+ msgid "Do not summarize numeric columns"
222
+ msgstr "Ne pas résumer les colonnes numériques"
223
+
224
+ # rule_name
225
+ msgid "Provide format string for measures"
226
+ msgstr "Fournir une chaîne de format pour les mesures"
227
+
228
+ # rule_name
229
+ msgid "Add data category for columns"
230
+ msgstr "Ajouter une catégorie de données pour les colonnes"
231
+
232
+ # rule_name
233
+ msgid ""
234
+ "Percentages should be formatted with thousands separators and 1 decimal"
235
+ msgstr ""
236
+ "Les pourcentages doivent être formatés avec des milliers de séparateurs et 1"
237
+ " décimale"
238
+
239
+ # rule_name
240
+ msgid ""
241
+ "Whole numbers should be formatted with thousands separators and no decimals"
242
+ msgstr ""
243
+ "Les nombres entiers doivent être formatés avec des milliers de séparateurs "
244
+ "et sans décimales"
245
+
246
+ # rule_name
247
+ msgid "Hide foreign keys"
248
+ msgstr "Masquer les clés étrangères"
249
+
250
+ # rule_name
251
+ msgid "Mark primary keys"
252
+ msgstr "Marquer les clés primaires"
253
+
254
+ # rule_name
255
+ msgid "Month (as a string) must be sorted"
256
+ msgstr "Le mois (sous forme de chaîne) doit être trié"
257
+
258
+ # rule_name
259
+ msgid "Relationship columns should be of integer data type"
260
+ msgstr "Les colonnes de relation doivent être de type entier"
261
+
262
+ # rule_name
263
+ msgid "Provide format string for \"Month\" columns"
264
+ msgstr "Fournir une chaîne de format pour les colonnes « Mois »"
265
+
266
+ # rule_name
267
+ msgid "Format flag columns as Yes/No value strings"
268
+ msgstr ""
269
+ "Formater les colonnes d’indicateur en tant que chaînes de valeur Oui/Non"
270
+
271
+ # rule_name
272
+ msgid "Objects should not start or end with a space"
273
+ msgstr "Les objets ne doivent pas commencer ou se terminer par un espace"
274
+
275
+ # rule_name
276
+ msgid "First letter of objects must be capitalized"
277
+ msgstr "La première lettre des objets doit être en majuscule"
278
+
279
+ # rule_name
280
+ msgid "Object names must not contain special characters"
281
+ msgstr "Les noms d’objet ne doivent pas contenir de caractères spéciaux"
282
+
283
+ # category
284
+ msgid "Do not use floating point data types"
285
+ msgstr "Performance"
286
+
287
+ # category
288
+ msgid "Avoid using calculated columns"
289
+ msgstr "Performance"
290
+
291
+ # category
292
+ msgid "Check if bi-directional and many-to-many relationships are valid"
293
+ msgstr "Performance"
294
+
295
+ # category
296
+ msgid "Check if dynamic row level security (RLS) is necessary"
297
+ msgstr "Performance"
298
+
299
+ # category
300
+ msgid ""
301
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
302
+ "security"
303
+ msgstr "Performance"
304
+
305
+ # category
306
+ msgid "Many-to-many relationships should be single-direction"
307
+ msgstr "Performance"
308
+
309
+ # category
310
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
311
+ msgstr "Performance"
312
+
313
+ # category
314
+ msgid ""
315
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
316
+ "hybrid table"
317
+ msgstr "Performance"
318
+
319
+ # category
320
+ msgid ""
321
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
322
+ "on fact tables"
323
+ msgstr "Performance"
324
+
325
+ # category
326
+ msgid "Minimize Power Query transformations"
327
+ msgstr "Performance"
328
+
329
+ # category
330
+ msgid "Consider a star-schema instead of a snowflake architecture"
331
+ msgstr "Performance"
332
+
333
+ # category
334
+ msgid "Avoid using views when using Direct Lake mode"
335
+ msgstr "Performance"
336
+
337
+ # category
338
+ msgid "Avoid adding 0 to a measure"
339
+ msgstr "Performance"
340
+
341
+ # category
342
+ msgid "Reduce usage of calculated tables"
343
+ msgstr "Performance"
344
+
345
+ # category
346
+ msgid "Reduce usage of calculated columns that use the RELATED function"
347
+ msgstr "Performance"
348
+
349
+ # category
350
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
351
+ msgstr "Performance"
352
+
353
+ # category
354
+ msgid "Remove auto-date table"
355
+ msgstr "Performance"
356
+
357
+ # category
358
+ msgid "Date/calendar tables should be marked as a date table"
359
+ msgstr "Performance"
360
+
361
+ # category
362
+ msgid "Large tables should be partitioned"
363
+ msgstr "Performance"
364
+
365
+ # category
366
+ msgid "Limit row level security (RLS) logic"
367
+ msgstr "Performance"
368
+
369
+ # category
370
+ msgid "Model should have a date table"
371
+ msgstr "Performance"
372
+
373
+ # category
374
+ msgid "Calculation items must have an expression"
375
+ msgstr "Prévention des erreurs"
376
+
377
+ # category
378
+ msgid "Relationship columns should be of the same data type"
379
+ msgstr "Prévention des erreurs"
380
+
381
+ # category
382
+ msgid "Data columns must have a source column"
383
+ msgstr "Prévention des erreurs"
384
+
385
+ # category
386
+ msgid "Set IsAvailableInMdx to true on necessary columns"
387
+ msgstr "Prévention des erreurs"
388
+
389
+ # category
390
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
391
+ msgstr "Prévention des erreurs"
392
+
393
+ # category
394
+ msgid "Avoid using the IFERROR function"
395
+ msgstr "DAX Expressions"
396
+
397
+ # category
398
+ msgid ""
399
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
400
+ msgstr "DAX Expressions"
401
+
402
+ # category
403
+ msgid "The EVALUATEANDLOG function should not be used in production models"
404
+ msgstr "DAX Expressions"
405
+
406
+ # category
407
+ msgid "Measures should not be direct references of other measures"
408
+ msgstr "DAX Expressions"
409
+
410
+ # category
411
+ msgid "No two measures should have the same definition"
412
+ msgstr "DAX Expressions"
413
+
414
+ # category
415
+ msgid ""
416
+ "Avoid addition or subtraction of constant values to results of divisions"
417
+ msgstr "DAX Expressions"
418
+
419
+ # category
420
+ msgid "Avoid using '1-(x/y)' syntax"
421
+ msgstr "DAX Expressions"
422
+
423
+ # category
424
+ msgid "Filter measure values by columns, not tables"
425
+ msgstr "DAX Expressions"
426
+
427
+ # category
428
+ msgid "Filter column values with proper syntax"
429
+ msgstr "DAX Expressions"
430
+
431
+ # category
432
+ msgid "Use the DIVIDE function for division"
433
+ msgstr "DAX Expressions"
434
+
435
+ # category
436
+ msgid "Column references should be fully qualified"
437
+ msgstr "DAX Expressions"
438
+
439
+ # category
440
+ msgid "Measure references should be unqualified"
441
+ msgstr "DAX Expressions"
442
+
443
+ # category
444
+ msgid "Inactive relationships that are never activated"
445
+ msgstr "DAX Expressions"
446
+
447
+ # category
448
+ msgid "Remove unnecessary columns"
449
+ msgstr "Entretien"
450
+
451
+ # category
452
+ msgid "Remove unnecessary measures"
453
+ msgstr "Entretien"
454
+
455
+ # category
456
+ msgid "Ensure tables have relationships"
457
+ msgstr "Entretien"
458
+
459
+ # category
460
+ msgid "Calculation groups with no calculation items"
461
+ msgstr "Entretien"
462
+
463
+ # category
464
+ msgid "Visible objects with no description"
465
+ msgstr "Entretien"
466
+
467
+ # category
468
+ msgid "Provide format string for 'Date' columns"
469
+ msgstr "Formatage"
470
+
471
+ # category
472
+ msgid "Do not summarize numeric columns"
473
+ msgstr "Formatage"
474
+
475
+ # category
476
+ msgid "Provide format string for measures"
477
+ msgstr "Formatage"
478
+
479
+ # category
480
+ msgid "Add data category for columns"
481
+ msgstr "Formatage"
482
+
483
+ # category
484
+ msgid ""
485
+ "Percentages should be formatted with thousands separators and 1 decimal"
486
+ msgstr "Formatage"
487
+
488
+ # category
489
+ msgid ""
490
+ "Whole numbers should be formatted with thousands separators and no decimals"
491
+ msgstr "Formatage"
492
+
493
+ # category
494
+ msgid "Hide foreign keys"
495
+ msgstr "Formatage"
496
+
497
+ # category
498
+ msgid "Mark primary keys"
499
+ msgstr "Formatage"
500
+
501
+ # category
502
+ msgid "Month (as a string) must be sorted"
503
+ msgstr "Formatage"
504
+
505
+ # category
506
+ msgid "Relationship columns should be of integer data type"
507
+ msgstr "Formatage"
508
+
509
+ # category
510
+ msgid "Provide format string for \"Month\" columns"
511
+ msgstr "Formatage"
512
+
513
+ # category
514
+ msgid "Format flag columns as Yes/No value strings"
515
+ msgstr "Formatage"
516
+
517
+ # category
518
+ msgid "Objects should not start or end with a space"
519
+ msgstr "Formatage"
520
+
521
+ # category
522
+ msgid "First letter of objects must be capitalized"
523
+ msgstr "Formatage"
524
+
525
+ # category
526
+ msgid "Object names must not contain special characters"
527
+ msgstr "Conventions de nommage"
528
+
529
+ # description
530
+ msgid "Do not use floating point data types"
531
+ msgstr ""
532
+ "Le type de données à virgule flottante « Double » doit être évité, car il "
533
+ "peut entraîner des erreurs d’arrondi imprévisibles et une diminution des "
534
+ "performances dans certains scénarios. Utilisez « Int64 » ou « Decimal » le "
535
+ "cas échéant (mais notez que « Decimal » est limité à 4 chiffres après le "
536
+ "signe décimal)."
537
+
538
+ # description
539
+ msgid "Avoid using calculated columns"
540
+ msgstr ""
541
+ "Les colonnes calculées ne sont pas compressées aussi bien que les colonnes "
542
+ "de données, elles occupent donc plus de mémoire. Ils ralentissent également "
543
+ "les temps de traitement de la table et du recalcul du processus. Déchargez "
544
+ "la logique de colonnes calculées dans votre entrepôt de données et "
545
+ "transformez ces colonnes calculées en colonnes de données."
546
+
547
+ # description
548
+ msgid "Check if bi-directional and many-to-many relationships are valid"
549
+ msgstr ""
550
+ "https://www.sqlbi.com/articles/bidirectional-relationships-and-ambiguity-in-"
551
+ "dax"
552
+
553
+ # description
554
+ msgid "Check if dynamic row level security (RLS) is necessary"
555
+ msgstr ""
556
+ "L’utilisation de la sécurité dynamique au niveau des lignes (RLS) peut "
557
+ "ajouter de la mémoire et des performances. Veuillez rechercher les avantages"
558
+ " et les inconvénients de son utilisation."
559
+
560
+ # description
561
+ msgid ""
562
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
563
+ "security"
564
+ msgstr ""
565
+ "L’utilisation de relations plusieurs-à-plusieurs sur des tables qui "
566
+ "utilisent la sécurité dynamique au niveau des lignes peut entraîner une "
567
+ "grave dégradation des performances des requêtes. Les problèmes de "
568
+ "performances de ce modèle s’aggravent lors de l’écaillage de plusieurs "
569
+ "relations plusieurs-à-plusieurs par rapport à une table qui contient une "
570
+ "sécurité au niveau des lignes. Au lieu de cela, utilisez l’un des modèles "
571
+ "présentés dans l’article ci-dessous où une table à dimension unique est liée"
572
+ " de plusieurs à un à une table de sécurité."
573
+
574
+ # description
575
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
576
+ msgstr ""
577
+ "Pour accélérer le temps de traitement et conserver la mémoire après le "
578
+ "traitement, les hiérarchies d’attributs ne doivent pas être créées pour des "
579
+ "colonnes qui ne sont jamais utilisées pour le découpage par les clients MDX."
580
+ " En d’autres termes, la propriété IsAvailableInMdx de toutes les colonnes "
581
+ "masquées qui ne sont pas utilisées en tant que colonne de tri ou référencées"
582
+ " dans les hiérarchies d’utilisateurs doit avoir la valeur false. La "
583
+ "propriété IsAvailableInMdx n’est pas pertinente pour les modèles Direct "
584
+ "Lake."
585
+
586
+ # description
587
+ msgid ""
588
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
589
+ "hybrid table"
590
+ msgstr ""
591
+ "La définition de la propriété « Définition de la couverture des données » "
592
+ "peut améliorer les performances, car le moteur sait quand il peut uniquement"
593
+ " interroger la partie importation de la table et quand il doit interroger la"
594
+ " partie DirectQuery de la table."
595
+
596
+ # description
597
+ msgid ""
598
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
599
+ "on fact tables"
600
+ msgstr ""
601
+ "https://learn.microsoft.com/power-bi/transform-model/desktop-storage-"
602
+ "mode#propagation-of-the-dual-setting"
603
+
604
+ # description
605
+ msgid "Minimize Power Query transformations"
606
+ msgstr ""
607
+ "Réduisez les transformations Power Query afin d’améliorer les performances "
608
+ "de traitement du modèle. Il est recommandé de décharger ces transformations "
609
+ "sur l’entrepôt de données si possible. Vérifiez également si le pliage de "
610
+ "requête se produit dans votre modèle. Veuillez consulter l’article ci-"
611
+ "dessous pour plus d’informations sur le pliage des requêtes."
612
+
613
+ # description
614
+ msgid "Consider a star-schema instead of a snowflake architecture"
615
+ msgstr ""
616
+ "D’une manière générale, un schéma en étoile est l’architecture optimale pour"
617
+ " les modèles tabulaires. Cela étant, il existe des cas valides pour utiliser"
618
+ " une approche en flocon de neige. Vérifiez votre modèle et envisagez de "
619
+ "passer à une architecture en étoile."
620
+
621
+ # description
622
+ msgid "Avoid using views when using Direct Lake mode"
623
+ msgstr ""
624
+ "En mode Direct Lake, les vues reviennent toujours à DirectQuery. Ainsi, afin"
625
+ " d’obtenir les meilleures performances, utilisez des tables lakehouse au "
626
+ "lieu de vues."
627
+
628
+ # description
629
+ msgid "Avoid adding 0 to a measure"
630
+ msgstr ""
631
+ "L’ajout de 0 à une mesure afin qu’elle n’affiche pas une valeur vide peut "
632
+ "avoir un impact négatif sur les performances."
633
+
634
+ # description
635
+ msgid "Reduce usage of calculated tables"
636
+ msgstr ""
637
+ "Migrez la logique de table calculée vers votre entrepôt de données. Le fait "
638
+ "de s’appuyer sur des tables calculées entraînera une dette technique et des "
639
+ "désalignements potentiels si vous avez plusieurs modèles sur votre "
640
+ "plateforme."
641
+
642
+ # description
643
+ msgid "Reduce usage of calculated columns that use the RELATED function"
644
+ msgstr ""
645
+ "Les colonnes calculées ne sont pas compressées aussi bien que les colonnes "
646
+ "de données et peuvent entraîner des temps de traitement plus longs. Par "
647
+ "conséquent, les colonnes calculées doivent être évitées si possible. Un "
648
+ "scénario où ils peuvent être plus faciles à éviter est s’ils utilisent la "
649
+ "fonction RELATED."
650
+
651
+ # description
652
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
653
+ msgstr ""
654
+ "Limitez l’utilisation des relations b-di et plusieurs-à-plusieurs. Cette "
655
+ "règle signale le modèle si plus de 30 % des relations sont bi-di ou "
656
+ "plusieurs-à-plusieurs."
657
+
658
+ # description
659
+ msgid "Remove auto-date table"
660
+ msgstr ""
661
+ "Évitez d’utiliser des tables de date automatique. Veillez à désactiver la "
662
+ "table de date automatique dans les paramètres de Power BI Desktop. Cela "
663
+ "permettra d’économiser des ressources mémoire."
664
+
665
+ # description
666
+ msgid "Date/calendar tables should be marked as a date table"
667
+ msgstr ""
668
+ "Cette règle recherche les tables qui contiennent les mots « date » ou « "
669
+ "calendrier », car elles doivent probablement être marquées comme une table "
670
+ "de dates."
671
+
672
+ # description
673
+ msgid "Large tables should be partitioned"
674
+ msgstr ""
675
+ "Les tables volumineuses doivent être partitionnées afin d’optimiser le "
676
+ "traitement. Ce n’est pas pertinent pour les modèles sémantiques en mode "
677
+ "Direct Lake, car ils ne peuvent avoir qu’une seule partition par table."
678
+
679
+ # description
680
+ msgid "Limit row level security (RLS) logic"
681
+ msgstr ""
682
+ "Essayez de simplifier le DAX utilisé pour la sécurité au niveau des lignes. "
683
+ "L’utilisation des fonctions de cette règle peut probablement être déchargée "
684
+ "sur les systèmes en amont (entrepôt de données)."
685
+
686
+ # description
687
+ msgid "Model should have a date table"
688
+ msgstr ""
689
+ "D’une manière générale, les modèles devraient généralement avoir une table "
690
+ "de dates. Les modèles qui n’ont pas de table de dates ne tirent généralement"
691
+ " pas parti de fonctionnalités telles que l’intelligence temporelle ou n’ont "
692
+ "pas une architecture correctement structurée."
693
+
694
+ # description
695
+ msgid "Calculation items must have an expression"
696
+ msgstr ""
697
+ "Les éléments de calcul doivent avoir une expression. Sans expression, ils "
698
+ "n’afficheront aucune valeur."
699
+
700
+ # description
701
+ msgid "Relationship columns should be of the same data type"
702
+ msgstr ""
703
+ "Les colonnes utilisées dans une relation doivent être du même type de "
704
+ "données. Idéalement, elles seront de type entier (voir la règle associée "
705
+ "'[Formatage] Les colonnes de relation doivent être de type entier'). Le fait"
706
+ " d’avoir des colonnes au sein d’une relation qui sont de différents types de"
707
+ " données peut entraîner divers problèmes."
708
+
709
+ # description
710
+ msgid "Data columns must have a source column"
711
+ msgstr ""
712
+ "Les colonnes de données doivent avoir une colonne source. Une colonne de "
713
+ "données sans colonne source provoquera une erreur lors du traitement du "
714
+ "modèle."
715
+
716
+ # description
717
+ msgid "Set IsAvailableInMdx to true on necessary columns"
718
+ msgstr ""
719
+ "Afin d’éviter les erreurs, assurez-vous que les hiérarchies d’attributs sont"
720
+ " activées si une colonne est utilisée pour trier une autre colonne, utilisée"
721
+ " dans une hiérarchie, utilisée dans des variantes ou est triée par une autre"
722
+ " colonne. La propriété IsAvailableInMdx n’est pas pertinente pour les "
723
+ "modèles Direct Lake."
724
+
725
+ # description
726
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
727
+ msgstr ""
728
+ "La fonction USERELATIONSHIP ne peut pas être utilisée sur une table qui "
729
+ "exploite également la sécurité au niveau des lignes (RLS). Cela génère une "
730
+ "erreur lors de l’utilisation de la mesure particulière dans un visuel. Cette"
731
+ " règle mettra en évidence la table utilisée dans la fonction USERELATIONSHIP"
732
+ " d’une mesure, ainsi que la RLS."
733
+
734
+ # description
735
+ msgid "Avoid using the IFERROR function"
736
+ msgstr ""
737
+ "Évitez d’utiliser la fonction IFERROR car elle peut entraîner une "
738
+ "dégradation des performances. Si vous êtes préoccupé par une erreur de "
739
+ "division par zéro, utilisez la fonction DIVIDE car elle résout naturellement"
740
+ " ces erreurs comme vide (ou vous pouvez personnaliser ce qui doit être "
741
+ "affiché en cas d’une telle erreur)."
742
+
743
+ # description
744
+ msgid ""
745
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
746
+ msgstr ""
747
+ "La fonction TREATAS est plus efficace et offre de meilleures performances "
748
+ "que la fonction INTERSECT lorsqu’elle est utilisée dans des relations "
749
+ "virtuelles."
750
+
751
+ # description
752
+ msgid "The EVALUATEANDLOG function should not be used in production models"
753
+ msgstr ""
754
+ "La fonction EVALUATEANDLOG est destinée à être utilisée uniquement dans des "
755
+ "environnements de développement/test et ne doit pas être utilisée dans des "
756
+ "modèles de production."
757
+
758
+ # description
759
+ msgid "Measures should not be direct references of other measures"
760
+ msgstr ""
761
+ "Cette règle identifie les mesures qui ne sont qu’une référence à une autre "
762
+ "mesure. À titre d’exemple, considérons un modèle avec deux mesures : "
763
+ "[MesureA] et [MesureB]. Cette règle serait déclenchée pour la mesure B si le"
764
+ " DAX de la mesure B était MesureB :=[MesureA]. Ces mesures redondantes "
765
+ "devraient être supprimées."
766
+
767
+ # description
768
+ msgid "No two measures should have the same definition"
769
+ msgstr ""
770
+ "Deux mesures portant des noms différents et définies par la même expression "
771
+ "DAX doivent être évitées pour réduire la redondance."
772
+
773
+ # description
774
+ msgid "Avoid using '1-(x/y)' syntax"
775
+ msgstr ""
776
+ "Au lieu d’utiliser la syntaxe « 1-(x/y) » ou « 1+(x/y) » pour effectuer un "
777
+ "calcul de pourcentage, utilisez les fonctions DAX de base (comme indiqué ci-"
778
+ "dessous). L’utilisation de la syntaxe améliorée améliorera généralement les "
779
+ "performances. Le « 1+/-... » La syntaxe renvoie toujours une valeur alors "
780
+ "que la solution sans le '1+/-...' ne le fait pas (car la valeur peut être « "
781
+ "vide »). Par conséquent, le '1+/-...' La syntaxe peut renvoyer plus de "
782
+ "lignes/colonnes, ce qui peut entraîner une vitesse de requête plus lente."
783
+ " Clarifions avec un exemple : Évitez ceci : 1 - SUM ( 'Sales'[CostAmount]"
784
+ " ) / SUM( 'Sales'[SalesAmount] ) Mieux : DIVIDE ( SUM ( 'Sales'[SalesAmount]"
785
+ " ) - SUM ( 'Sales'[CostAmount] ), SUM ( 'Sales'[SalesAmount] ) ) Meilleur : "
786
+ "VAR x = SUM ( 'Sales'[SalesAmount] ) RETURN DIVIDE ( x - SUM ( "
787
+ "'Sales'[CostAmount] ), x )"
788
+
789
+ # description
790
+ msgid "Filter measure values by columns, not tables"
791
+ msgstr ""
792
+ "Au lieu d’utiliser ce modèle FILTER('Table',[Measure]>Value) pour les paramètres de filtre d’une fonction CALCULATE ou CALCULATETABLE, utilisez l’une des options ci-dessous (si possible). Le filtrage sur une colonne spécifique produira une table plus petite à traiter par le moteur, ce qui permettra d’accélérer les performances. L’utilisation de la fonction VALUES ou de la fonction ALL dépend du résultat de mesure souhaité.\n"
793
+ "Option 1 : FILTER(VALUES('Table'[Colonne]),[Mesure] > valeur)\n"
794
+ "Option 2 : FILTER(ALL('Table'[Colonne]),[Mesure] > valeur)"
795
+
796
+ # description
797
+ msgid "Filter column values with proper syntax"
798
+ msgstr ""
799
+ "Au lieu d’utiliser ce modèle FILTER('Table','Table'[Column]=\"Value ») pour les paramètres de filtre d’une fonction CALCULATE ou CALCULATETABLE, utilisez l’une des options ci-dessous. Pour ce qui est de l’utilisation de la fonction KEEPFILTERS, voir le deuxième lien de référence ci-dessous.\n"
800
+ "Option 1 : KEEPFILTERS('Table'[Column]=\"Valeur »)\n"
801
+ "Option 2 : 'Table'[Colonne]=\"Valeur »"
802
+
803
+ # description
804
+ msgid "Use the DIVIDE function for division"
805
+ msgstr ""
806
+ "Utilisez la fonction DIVIDE au lieu d’utiliser « / ». La fonction DIVIDE "
807
+ "résout les cas de division par zéro. En tant que tel, il est recommandé de "
808
+ "l’utiliser pour éviter les erreurs."
809
+
810
+ # description
811
+ msgid "Column references should be fully qualified"
812
+ msgstr ""
813
+ "L’utilisation de références de colonne complètes facilite la distinction "
814
+ "entre les références de colonne et les références de mesure, et permet "
815
+ "également d’éviter certaines erreurs. Lorsque vous référencez une colonne "
816
+ "dans DAX, spécifiez d’abord le nom de la table, puis le nom de la colonne "
817
+ "entre crochets."
818
+
819
+ # description
820
+ msgid "Measure references should be unqualified"
821
+ msgstr ""
822
+ "L’utilisation de références de mesure non qualifiées facilite la distinction"
823
+ " entre les références de colonne et les références de mesure, et permet "
824
+ "également d’éviter certaines erreurs. Lorsque vous référencez une mesure à "
825
+ "l’aide de DAX, ne spécifiez pas le nom de la table. N’utilisez que le nom de"
826
+ " la mesure entre crochets."
827
+
828
+ # description
829
+ msgid "Inactive relationships that are never activated"
830
+ msgstr ""
831
+ "Les relations inactives sont activées à l’aide de la fonction "
832
+ "USERELATIONSHIP. Si une relation inactive n’est pas référencée dans une "
833
+ "mesure quelconque via cette fonction, la relation ne sera pas utilisée. Il "
834
+ "convient de déterminer si la relation n’est pas nécessaire ou d’activer la "
835
+ "relation via cette méthode."
836
+
837
+ # description
838
+ msgid "Remove unnecessary columns"
839
+ msgstr ""
840
+ "Les colonnes masquées qui ne sont pas référencées par des expressions, des "
841
+ "relations, des niveaux hiérarchiques ou des propriétés de tri DAX doivent "
842
+ "être supprimées."
843
+
844
+ # description
845
+ msgid "Remove unnecessary measures"
846
+ msgstr ""
847
+ "Les mesures masquées qui ne sont référencées par aucune expression DAX "
848
+ "doivent être supprimées pour des raisons de maintenance."
849
+
850
+ # description
851
+ msgid "Ensure tables have relationships"
852
+ msgstr ""
853
+ "Cette règle met en évidence les tables qui ne sont connectées à aucune autre"
854
+ " table du modèle avec une relation."
855
+
856
+ # description
857
+ msgid "Visible objects with no description"
858
+ msgstr ""
859
+ "Les groupes de calcul n’ont pas de fonction à moins qu’ils n’aient des "
860
+ "éléments de calcul."
861
+
862
+ # description
863
+ msgid "Provide format string for 'Date' columns"
864
+ msgstr ""
865
+ "Les colonnes de type « DateTime » dont le nom contient « Mois » doivent être"
866
+ " au format « mm/jj/aaaa »."
867
+
868
+ # description
869
+ msgid "Do not summarize numeric columns"
870
+ msgstr ""
871
+ "La propriété SummarizeBy des colonnes numériques (entière, décimale, double)"
872
+ " doit avoir la valeur « None » pour éviter une sommation accidentelle dans "
873
+ "Power BI (créez des mesures à la place)."
874
+
875
+ # description
876
+ msgid "Provide format string for measures"
877
+ msgstr ""
878
+ "La propriété de chaîne de format des mesures visibles doit être attribuée."
879
+
880
+ # description
881
+ msgid "Add data category for columns"
882
+ msgstr "Ajouter la propriété Data Category pour les colonnes appropriées."
883
+
884
+ # description
885
+ msgid "Hide foreign keys"
886
+ msgstr "Les clés étrangères doivent toujours être cachées."
887
+
888
+ # description
889
+ msgid "Mark primary keys"
890
+ msgstr ""
891
+ "Définissez la propriété « Key » sur « True » pour les colonnes de clé "
892
+ "primaire dans les propriétés de colonne."
893
+
894
+ # description
895
+ msgid "Month (as a string) must be sorted"
896
+ msgstr ""
897
+ "Cette règle met en évidence les colonnes de mois qui sont des chaînes de "
898
+ "caractères et qui ne sont pas triées. S’ils ne sont pas triés, ils seront "
899
+ "triés par ordre alphabétique (c’est-à-dire avril, août...). Assurez-vous de "
900
+ "trier ces colonnes de manière à ce qu’elles soient correctement triées "
901
+ "(janvier, février, mars...)."
902
+
903
+ # description
904
+ msgid "Relationship columns should be of integer data type"
905
+ msgstr ""
906
+ "Il est recommandé que les colonnes de relation soient de type entier. Cela "
907
+ "s’applique non seulement à l’entreposage de données, mais aussi à la "
908
+ "modélisation des données."
909
+
910
+ # description
911
+ msgid "Provide format string for \"Month\" columns"
912
+ msgstr ""
913
+ "Les colonnes de type « DateTime » dont le nom contient « Mois » doivent être"
914
+ " au format « MMMM aaaa »."
915
+
916
+ # description
917
+ msgid "Format flag columns as Yes/No value strings"
918
+ msgstr ""
919
+ "Les drapeaux doivent être correctement formatés en Oui/Non, car cela est "
920
+ "plus facile à lire que d’utiliser des valeurs entières 0/1."
921
+
922
+ # description
923
+ msgid "Objects should not start or end with a space"
924
+ msgstr ""
925
+ "Les objets ne doivent pas commencer ou se terminer par un espace. Cela se "
926
+ "produit généralement par accident et est difficile à trouver."
927
+
928
+ # description
929
+ msgid "First letter of objects must be capitalized"
930
+ msgstr ""
931
+ "La première lettre des noms d’objets doit être en majuscule pour maintenir "
932
+ "la qualité professionnelle."
933
+
934
+ # description
935
+ msgid "Object names must not contain special characters"
936
+ msgstr ""
937
+ "Les noms d’objet ne doivent pas inclure de tabulations, de sauts de ligne, "
938
+ "etc."