12
votes

meilleure pratique (s) pour le mot singulier ou les mots pluriels?

Il s'agit des meilleures pratiques en général, non spécifiques pour une seule langue, une base de données ou quelque que ce soit

Nous devons tous faire face à une sortie générée où vous pouvez signaler "un produit" ou "deux produits". Ne lit pas très bien ... certains résolvent simplement cela en utilisant "un produit (s)" ou "nombre de produits: (1)" et d'autres pourraient avoir d'autres solutions.

Les choses pourraient être encore plus complexes dans différentes langues parlées! En français, lorsque vous avez zéro produit, vous utiliseriez la forme singulière, pas la forme plurielle! (Zéro produit) Autres langues (Chinois, Japonais) Pourraient même manquer ces différences grammaticales ou avoir plus de deux mots différents pour indiquer quelque chose sur le nombre de produits. (Un pluriel et un plus grand pluriel, par exemple.)

Mais pour garder cette simple, concentrez-vous sur les langues qui ont des mots singuliers et pluriels.

Lors de la mise en place d'un nouveau projet, qui doit également générer des rapports, comment gérez-vous des mots singuliers et pluriels? Ajoutez-vous deux champs de noms dans votre base de données pour une forme singulière et plurielle? Ajoutez-vous des règles supplémentaires dans le code pour transformer des mots du singulier au pluriel? Utilisez-vous d'autres astuces?

Lorsque vous travaillez sur un projet qui doit suivre des formes singulières et plurielles, comment gérez-vous cela?


2 commentaires

IIRC arabe a des formes spéciales pour singulier, double, puis seulement (plus?) Pluriel! : S


Il y a beaucoup de formes plurielles très différentes dans les différentes langues. Voir: Unicode.org/repos/cldr-tmp/trunk/ Diff / Supplément / ...


7 Réponses :


0
votes
Number of products:  1 
Number of products:  4
Number of products:  FILE_NOT_FOUND
Trying to use natural language for reporting quantitative data is just too much of a hassle.

9 commentaires

Ouais je sais. :-) Il suffit de m'y humoriser et de penser à cela comme une exigence importante dans le moteur de rapport du produit que vous travaillez.


Et depuis quand être trop d'un tracas a arrêté l'humanité?


Awww ... Maintenant, je ne peux pas m'empêcher de me demander la forme plurielle de "humanité" ... "humanité" peut-être? ;-)


Je pense que oui, mais cela soulève la question de savoir ce que vous êtes censé faire lorsqu'il est confronté à la nécessité d'utiliser du pluriel pour le vrai canulare tantum, comme poussière ou la richesse ; -) D'autre part, si vous voulez vendre de la poussière ou des ciseaux, vous l'aurez probablement accompagné d'unités comme carat de poussière (sons prometteurs :)) ou paire de ciseaux.


Fait intéressant, un ciseau est censé être juste une seule lame d'une paire de ciseaux. Techniquement, vous pouvez appeler deux ciseaux un quart de ciseaux ... :-) À une époque où les ciseaux étaient faits à la main, il serait toujours pratique d'utiliser le mot singulier. L'industrialisation moderne vient de faire de la forme singulière obsolète. :-)


@Workshop Alex: Vous faites mon point que je me fais dire. C'est une gigantesque canette de vers juste pour l'anglais, et si vous lancez dans d'autres langues, ce sera gigantesque des canettes de vers (comment pour vous pour vous?).


Ne ciseaus pas ciseaux jusqu'à ce que les ciseaux vous cisent!


@hacker: ciseaux? Je suis à peine savoir elle!


MUSIGENISÉE ;-)))) Plus la raison n'est pas une raison de ciseaux!



-4
votes

avec des applications anglaises, elle est généralement la plus simple et la plus efficace de stocker le singulier et de créer le pluriel en utilisant un groupe de déclarations si.

if( count > 1 ){
   suffix = 's';
}


0 commentaires

1
votes

Normalement, j'enverrais mon texte via une sorte de formateur, qui reformate les valeurs que vous souhaitez afficher dans un texte lisible humain. Cela pourrait également modifier votre texte "produit". Java a la classe MessageFormat pour cela, qui prend en charge de telles modifications. Voir les exemples à [1].

[1] http: // Java.sun.com/j2se/1.5.0/docs/aPi/java/text/MessageFormat.html


0 commentaires

10
votes

Je recommanderais de jeter un coup d'œil à gettext en général et ngetext en particulier. Peut-être même si vous n'allez pas traduire votre candidature. Tête juste à Cette partie de la documentation . Il a la mise en œuvre pour plus ou moins toutes les langues et même si votre langue de choix manque de ce soutien, rien ne vous empêche d'emprunter les idées.


3 commentaires

Mais que diriez-vous des noms de produits stockés dans une base de données?


La même chose - stocker des paires singulières / plurielles. Et, en cas de traduction (ce qui n'est pas votre cas ou n'est-ce pas?) Vous devrez simplement vous assurer qu'ils sont soit mis en page .po Si vous utilisez GetText ou utilisez un algorithme similaire et stockez-le ailleurs (bien sûr cela ne fait pas de sens de mettre des milliers de produits dans le fichier .po).


Il suffit de réfléchir à un autre problème avec les noms de produits stockés par la base de données - il est assez facile de gérer une forme plurielle / singulière, mais lorsqu'il s'agit de traduction, il y aurait un problème avec des cas. Et essayer de s'en tenir à un nominatif peut se révéler presque aussi maladroit que «Nombre de produits: N '.



1
votes

lire et mettre en œuvre Ce ; Rapportez-vous lorsque vous avez terminé (dans quelques années). Personnellement, je suis satisfait de l'approche (s);) (Bien que ça va sans dire cela ne fonctionne pas pour toutes les langues).


2 commentaires

Eh bien, ce lien montre clairement la complexité des mots singuliers / pluriels. Montre également que le nombre de formes varie même d'une seule à 6 formes différentes! J'aime déjà ce site! :-)


Alex, ceci - TRALATE.SOURCEFORGE.net/WIKI/L10N/PLURALFORMES - On dirait ressource plus complète sur des formes plurielles pour différentes langues.



2
votes

dans Perl, cela est résolu de manière exhaustive par Lingua :: fr :: inflète . Il utilise un grand dictionnaire et gère soigneusement toutes les exceptions aux règles. Cela fait aussi des choses comme «A» ou «an» et gère également des comparaisons!

voir Le papier pour le gory Détails.


4 commentaires

Un problème avec cette référence est que ce n'est pas une langue-agnostique, peu importe que vous référez-vous comme langue ici ;-) L'autre problème est que le problème va au-delà de la forme plurielle du nom, il < I> est cette chose appelée la phrase entière (et là sont ces choses appelées des phrases entières).


@hacker: Vous avez tout à fait raison - ce module est spécifique en anglais. Mais il gère très bien cette langue.


@hacker: 'est' et 'sont' les problèmes de type sont traités correctement. E.g.: Imprimer infléchir "pl_adj (this) pl_n (erreur) PL_V (était) fatal. \ n" si $ gravité> 1;


ire_and_curses, agréable de savoir, je n'ai enfermé que brièvement le code. Mais seul l'anglais et seul le problème perl est toujours là. Une autre raison pour laquelle ce lien mérite d'être upvoting est que si la langue anglaise est utilisée comme référence pour la traduction, cet outil est utile pour deviner le nom du produit pluriel du singulier.



1
votes

juste une mise à jour, CLDR a maintenant des règles plurielles pour les langues et ICU a une implémentation.


0 commentaires