2011-10-01 1 views
1

Je voudrais traduire les chaînes du format suivant:Comment gérer la liste de longueur indéfinie avec gettext?

Supprimer les fichiers toto, et tata titi.

La première idée était d'utiliser Delete files %s mais j'ai alors pensé à des formes plurielles.

Que se passe-t-il si une langue ne met pas 'et' à la fin mais, par exemple, deux mots différents pour le dernier élément et celui qui le précède.

Voici donc deux questions:

  • connaissez-vous une langue comme ça?
  • Connaissez-vous une meilleure façon de gérer ce cas?
+0

Il peut même y avoir plusieurs formes plurielles: http://code.google.com/webtoolkit/doc/latest/DevGuideI18nPluralForms.html – nos

+0

Merci, je savais qu'il peut y avoir plusieurs formes plurielles et que ce qui m'a fait penser qu'il pourrait y avoir être un format de liste différent. De toute façon grâce à votre lien je sais maintenant que gwt nativement la liste de soutien. Mais ils ne parlent pas de langues qui pourraient fonctionner différemment de l'anglais. – needle

Répondre

2

Ceci est plus compliqué.

En fait, il semble que vous ayez seulement à choisir entre le singulier et le pluriel (bien que les langues puissent avoir plusieurs formes plurielles). Donc, fondamentalement Do you want to delete this file: %s? ou Do you want to delete these files: %s?. Je ne peux pas dire pour toutes les langues mais ce serait OK en polonais.
Cependant, si vous voulez mettre la quantité (ce qui est plutôt une bonne idée), vous finiriez avec plusieurs formes plurielles: Do you want to delete this file: %s (Czy chcesz usunąć ten plik: {0}? une fois traduit) ou Do you want to translate these %n files: %s traduit soit comme Czy chcesz usunąć te %n pliki: %s? ou Czy chcesz usunąć tych %n plików: %s?.

En ce qui concerne les listes, CLDR charts pourrait être une bonne source d'information sur la façon de les gérer - chercher listPattern. Ci-dessous je présente un fragment de graphiques polonais:

enter image description here

{0} et {1} sont des espaces réservés, la liste que vous avez fourni ressemblerait à ceci: toto; tata i titi. Je ne suis pas encore tout à fait sûr que c'est ce qu'il devrait aimer (en polonais je suis plus enclin à toto, tata i titi) mais en théorie vous pouvez utiliser cette information pour créer une liste. Dans une autre réponse, j'ai prétendu qu'il est réellement impossible de créer de telles listes dans le cas général (indépendamment de la langue) et les gens ont tendance à utiliser les contrôles de liste pour la sélection ou présenter les données comme liste verticale pour éviter les problèmes. Votre exemple aurait besoin d'être modifié pour:

These file(s) would be deleted: 
toto 
tata 
titi 
Are you sure? 

Cela pourrait être problématique (elle ne rentrera pas dans l'écran), mais c'est ce que les gens font souvent pour éviter des problèmes avec des listes en langues étrangères.

+1

Merci pour cette réponse complète. CLDR est une bonne réponse au premier point de ma question. Le fait que l'affichage de la liste soit utilisé à la place de la liste est une bonne réponse à mon deuxième point. – needle

+0

Vous pouvez extraire des données CLDR (XML) plutôt que d'utiliser simplement les graphiques.Si vous êtes en C ou Java, ICU a accès à ces données CLDR et a/aura bientôt un formateur de liste utilisant ces données. –

Questions connexes