2009-10-14 12 views
0

J'utilise le comportement Traduire.CakePHP: Sauvegarder une traduction enregistre le champ traduit dans le tableau d'origine, pourquoi?

Voici le scénario: J'enregistre une traduction sur le modèle 'Contenu' avec la langue japonaise .

Puis je vérifie la table 'contenu' correspondante dans ma base de données et je vois que mes champs 'title' et 'body' sont remplacés par les entrées traduites (en japonais). Mon contenu anglais (et japonais) est enregistré dans la table content_i18ns.

Tout dans mes vues est toujours en anglais, donc tout va bien. Je suis juste concerné pourquoi ma table de «contenu» est mise à jour avec l'entrée traduite. Il est juste effrayant que cela pourrait causer des erreurs dans le futur.

Est-ce correct? Est-ce que je fais quelque chose de mal ou est-ce un comportement normal avec CakePHP?

Merci d'avance!

Répondre

1

Il est normal.

Tout ce que vous enregistrez sera enregistré dans la table des matières dans la langue que vous utilisez actuellement sur la page. + il sera enregistré dans la table i18n. Cela ne causera aucun problème, vous ne perdrez pas de données, et si vous utilisez le comportement Traduire selon le livre (cook), vos pages seront récupérées dans la bonne langue (puisque les résultats seront récupérés) faire une jointure du contenu des tables et de i18n (ou du tableau personnalisé que vous avez défini) et les champs de données seront mis à jour en fonction de la langue que vous avez définie).

+0

wow merci pour le temps de répondre à ma question. Je suis soulagé que quelqu'un d'autre pense que c'est correct :) – user133127

+0

La raison étant que Translate est simplement un comportement qui ajoute la fonctionnalité de traduction, mais il ne bloque pas/empêche le modèle d'enregistrer/mettre à jour ses données à la table principale. –

1

Drop 'titre' champs et 'corps' de votre table 'contents' :)

+0

Est-ce une bonne solution? Je pense à ce que CakePHP ne mette pas à jour le tableau 'Contenu' avec la dernière entrée traduite. – user133127

+0

C'est en fait la bonne chose à faire, il est dit ici: http://book.cakephp.org/view/1331/Defining-the-Fields – Smickie

Questions connexes