2010-01-05 2 views
4

L'idée est d'avoir un système de marquage entre les utilisateurs et le contenu (images, vidéos, messages) Un peu comme le système de marquage ici sur SO avec des questions.Marquage du système de contenu - avec i18n

J'aime le système de réalisations sur SO, ce qui signifie qu'après un certain nombre de points un utilisateur peut commencer à faire ses propres étiquettes. Même idée pour mon système

Ma conception actuelle de la table ressemble

Tag   UserTag  User 
---   -------  ---- 
tag_id  user_id  user_id 
tag_name  tag_id  username 
usage_count     .... 

Il me amène à cette question.

Q Comment pouvez-vous avoir un système de balisage pour le contenu dans différentes langues.

  • Pourtant, en même temps, être en mesure de rechercher le même contenu avec des balises dans différentes langues.
  • Avez autocomplete avec des langues différentes pour le même tag

Quand je autocomplétion je recherche les noms de balises comme les caractères que l'utilisateur est en train de taper.

E.g. J'ai une balise nommée « boîte de nuit » en anglais

encore en français si elles balisiez que la traduction serait « discothèque »


Ou est-il pas moyen de le faire, et juste laisser les gens faire tags dans différentes langues.

Répondre

2

Oui, vous pouvez. Mais sachez que certains mots dans une langue peuvent avoir plusieurs traductions dans d'autres.

Vous avez sans doute une table languages, une table tags avec seulement tag_id, et plusieurs à plusieurs table avec language_id, tag_id, tag_name.

Comme je l'ai dit précédemment, vous pouvez rencontrer des problèmes lorsque les gens veulent faire des améliorations que leur propre langage permet, mais pas d'autres langues. Pour rester dans l'exemple français, en parlant de pain, vous pouvez avoir des étiquettes 'baguette', 'flûte', 'recuit', 'demi-recuit', etc., alors que l'anglais aurait simplement une étiquette 'pain'. La mise en correspondance entre les tags est alors compliquée de manière significative. mais c'est un problème de traduction général, pas seulement dans le domaine de la programmation.


En ce qui concerne votre commentaire: un compromis serait d'ajouter une table « tag_related_to_tag », ce qui permet de faire des raccords entre les balises. Les utilisateurs peuvent savoir quelle étiquette est liée à quel autre dans une langue différente. Cela permettrait une flexibilité maximale avec un minimum de complexité, mais aurait besoin d'une certaine administration (sinon vous pourriez avoir des utilisateurs maléfiques qui font des relations très inattendues entre les balises, brisant l'utilité du système).

C'est quelque chose que je pensais réellement mettre en œuvre pour un site Web qui a un champ très étroit (philosophie stoïcienne) et public cible. Si le champ est trop large, il pourrait être très inefficace.

+0

Je vois d'où vous venez, il semble apporter plus de problèmes qu'il ne résout, donc cela vaudrait la peine de mettre en œuvre un système, ou simplement laisser les utilisateurs les faire dans leur langue maternelle. Cela signifie avoir 2 ou 3 jeux d'étiquettes dans différentes langues depuis le début. De plus, tous les liens entre les balises deviendraient très complexes lorsque les utilisateurs commenceraient à ajouter leurs propres balises. – Daxon

1

Question intéressante!Juste quelques réflexions (pas une solution complète, c'est plus un ensemble de questions):

Une approche simple est d'avoir un ID tag interne et pour chaque langue un nom localisé.

Si aucun nom localisé a été créé encore, vous devrez peut-être retomber au nom de l'étiquette dans une langue « primaire » - en général l'anglais -. Ou la langue de la balise a été créée en

traduction doit être fait Par un utilisateur qui connaît les deux langues, les traductions automatiques sont imprécises. Alors probablement un utilisateur droit (lié à des récompenses?) Pour renommer les tags.

Toutes les langues sont-elles identiques ou les balises sont-elles créées uniquement dans une "langue principale" comprise par la plupart des utilisateurs et les traductions sont-elles ajoutées séparément? (Ce dernier aspect est moins juste, mais rendrait probablement certaines choses plus faciles)

Vous avez besoin d'une possibilité de fusionner des étiquettes - par ex. lorsque les utilisateurs créaient "discothèque" et "nightclub" de manière indépendante. Est-ce que je ne vois que les tags disponibles dans ma langue, ou est-ce que je peux voir les tags disponibles dans d'autres langues qui n'ont pas de traduction dans ma langue? Puis-je rechercher des tags dans d'autres langues? Le numéro est-il inclus dans une chaîne de requête? Est-ce que mon lien de recherche allemand fonctionne quand je l'envoie à un ami aux États-Unis? Comment résoudre les litiges concernant la signification de l'étiquette? Exemple: La traduction la plus proche de l'allemand est "Nachtclub" pour une boîte de nuit, et "Diskothek" pour "discothèque". Mais en allemand, un "Nachtclub" est assez différent d'un "Diskothek" (bien qu'il y ait un certain chevauchement).

+0

Vous avez ouvert un monde de douleur à l'avenir, et il semble que la traduction/récompenses est une excellente idée, mais serait Toutes les langues et les utilisateurs pouvant créer des tags sont égaux, Je pense que n'importe qui serait en mesure de taper ou d'utiliser n'importe quelle balise de n'importe quelle langue car c'est juste des caractères de clavier demandés avec un "like". La fusion de tags serait très difficile à l'avenir si je n'y pensais pas maintenant, mais ne perdrais-je pas plus de temps sur la complexité des tags au lieu de faire fonctionner tout le système. – Daxon

+0

Je ne pense pas que "n'importe quel nom de tag" soit une bonne idée dans une interface vraiment globale. Un "chef" allemand vous crie, un "chef" anglais se tient dans la cuisine. Une «banque» allemande doit porter votre argent à * OU * pour s'asseoir - essayez cela en anglais. Un «cadeau» anglais pourrait vous rendre heureux, un «cadeau» allemand vous tuerait. Et ce n'est que deux sur des centaines de langues et une minute de recherche sur mon cerveau. – peterchen

+0

Encore une fois vous avez soulevé un point valide, Mais délicieux permettent un système de marquage global. Et un grand papier sur le sujet https://lirias.kuleuven.be/bitstream/123456789/158652/1/paper02.pdf – Daxon