Nous sommes le 3 février 2016 et c’est officiel, il est maintenant possible d’appliquer des traductions sur un model Tabular ! Et cela de façon beaucoup plus lisible grâce au script qui est maintenant en JSON. Et tout cela avec la possibilité d’exporter et importer celles-ci (pour faire bosser les demandeurs voyons !). Voici mon retour après quelques tests.
1 – Je n’ai pas réussi à le faire marcher en français sur ma machine, après l’installation j’ai bien le nouveau menu traduction dans ssdt :
Mais lors de l’accès à « Gérer les traductions » j’ai le message d’erreur suivant : « Une entrée avec la même clé existe déjà », j’ai donc essayé avec plusieurs projets Tabular (en model 1200) sans succès.
N’hésitez pas à laisser un commentaire si vous avez rencontré le problème et réussi à le corriger, ou si vous avez installé SSDT en français et n’avez pas rencontré le problème.
2 – J’ai fini par monter une machine sur Azure vierge et en anglais, ce qui m’a permis de continuer mes tests 🙂
Première étape : sélectionner les langues disponibles, première déconvenue, même si l’écran me laisse penser que je vais pouvoir passer dans « Translations in the model », la liste de mes traductions, et faire « Export selected languages » il faut en fait re-sélectionner les langues sur l’écran de droite afin de pouvoir accéder au bouton « export selected language » (Cela va surement être corrigé dans les versions suivantes)
Après re-sélection des traductions :
Me voici donc avec un fichier de traduction qui contient la structure nécessaire à la traduction des « Metadata » en deux langues :
La description du model :
"model": { "tables": [ { "name": "Customer", "columns": [ { "name": "CustomerID" }, ......
La partie pour le français :
"cultures": [ { "name": "fr-FR", "translations": { "model": { "name": "Model", "translatedCaption": "", "translatedDescription": "", "tables": [ { "name": "Customer", "translatedCaption": "", "translatedDescription": "", "columns": [ { "name": "CustomerID", "translatedCaption": "", "translatedDescription": "" }, { "name": "NameStyle", "translatedCaption": "", "translatedDescription": "" }, ......
La partie pour l’anglais :
{ "name": "en-GB", "translations": { "model": { "name": "Model", "translatedCaption": "", "translatedDescription": "", "tables": [ { "name": "Customer", "translatedCaption": "", "translatedDescription": "", "columns": [ { "name": "CustomerID", "translatedCaption": "", "translatedDescription": "" }, { "name": "NameStyle", "translatedCaption": "", "translatedDescription": "" },......
3 – Comment ça marche au final ?
Étape 1 : Générer un / plusieurs fichiers JSON qui vont nous permettre de compléter les traductions de nos noms de colonnes / calculs. Adieu les interfaces graphiques, il va falloir pour l’instant se palucher cela à la main (vous imaginez bien les métiers essayer de modifier un fichier JSON …) mais bon rien de bien compliqué à développer de notre côté.
Cela ne change rien au niveau de votre cube pour l’instant, vous avez seulement généré un fichier qui doit maintenant être complété.
Étape 2 : Modifier le fichier avec votre éditeur JSON préféré, j’ai pour ma part édité uniquement la traduction du nom de ma table « Customer » en « Client », ce qui donne en JSON
................
"cultures": [ { "name": "fr-FR", "translations": { "model": { "name": "Model", "translatedCaption": "", "translatedDescription": "", "tables": [ { "name": "Customer", "translatedCaption": "Client", "translatedDescription": "", .....
Encore une fois, jusqu’ici rien n’est pris en compte dans votre cube, ce fichier n’est pas connecté à votre cube et ne fait pas partie de votre projet.
Étape 3 : Importer le fichier de traduction, ce qui aura pour effet de modifier le cube Tabular (les lignes complétées de notre JSON vont être ajoutées au model.bim)
J’importe donc mon fichier, et je veux un log file pour voir ce qui s’est passé et écraser les traductions existantes (Oui j’ai fait un test juste avant :))
Dans le fichier de log, je trouve les informations suivantes :
02/06/2016 10:54:17 fr-FR : Overwritten Customer : Added
Dans mon fichier model.bim les modifications sont les suivantes :
"cultures": [ { "name": "fr-FR", "translations": { "model": { "name": "Model", "tables": [ { "name": "Customer", "translatedCaption": "Client" } ] } } } ]
Et voilà ma table « Customer » s’affichera maintenant « Client » pour les Excel avec la locale en français.
Conclusion :
- Il est enfin possible de faire des traductions de Metadata de façon supportée et avec le Compatibility level 1200 (et ça c’est cool !). Toutefois, sur les versions tabulaires antérieures, c’était déjà possible avec BIDS Helper et c’était beaucoup plus simple (On avait une interface de saisie plus naturelle mais j’imagine que lors de la sortie de 2016 nous aurons quelque chose ?)
- Donner un JSON à mes utilisateurs métier, je n’y crois pas mais bon …
- Le nombre d’étapes est important : générer un fichier, modifier le fichier, importer le fichier
- Comme vous l’avez surement noté, je n’apprécie guère le mode 1 seul fichier du tabulaire, j’aurais préféré que la génération des traductions me positionne les fichiers de traductions dans mon projet et que le cube se base sur ceux-ci lors de la compilation pour enrichir mon model. Cela aurait permis de modifier les traductions sans avoir à extraire (Au sens TFS) le fichier model.bim et donc de travailler à plusieurs.
- Dans le fonctionnement actuel, à chaque ajout de colonnes, il faut extraire un nouveau fichier pour pouvoir faire leur traduction, ce n’est pas super pratique.
- Et les traductions de mes données c’est pour quand ? (Spécifier une colonne différente en fonction de la langue)
En somme, avoir un moyen pour faire les traductions sur le nouveau compatibility model c’est une excellente chose, mais en l’état cela est assez laborieux, vivement les prochaines releases !
*Edit du 09/02/2016 : Il n’aura pas fallu longtemps pour voir apparaître un outil pour gérer ces traductions
Just released: the Tabular translator for SQL Server 2016 on github https://t.co/y7njD3Unme
— Kasper de Jonge (@Kjonge) 9 Février 2016
4 Comments
Merci pour la solution mais moi je ne vois pas apparaître Translation dans Model comment faire pour le rajouter ???
Cette option est disponible sur SQL Server 2016, il faut donc avoir un projet tabulaire en SQL Server 2016 (Niveau de compatibilité SQL Server 2016 RTM (1200))
Bonjour,
J’ai malheureusement fait l’erreur d’installer SSDT 2017 en français et j’ai la même erreur que vous. Impossible de générer le fichier des traductions.
J’ai essayer de le réinstaller en anglais mais ça ne change rien. Dommage…
Bonjour Véronique, le bug est en effet toujours présent 3 ans plus tard. Il ne s’agit pas que de réinstaller Visual Studio en anglais mais aussi d’avoir la langue de la machine et les paramètres régionaux en anglais.