Dériver : localisation
En prés-requis pour bien suivre cette procédure, il est recommandé d'avoir des notions sur subversion et éventuellement SCENARIbuilder, mais le système de traduction rend au maximum transparent les interactions avec ces outils.
Mise en place
Vous devez commencer par suivre la procédure d'installation normale d'un deriver pour votre atelier à traduire :
- Créer un dossier "monprojetdederivation"
- A l'intérieur du dossier "monprojetdederivation", créer les dossiers "deriver", "original", "model", "overwrite" et "deriver/app"
- Créez dans SCENARIbuilder un atelier qui pointe sur le répertoire "model"
- Faites un checkout des sous répertoire que vous souhaitez utiliser de votre modèle dans le répertoire "original" (par exemple, opale contient des répertoires avec juste un wspdef, nous alons recréer nos propres wspdef et ne souhaitons pas les réutiliser donc on ne fait pas de checkout de ces répertoires dans "original").
- Faites un checkout de cette adresse : http://scenari-platform.org/svn/wspderiver/trunk dans votre répertoire "deriver/app"
- Copiez :
- "deriver/app/sample/res/en-US.xml" dans "deriver/res/en-US.xml"
- "deriver/app/sample/conf.localization.xml" dans "deriver/conf.xml"
- Modifiez "derivier/conf.xml" (exemple décrit ci dessous)
- Copiez tous les fichiers que vous devez traduire "à la main" dans overwrite en respectant parfaitement la hiérarchie des répertoires (pour opale, il y a quelques images avec du texte, et nous allons dupliquer les wspdef puisque ca simplifie les choses, ce sont ces fichiers qui doivent être dans overwrite).
Réaliser la traduction
- Lancez le script 2_originalUpdate : l'adresse SVN indiqué dans le fichier de configuration est utilisé pour récupérer les fichiers du modèle (par la suite, cette étape est facultative si vous faites des modifications sur le dictionnaire mais que le modèle n'a pas bougé)
- Lancez le script loc_updateDic (5 - 10 minutes) : un fichier de dictionnaire de mot est créé, les régles du fichier de configuration sont exploités pour repérer les mots ou expressions a traduire, et ils sont automatiquement ajoutés à un fichier du répertoire "deriver/res" avec la date et l'heure, par exemple "en-US.xml.080402-1831.xml". Si le modèle et les règles n'ont pas changé mais que vous souhaitez juste traduire un mot différemment vous n'avez pas besoin d'effectuer cette étape.
- Vérifier que ce fichier comporte bien les termes que vous avez à traduire, et enlevez de son nom la date et l'extension, par exemple : "en-US.xml.080402-1831.xml" -> "en-US.xml"
- Editez le fichier comme décrit en annex ci-dessous.
- Vérifiez que votre fichier de dictionnaire est bien formé et valide.
- Lancez le script 3_createWsp (plus de 20 minutes) : le dictionnaire est "appliqué" au modèle, et tous les fichiers source SCENARIbuilder sont traduits.
- Recompilez vos SCENARIapps, ré-exportez vos wsppack comme vous le souhaitez...
Comme pour tout wpsderiver, ne modifiez pas les fichiers sources traduits directement ou alors pensez bien a les copier dans overwritte avant le lancement des scripts.
Le fichier dictionnaire
Ce fichier est assez simple à modifier, vous pouvez l'envoyer à un traducteur non-informaticien qui devrait s'en sortir si vous lui donnez quelques explications.
Exemples de mots dans le fichier de dictionnaire :
<token key="Conseil">Advice</token> <token key="Consigne">Instructions</token> <token key="Consulter les solutions...">View solutions</token>
- key : le mot dans sa langue d'origine.
- contenu de la balise : le mot traduit.
Attention aux caractères spéciaux ! Modifiez les guillemets pour éviter les "imbrications", utilisez " pour remplacer les "et commercial" &... Dans les résultats de vos traductions, reproduisez bien les espaces dans les mots traduits s'ils figurent dans la source des traductions. Utilisez des outils pour vérifier le document XML.
Vos traductions sont normalement pérennisées et facile à mettre à jour si le modèle de base évolue :
- Si vous relancez le script loc_updateDic, les mots du fichier déjà traduit sont récupérés (uniquement du fichier de base, pas si vous avez des exemplaires avec des dates).
- Les nouveaux mots sont placés en début de fichier et avec la propriété new="true", enlevez cette propriété une fois la traduction faite.
- Les mots abandonnés sont placés en fin de fichier et avec la propriété used="false", enlevez la ligne si vous n'allez plus en avoir besoin.
Exemple de fichier de configuration
Parties a modifier éventuellement :
- les références aux répertoires et a l'adresse SVN dans "originialFolders". Ces répertoires vont être téléchargés automatiquement, utilisés pour construire le dictionnaire des mots a traduire et la nouvelle version traduite.
- la listes de "rules" (attention, les régles données ici ne sont pas finalisées et peuvent varier d'un modèle à un autre)
<wspTransformer name="Opale to englishopale"> <wspOut dir="../model" /> <originalFolders> <folder from="../original/academic" target="sources/academic"/> <folder from="../original/math" target="sources/math"/> <folder from="../original/binaries" target="sources/binaries"/> <svnSynchro> <credential username="anonymous" password="anonymous"/> <item from="http://scenari-platform.org/svn/opale/tags/3.0.6/model/sources/academic" to="../original/academic"/> <item from="http://scenari-platform.org/svn/opale/tags/3.0.6/model/sources/math" to="../original/math"/> <item from="http://scenari-platform.org/svn/opale/tags/3.0.6/model/sources/binaries" to="../original/binaries"/> </svnSynchro> </originalFolders> <resetFromOriginal dir="sources/academic"/> <resetFromOriginal dir="sources/math"/> <resetFromOriginal dir="sources/binaries"/> <overwrite from="../overwrite"/> <localization file="res/en-US.xml"> <!-- # models --> <rule type="xpath" xpath="//*/@name" includes="**/*.genDeploy **/*.generator **/*.genitem"/> <rule type="xpath" xpath="//*/@quickHelp | //sm:fixedString/@value | //*/@prefixIfExist | //*/@suffixIfExist | //*/@name" includes="**/*.model"/> <!-- # transf, # uitemplate --> <rule type="xpath" xpath="//sm:fixedContent/@value | //sm:fixedString/@value | //*/@title | //*/@alt | //sm:WText" includes="**/*.uitemplate"/> <rule type="xpath" xpath="//sm:fixedString/@value" includes="**/*.odtemplate"/> <rule type="xpath" xpath="//sm:fixedString/@value | //sm:fixedTitle/@value | //*/@title | //*/@alt" includes="**/*.transf"/> <rule type="xpath" xpath="//*/@title | //*/@alt" includes="**/*.uiwidget"/> <rule type="xpath" xpath="//*[local-name()='span' or local-name()='p' or local-name()='label' or local-name()='labelTitle' or local-name()='noscript' or local-name()='a' or local-name()='ttContent']/text()" includes="**/*.transf **/*.uitemplate **/*.uiwidget"/> <!-- # contenu html --> <rule type="inner" start="content:" end=";" includes="**/*.css"/> </localization> <!--xsl path="res/ajoutCss.xsl" dir="." includes="**/page.uitemplate"/ --> </wspTransformer>
DTD
| Attention ! |
|---|
Pour des gros "dictionnaires de traductions", il est important d'utiliser un outil de validation XML afin d'éviter toute erreur silencieuse qui pourrait survenir lors de la construction du dictionnaire ou du lancement de la traduction (disparition de mots...). Une vérification simplement syntaxique du XML ne permet pas d'éviter tous les problèmes. |
Utilisez le fichier attaché a cette page wiki, vous devriez pouvoir l'inclure facilement en spécifiant cette déclaration juste après celle <?xml ...>
<!DOCTYPE localization PUBLIC "//scenari-platform.org/wspderiver:loc" "http://scenari-platform.org/trac/wspderiver/attachment/wiki/localization/translate.dtd?format=raw">
Une fois que vous avez terminé les validations, retirez ce doctype avant de lancer les scripts car ils ne fonctionnerons probablement pas avec.
Attachments
-
translate.dtd
(337 bytes) - added by stp
8 months ago.
DTD dictionnaire de traduction