web-dev-qa-db-fra.com

Comment faire traduire les étiquettes de champs personnalisés

Je veux faire traduire les étiquettes et les descriptions des champs personnalisés en néerlandais, mais peu importe ce que j'essaie, ils restent toujours en anglais (la langue que j'utilise pour les créer). J'espère que mes étapes ci-dessous ont du sens parce que je ne comprends pas pourquoi cela ne fonctionne pas.

Ce que je fais, c'est que je crée un champ (avec la langue du site définie sur l'anglais) dans un profil (à l'aide du module Profil 2) ou directement dans le compte.

Ensuite, je modifie le champ et utilise le bouton de traduction (fourni par Field translation dans i18n) pour ajouter une traduction néerlandaise. Mais si je change ensuite la langue du site en néerlandais, le libellé et la description du champ sont toujours en anglais.

Si je modifie à nouveau le champ (avec la langue du site toujours définie sur le néerlandais), l'onglet de traduction affiche maintenant la traduction néerlandaise avec le statut original et l'anglais comme "niet vertaald" ou non traduit. Si je modifie la traduction néerlandaise, je reçois la version anglaise.

Je peux changer cela à nouveau dans le texte néerlandais et cela s'affichera correctement (en néerlandais). Bien, mais quand je remets le site en anglais, le champ reste néerlandais! Lorsque je modifie le champ, l'onglet de traduction affiche le texte néerlandais en anglais, mais le statut de l'anglais est de retour à l'original.

Je ne peux pas en faire la tête ni la queue. Suis-je complètement absent ou est-ce peut-être un bug? J'utilise Drupal 7.

6
Whiskey

Vous ne devez pas changer la langue par défaut en néerlandais pour le tester, car il définit ensuite que vos noms de champs (et toutes les autres choses sur le site Web) sont en néerlandais.

Au lieu de cela, je suggère d'utiliser les options "Détection et sélection" et d'activer le navigateur ou l'utilisateur, puis de le tester dans un autre navigateur en néerlandais ou avec un autre utilisateur dont la langue est définie sur le néerlandais.

La meilleure façon et plus confortable serait d'utiliser le bloc Language Switcher, en activant l'URL ou la session sous les paramètres de détection et de sélection.

Ainsi, la langue par défaut du site Web reste l'anglais et les champs sont traduits si quelqu'un utilise le site Web en néerlandais.

6
Елин Й.

Ces derniers jours, j'ai eu le même problème pour traduire des étiquettes et des descriptions de coutume. voici ce que j'ai fait pour le résoudre.

  • Activer le sous-module i18_field "Field translation" d'i18n
  • Aller à admin/config/regional/translate/i18n_string
  • Cochez les "champs" (vérifiez tout correctement) et cliquez sur "Actualiser les chaînes".
  • Aller à admin/config/regional/translate/translate
  • Rechercher la chaîne souhaitée et la traduire dans une autre langue.
12
monymirza

J'imprime les étiquettes de champs traduites de cette façon (en utilisant i18n_field.module):

$instance = field_info_instance('node', $my_field_name, $my_node_type);
$my_translated_label = i18n_field_translate_property($instance, 'label');

J'espère que cela aide.

10
Jordan Austin

Je pense que vous auriez pu garder le néerlandais comme langue par défaut et définir l'anglais comme langue source dans admin/config/regional/i18n/strings.

1
Sylvain DELBOSC

la façon la plus simple de le faire est d'installer le module Localize field .

il fournit des traductions pour la chose suivante:

  • titre et description de tous les champs principaux, champs de date et champ
  • préfixe, suffixe et séparateur décimal des collections
  • étiquettes d'option des types de liste

vous pouvez l'utiliser même si vous avez installé i18n_field (traduction sur le terrain)

1
Anas Kh