Traduction de dodoc

Bonjour bonjour !

merci bien pour les retours forts sympathiques :slight_smile:

Ça tombe bien, c’est hyper simple d’ajouter une langue dans do•doc : tous les textes affichés sont dans un seul fichier (c’est une bonne pratique, comme pour bcp de logiciels).

Voici son contenu pour la langue française :

fr: {
  ascending: 'Croissant',
  descending: 'Décroissant',
  create_a_project: 'Créer un projet',
  create_a_publication: 'Créer une publication',
  publication: 'Publication',
  name: 'Nom',
  project_name: 'Nom du projet',
  created_date: 'Date de création',
  uploaded: 'Importation',
  created: 'Création',
  edited: 'Édition',
  sent_date: 'Date d’envoi',
  for_the_placement_on_timeline: '(pour le placement sur la timeline)',
  type: 'Type',
  color: 'Couleur',
  keywords: 'Mots-clés',
  share: 'Partage',
  copy: 'Copier',
  author: 'Auteur(s)',
  download: 'Télécharger',
  caption: 'Légende',
  formatting: 'Mise en forme',
  smoothing: 'Lissage',
  onion_skin: 'Pelure d’oignon',
  'file:': 'Fichier :',
  add_to_project: 'Ajouter au projet :',
  input_password: 'Renseigner le mot de passe ci-dessous :',
  validate_with_enter: 'Valider avec la touche ENTRÉE.',
  no_stopmotion_created_yet:
    'Les animations créées apparaîtront dans ce panneau.',
  device: 'Appareil',
  'camera2 1, facing front': 'Caméra frontale',
  'camera2 0, facing back': 'Caméra arrière',

  very_slow: 'Très lent',
  slow: 'Lent',
  speed_medium: 'Normal',
  fast: 'Rapide',
  forget_password_and_close: 'Oublier le mot de passe et fermer le projet',

  remember_password_on_this_device: 'Sauvegarder pour cet appareil',

  cooking_pot: 'La marmite',
  copy_of: 'Copie de',
  text_overflow: 'Texte en excès',
  move_to_foreground: 'Mettre au premier plan',
  move_to_background: 'Mettre à l’arrière plan',
  'layer:': 'Calque :',
  css_settings: 'Règlages CSS',
  edit_content: 'Modifier le contenu',
  adjust: 'Ajuster',
  duplicate: 'Dupliquer',

  show_all: 'Tout afficher',
  cooking_pot_instructions:
    'Mélangez des médias pour en créer des nouveaux !',
  untitled: 'Sans titre',
  mix_audio_and_video: 'Son sur une vidéo',
  mix_audio_and_image: 'Son sur une image',
  add_sound_video_file:
    'Ouvrez un projet et ajoutez un média <b>son</b> et un média <b>vidéo</b> en cliquant sur la flèche verte.<br>L’exportation créera une nouvelle vidéo.<br>Médias acceptés : une vidéo et une piste sonore.',
  add_sound_image_file:
    'Ouvrez un projet et ajoutez un média <b>son</b> et un média <b>image</b> en cliquant sur la flèche verte.<br>L’exportation créera une nouvelle vidéo.<br>Médias acceptés : une image et une piste sonore.',
  add_multiple_videos_files:
    'Ouvrez un projet et ajoutez plusieurs médias <b>vidéo</b> en cliquant sur la flèche verte. Les vidéos seront mises bout à bout dans l’ordre d’ajout.<br>L’exportation créera une nouvelle vidéo.<br>Médias acceptés : uniquement des vidéos de même taille.',
  add_multiple_images:
    'Ouvrez un projet et ajoutez plusieurs médias <b>image</b> en cliquant sur la flèche verte. Les images seront mises bout à bout dans l’ordre d’ajout. Exportez la séquence et réglez la vitesse de défilement des images.<br>L’exportation créera une vidéo.<br>Médias acceptés : uniquement des images. Les dimensions de la première image détermine si la vidéo finale est en portrait ou paysage.',
  style: 'style',
  css: 'css',
  write_some_CSS_code_for_example:
    'Écrivez ici du code CSS, <br>par exemple <code>color: blue;</code>',
  framerate: 'images par seconde',
  timelapse: 'déclenchement automatique',
  seconds_per_image: 'secondes par image',
  seconds: 'secondes',
  quality: 'qualité',
  bytes: 'octets',
  kb: 'ko',
  mb: 'Mo',
  gb: 'Go',
  duration: 'Durée',
  send: 'Envoyer',
  open_in_dodoc: 'Ouvrir dans do•doc',
  connect_to_dodoc: 'Accéder à do•doc',

  login: 'S’identifier',
  adding_password_warning:
    'Attention ! Si vous ajoutez ou modifiez un mot de passe tous les utilisateurs qui y sont actuellement connectés devront le renseigner avant de pouvoir continuer à contribuer.',
  removing_password_warning:
    'Si vous retirez le mot de passe tous les utilisateurs qui ont accès à do•doc pourront modifier le projet.',
  help: 'Aide',
  date: 'Date',
  portrait: 'Portrait',
  nfc_tag: 'Tag NFC',
  yes: 'Oui',
  cancel: 'Annuler',
  back: 'Retour',
  sureToRemoveAuthor: 'Êtes-vous sûr de vouloir supprimer cet auteur ?',
  show_all_authors: 'Afficher l’ensemble des auteurs',
  changes_not_saved_sureToCloseModal:
    'Des modifications ont eu lieu, souhaitez-vous les enregistrer ?',
  save_changes: 'Oui, enregistrer les modifications',
  close_the_window: 'Non, fermer sans enregistrer',
  sureToRemovePubli:
    'Êtes-vous sûr de vouloir supprimer cette publication ?',
  sure_to_cancel_stopmotion:
    'Êtes-vous sûr de vouloir arrêter cette animation ? Vous pourrez la retrouver dans le menu "Liste des animations"',
  validate_media: 'Valider le média',
  add_keyword: 'Ajouter un mot-clé',
  add: 'Ajouter',
  close: 'Fermer',

  very_high: 'Très élevée (1080p)',
  high: 'Élevée (720p)',
  medium: 'Moyenne (640p)',
  low: 'Basse (360p)',

  showing: 'Affichage de',
  media_filter: 'Filtre de médias',
  no_projects_yet:
    'Il n’y a pas encore de projet, créez-en un pour commencer à utiliser do•doc !',
  projects_of: 'projets sur',
  medias_of: 'médias sur',
  projects: 'Projets',
  project: 'Projet',
  medias: 'Médias',
  media: 'Média',
  authors: 'Auteurs',
  authors_list: 'Liste des auteurs',
  create_an_author: 'Créer un auteur',
  favorite_medias: 'Média favoris',
  all_medias: 'Tous les médias',
  create_text: 'Écrire',
  import: 'Importer',
  import_all_files: 'Importer tous les fichiers',
  import_medias: 'Importer des médias',
  select_files_to_import: 'Sélectionner les fichiers à importer',
  select_cover_image: 'Sélectionner une image de couverture',
  select_portrait_image: 'Sélectionner une image de portrait',
  add_to_recipe: 'Ajouter à la recette',
  add_a_page: 'Ajouter une page',
  insert_a_page_here: 'Insérer une page ici',
  add_a_page_before: 'Ajouter une page avant celle-ci',
  add_a_page_after: 'Ajouter une page après celle-ci',
  add_a_page_here: 'Ajouter une page ici',
  remove_this_page: '▲ Supprimer cette page ▲',

  anonymous: 'anonyme',
  other_users: 'autres utilisateurs',
  other_users_connected: 'autres utilisateurs connectés',

  mix_medias: 'Mélanger des médias',

  made_with_dodoc:
    'Page web réalisée avec l’application libre et gratuite do•doc',

  loading: 'chargement',
  open: 'Ouvrir',
  save: 'Enregistrer',
  as_favorite: '+ favoris',
  edit: 'Éditer',
  width: 'Largeur',
  height: 'Hauteur',
  zoom: 'Zoom',
  settings: 'Règlages',
  stopmotion_list: 'Liste des animations',

  print: 'Imprimer',
  create: 'Créer',
  remove: 'Supprimer',
  withdraw: 'Enlever',
  remove_this_image: 'Supprimer cette image',
  password: 'Mot de passe',
  password_required_to_open: 'Mot de passe requis',
  show_password: 'Afficher le mot de passe',
  hide: 'Cacher',
  protected_by_pass: 'protégé par mot de passe',
  password_instructions:
    'Si existant, seul les utilisateurs possédant ce mot de passe pourront ouvrir ce projet.',
  author_instructions:
    'Pour créer des auteurs, fermez cette fenêtre et cliquez sur le bouton (AUTEURS).',

  sort_by: 'Organiser par',
  by: 'par',
  in_the_order: 'Dans l’ordre',
  public: 'Public',
  fav: 'Favoris',
  content: 'Contenu',
  edit: 'Modifier',

  'lang:': 'Changer la langue&nbsp;:',
  lang: 'Changer la langue',
  share_access: 'Accéder depuis d’autres appareils',
  scan_qr_code: 'Scanner un code QR',

  photo: 'photo',
  video: 'vidéo',
  stopmotion: 'animation',
  audio: 'son',
  vecto: 'formes',
  image: 'image',
  text: 'texte',
  document: 'document',
  other: 'autre',
  with_sound: 'avec le son',
  generate: 'Générer',

  select: 'Sélectionner',
  unselect: 'Dé-sélectionner',

  toconnectwithanotherdevice:
    'Pour accéder à cet élément avec un autre appareil, connectez vous au même réseau wifi puis entrez l’url suivante dans un navigateur web, ou bien scannez le code QR&nbsp;: ',
  sureToRemoveProject: 'Êtes-vous sûr de vouloir supprimer ce projet ?',
  sureToRemoveMedia: 'Êtes-vous sûr de vouloir supprimer ce média ?',

  edit_the_media: 'Éditer le média',
  edit_project: 'Éditer le projet',
  edit_publication: 'Éditer la recette',
  drop_here_to_import: 'Déposez vos contenus ici pour les importer',

  capture: 'Capturer',
  current: 'Actuellement',
  currently: 'Actuellement',
  update: 'Mettre à jour',

  more_information:
    'Pour plus d’information, consultez la <a href="https://latelier-des-chercheurs.fr/docs/manuel-dodoc" class="js--openInBrowser" target="_blank">documentation</a> ou <a href="mailto:info@latelier-des-chercheurs.fr?subject=do•doc" class="js--openInBrowser" target="_blank">contactez</a> les auteurs de ce logiciel.',
  no_media_in_folder: 'Aucun média dans ce dossier.',
  no_public_media_in_folder: 'Aucun média public dans ce dossier.',
  auto_scroll: 'défilement<br>automatique',
  scale: 'échelle&nbsp;:',
  scale_items: {
    second: 'sec',
    minute: 'min',
    hour: 'h',
    half_day: '½j',
    day: 'j'
  },

  more_informations: 'Plus d’infos',
  contents_are_stored: 'Les contenus de ce dossier sont enregistrés dans ',
  folder_information: 'Informations du dossier',
  calendar: 'Calendrier',
  now: 'en ce moment',
  list: 'Liste',
  fullscreen: 'Plein écran',
  preview: 'Aperçu',
  filter: 'Filtre',
  filters: 'Filtres',
  header_left: 'En-tête gauche',
  header_right: 'En-tête droite',
  gridstep: 'Pas de la grille d’alignement',
  snap_to_grid: 'Magnétisme',
  margin_top: 'Marge: haut',
  margin_left: 'Marge: gauche',
  margin_right: 'Marge: droite',
  margin_bottom: 'Marge: bas',
  number_of_medias: 'Nombre de médias',
  number_of_pages: 'Nombre de pages',
  show_page_numbers:
    'Afficher le numéro de page dans le coin en bas à droite',

  export_folder: 'Exporter en format WEB',
  export: 'Exporter',
  export_as_pdf: 'Export PDF',
  new_window: 'Nouvelle fenêtre',
  previous_creations: 'Créations précédentes',
  export_video_instructions:
    'Cliquez sur le bouton pour lancer la création d’une seule vidéo à partir des vidéos ajoutées à la publication.',
  export_audio_video_mix_instructions:
    'Cliquez sur le bouton pour lancer la création d’une vidéo à partir du son et de la vidéo sélectionnés.',
  export_audio_image_mix_instructions:
    'Cliquez sur le bouton pour lancer la création d’une vidéo à partir du son et de l’image sélectionnés.',
  export_stopmotion_instructions:
    'Cliquez sur le bouton pour lancer la création d’une seule vidéo à partir des images ajoutées à la publication.',
  make_video: 'Fabriquer une vidéo',
  interval_between_pictures: 'Intervalle entre chaque photo',

  publication_list: 'Liste des publications',
  export_creation: 'Exportation d’une création',
  get_pdf:
    'Pour récupérer un PDF de cette publication (par exemple pour l’imprimer), cliquez sur le bouton ci-dessous&nbsp;:',
  download_pdf: 'Télécharger un PDF',
  get_website:
    'Pour récupérer un site web contenant cette publication (par exemple pour la diffuser en ligne), cliquez sur le bouton ci-dessous&nbsp;:',
  download_website: 'Télécharger une version web',
  open_in_app: 'Afficher',

  get_a_link: 'Récupérer un lien vers ce document&nbsp;:',

  format: 'Format',
  name_of_copy: 'Nom à donner à la copie',
  template: 'Gabarit',
  standard: 'Standard',
  'feuille de choux': 'Feuille de Choux',
  'human tech days': 'Human Tech Days',
  page_by_page: 'Document page à page',
  carreau: 'Carreau',
  video_assemblage: 'Montage vidéo',
  stopmotion_animation: 'Animation image par image',
  web: 'Page web',
  back_to_project: 'Retour au projet',

  page_by_page_summary:
    'Créer un PDF imprimable ou une page web à mettre en ligne.',
  page_by_page_instructions: `Cette recette permet de créer un document avec un format précis et plusieurs pages.<br> Médias acceptés : images, vidéos, sons et textes.<br>Créera un PDF imprimable (pour faire des affiches, tracts, journaux, etc.) ou une page web à mettre en ligne.`,
  video_assemblage_summary:
    'Créer un montage vidéo à partir d’images et de vidéos.',
  video_assemblage_instructions: `Cette recette propose de créer un montage vidéo en mettant plusieurs vidéos ou images bout à bout.<br> Médias acceptés : des vidéos et des images.<br>Créera une nouvelle vidéo.`,
  stopmotion_animation_summary:
    'Assembler des images pour créer une vidéo.',
  stopmotion_animation_instructions: `Cette recette permet l’assemblage d’un nombre illimité d’images pour créer une séquence vidéo dans laquelle elles défilent à une vitesse réglable.<br> Médias acceptés : uniquement des images. Les dimensions de la première image détermine si la vidéo finale est en portrait ou paysage.<br>Créera une nouvelle vidéo.`,
  mix_audio_and_video_summary: 'Ajouter ou remplacer du son sur une vidéo.',
  mix_audio_and_video_instructions: `Cette recette prend une vidéo et une piste audio. Elle ajoute ou remplace la bande sonore de la vidéo avec celle qui est sélectionnée.<br> Médias acceptés : une vidéo et une piste sonore.<br>Créera une nouvelle vidéo de la durée du plus long média.`,
  mix_audio_and_image_summary: 'Ajouter du son sur une image.',
  mix_audio_and_image_instructions: `Cette recette prend une image et une piste audio. Elle permet de créer des <i>images parlantes</i>.<br> Médias acceptés : une image et une piste sonore.<br>Créera une vidéo de la durée de la piste sonore.`,
  carreau_summary:
    'Empiler des médias pour créer en temps réel des présentations.',
  carreau_instructions: `Cette recette permet de collaborer à plusieurs sur la même surface pour présenter des médias de différent type. Ouvrez une nouvelle fenêtre vers cette recette en plein écran sur un projecteur pour afficher uniquement la surface.<br> Médias acceptés : images, vidéos, sons.`,

  last_modified: 'Dernière modification',
  remote_access: 'Accès depuis d’autres appareils',
  img_per_second: 'Images par seconde',
  sent: 'Envoyé',
  disable: 'Désactiver',
  previous_media: 'Média précédent',
  next_media: 'Média suivant',
  minimize_media: 'Utiliser comme référence',
  remember_project_password_for_this_device:
    'Se souvenir du mot de passe pour cet appareil',

  notifications: {
    ios_not_compatible_with_capture:
      'Les iPhones et les iPads ne sont pas compatibles avec la fonctionnalité de Capture.',
    instead_import_with_this_button:
      'Utilisez plutôt la fonctionnalité d’import ci-dessus pour prendre des photos et des vidéos ou en importer depuis votre appareil.',
    media_was_sent: 'Le média a été enregistré.',
    media_couldnt_be_sent:
      'Le média n’a pas pu être enregistré à cause d’une erreur de connexion.',
    file_was_sent: 'Le fichier a été enregistré.',
    file_upload_not_allowed:
      'Votre navigateur web ne prend pas en charge l’envoi de fichiers.',
    connection_active: 'La connexion au serveur est active.',
    connection_lost: 'La connexion au serveur a été perdue.',
    contents_wont_be_editable:
      'Les modifications et ajouts ne seront plus pris en compte.',
    connection_error: 'La connexion au serveur n’a pu se faire.',
    media_has_been_added_successfully: 'Le média a bien été transféré',
    wrong_password_for_dodoc:
      'Le mot de passe envoyé n’est pas valide. Veuillez réessayer.',
    loading_dodoc: 'Chargement de do•doc en cours…',
    'wrong_password_for_folder:':
      'Le mot de passe n’est pas le bon pour le dossier&nbsp;:',
    'created_edited_media:':
      'Création ou édition d’un média pour le dossier&nbsp;:',
    project_name_exists:
      'Ce nom de projet existe déjà, utilisez-en un autre.',
    publi_name_exists:
      'Ce nom de publication existe déjà, utilisez-en un autre.',
    author_name_exists:
      'Ce nom d’auteur existe déjà, utilisez-en un autre.',
    folder_name_needs_alphanumeric_characters:
      'Les noms de dossier doivent contenir au moins un caractère alphanumérique.',
    'failed_to_get_folder:': 'Le dossier suivant n’a pas été trouvé:',
    failed_to_start_video_change_source_or_res:
      'Le flux vidéo n’a pas pu être démarré.<br>Essayez de modifier la source ou la résolution dans les réglages.',
    video_source_not_set: 'La source vidéo n’a pas été trouvée.',
    failed_to_start_audio_change_source:
      'Le flux audio n’a pas pu être démarré.<br>Essayez de modifier la source dans les réglages.',
    audio_source_not_set: 'La source audio n’a pas été trouvée.',
    video_stream_not_available:
      'Erreur : le flux vidéo n’est pas disponible.',
    no_content_found_with_nfc_tag:
      'Scan d’un tag NFC réussi, associez-lui un auteur ou un média pour commencer.',
    author_found_with_nfc_tag:
      'Scan d’un tag NFC réussi, activation de l’auteur suivant&nbsp;:',
    medias_uploaded: 'Tous les médias ont bien étés enregistrés.',
    medias_upload_failed:
      'Erreur&nbsp;: certains médias n’ont pas pu être enregistrés.',
    video_converted: 'La vidéo a été convertie et ajoutée au projet.',
    project_has_been_removed:
      'Ce projet vient d’être supprimé par quelqu’un d’autre.',
    wrong_password_for: 'Mot de passe erroné pour ',
    creating_video: 'En cours de création de la vidéo…',
    preparing_video_from_montage: 'Préparation des vidéos du montage',
    finished_creating_recipe:
      'La recette est terminée et peut être consultée !',
    media_copied_successfully:
      'La copie du média a été réalisée avec succès.',
    creation_in_progress: 'En cours de création…',
    connected_to_dodoc: 'Connection à do•doc active',
    using_saved_password:
      'Connection à do•doc en utilisant le mot de passe enregistré',
    pdf_created: 'Le PDF a été créé',
    video_created: 'La vidéo a été créée',
    video_creation_failed: 'La vidéo n’a pas pu être créée',
    project_copy_in_progress: 'Copie du projet en cours…',
    project_copy_completed: 'Copie terminée',
    password_added_or_changed_to_this_project:
      'Le mot de passe de ce projet a été ajouté ou modifié.',
    enter_password_to_reopen_project:
      'Entrez le nouveau mot de passe pour accéder à nouveau à'
  }
},

Donc il « suffit » de traduire tout ça sous ce format là.
Le code de langue (d’après https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ) est « nl ».
Votre mission si vous l’acceptez est de m’envoyer un fichier (ou un bloc texte sur ce forum) qui comment par :

nl: {
  ascending: '…',
  descending: '…',
  …
}

etc.

Pour info il y a également une personne qui nous a contacté par mail pour réaliser une traduction en portugais brésilien :slight_smile: