Optimisation : traduction en BDD ou fichier strings

muqaddarmuqaddar Administrateur
mars 2011 modifié dans Objective-C, Swift, C, C++ #1
Salut,

Je me pose cette question.
Imaginons une application en 5 langues. Cette application utilise une BDD locale.

Vaut-il mieux traduire des records directement dans la base de données (en créant un champ fr, en, it...) ou bien ne mettre qu'un champ name dans la BDD qui contient la clé de traduction et traduire dans l'application avec un NSLocalizedString directement sur la clé provenant de la BDD ?

- L'avantage de la BDD :
=> on peut faire des tris directement sur la requête (comme ORDER BY name_it par exemple)

- L'avantage du fichier strings :
=> on peut avoir 1 seul fichier string à  communiquer aux traducteurs, et c'est plus maléable que d'aller éditer des termes dans une BDD.

Après, niveau perfs, je ne sais pas trop... mais je ne pense pas que ça ait une grande incidence dans l'application de toute façon.


Réponses

  • LexxisLexxis Membre
    20:42 modifié #2
    Ma question va paraà®tre stupide mais bon... Tu parles de la localisation de l'interface ? ou des données utilisés par l'application ?
  • muqaddarmuqaddar Administrateur
    20:42 modifié #3
    Je parle de la localisation de données, pas de l'interface. ;)
  • LexxisLexxis Membre
    20:42 modifié #4
    Dans ce cas (perso) la BDD me paraà®t le choix le plus évident. Surtout si tu as une grosse quantité de données. La BDD te permettra de retrouver plus rapidement tes données grâce a son système de cache et d'index (encore faut-il trouver les bon pour qu'il soit utiliser par le moteur). Chose que n'a certainement par la gestion des fichiers de localisation.

    Après si c'est pour passer un fichier aux traducteurs je ne vois ou pourrait être le problème. Tu peux très bien leur donner un fichier texte contenant les données à  traduire (extraite de la BDD) et intégrer par la suite le résultat de leur travaux dans la BDD (même s'il faut créer un outil spécial si les données à  intégrer sont complexes).
  • muqaddarmuqaddar Administrateur
    20:42 modifié #5
    dans 1298979980:

    Dans ce cas (perso) la BDD me paraà®t le choix le plus évident. Surtout si tu as une grosse quantité de données. La BDD te permettra de retrouver plus rapidement tes données grâce a son système de cache et d'index (encore faut-il trouver les bon pour qu'il soit utiliser par le moteur). Chose que n'a certainement par la gestion des fichiers de localisation.


    Justement ce sont des tables qui ont à  peine une dizaine d'enregistrements... Donc, pour le coup, c'est pas trop une question de performance. C'est plus une question de pratique.

    Après si c'est pour passer un fichier aux traducteurs je ne vois ou pourrait être le problème. Tu peux très bien leur donner un fichier texte contenant les données à  traduire (extraite de la BDD) et intégrer par la suite le résultat de leur travaux dans la BDD (même s'il faut créer un outil spécial si les données à  intégrer sont complexes).


    Bein justement, le cas de la base de données fait faire du travail manuel en plus. ;) (même si on peut mettre tout ça dans des requêtes pour remplir la BDD)
  • LexxisLexxis Membre
    20:42 modifié #6
    dans 1298982531:

    Justement ce sont des tables qui ont à  peine une dizaine d'enregistrements... Donc, pour le coup, c'est pas trop une question de performance. C'est plus une question de pratique.


    Ha ben du coup... c'est sur qu'un BDD pour une dizaine d'enreg c'est un peu lourd... après tout dépend des évolutions prévues pour ton application.
  • muqaddarmuqaddar Administrateur
    20:42 modifié #7
    J'ai une quinzaine de tables de ce type, mais elles ne devraient pas évoluer à  la différence d'autres.
Connectez-vous ou Inscrivez-vous pour répondre.