Laravel de Localisation pour les grands sites web
Est là probablement une meilleure façon de stocker de grandes quantités de texte pour la localisation dans laravel? Il serait facile si l'ensemble de ma page était juste pur texte, mais plusieurs de mes pages ont des mises en page complexes, et je dois ajouter plusieurs chaînes de caractères pour le texte à la ligne autour du contenu tel que des images/liens/media.
C'est une douleur si jamais j'ai besoin pour le mettre en italique/gras ou de faire toute sorte de HTML pour le texte ainsi que j'ai besoin de les diviser en sections afin d'être en mesure de le faire.
Un exemple de ce que je suis en utilisant:
return array(
'exchange_rate' => array(
'title' => 'Exchange Rate',
'p1' => 'Disclaimer',
'p2' => 'Currency rate displayed is subject to change.',
'p3' => 'View All Rates to Date'
),
Le premier tableau est la page, le second est le contenu de la page. Je dois souvent aller de plusieurs baies profondes pour plus de modèles complexes tels que:
return array(
'exchange_rate' => array(
'title' => 'Exchange Rate',
'p1' => 'Disclaimer',
'p2' => 'Currency rate displayed is subject to change.',
'p3' => 'View All Rates to Date',
'table1' => array(
'title' => 'Currency Table',
'row1' => array(
'l1' => 'Current Rate'
),
'row2' => array('etc')
)
);
Je fais ce droit? Est-il une meilleure façon de mettre en forme mes fichiers de langue pour que je puisse travailler autour de la mise en page de mon point de vue? Je suis juste curieux de voir comment de grands sites web de gérer la localisation.
Toute aide est grandement appréciée, merci!!
EDIT: je suis aussi conscient que vous pouvez ajouter des espaces réservés à l'intérieur de votre localisation tableaux tels que:
'title' => ':title'
Mais l'ajout de placer les titulaires de tous mes liens, des images, et des médias sur une page peuvent être très salissant. Laravel ne supporte pas le HTML à l'intérieur de la langue tableaux donc je ne peux pas juste plop de contenu dans les fichiers de langue. - Oui, il ne
Comme il est maintenant, il semble y avoir deux façons d'aller ici.
- Continuer de les briser en petites sections pour formater le texte différemment.
- Coller le texte de la page dans un "contenu" tableau par page, utilisez Waavi pour les transférer dans la base de données, puis les formater correctement à l'aide d'un éditeur WYSIWYG sur le site lui-même pour le format de la base de données d'entrée. (Même si cela a des problèmes parce que vous ne pouvez pas utiliser la lame de template comme Lang::get() retourne seulement la sécurité de texte)
MODIFIER (10 Fév 2015):
Après beaucoup de recherche, j'ai créé un paquet qui convient à mes besoins. Il supprime complètement la nécessité pour n'importe quel texte les tableaux dans laravel. Il va automatiquement ajouter du texte à la base de données et de les traduire à votre jeu de paramètres régionaux. De Plus, vous n'avez pas besoin de gérer et de déchiffrer dot-notée traduction chemins.
https://github.com/stevebauman/translation
OriginalL'auteur Steve Bauman | 2014-01-24
Vous devez vous connecter pour publier un commentaire.
J'ai écrit un paquet de générer lang fichiers pour vous. Écrire vos templates, contrôleurs, ... sans ennuyer avec les traductions. Lorsque vous avez terminé de code, il suffit d'exécuter
php artisan localisation:missing
et il va générer tous les fichiers nécessaires dans votrelang/*/
répertoires.Il permettra de synchroniser les traductions :
Le package est disponible ici : https://github.com/potsky/laravel-localization-helpers
Dans l'utilisation quotidienne, c'est le même processus que les fichiers po. Permettez-moi de savoir si votre vie est plus facile maintenant avec des traductions dans Laravel génial !
OriginalL'auteur Potsky
Vous pouvez toujours utiliser un Package appelé Waavi traduction
OriginalL'auteur
Je ne pense pas qu'il y est une solution idéale, cela dépend de la taille du projet. Peut-être juste avoir des points de vue différents pour chaque langue, puis Vue de l'appel::faire de manière dynamique à quelque chose comme ceci:
Je suis complètement d'accord trizz, c'est exactement pourquoi je ne veux pas avoir plusieurs points de vue pour les différentes langues. Il se casse la méthode que laravel est d'aller pour. Je préfère avoir un fichier de mise en page et gérer les traductions du texte pur.
Je pense toujours que le mécanisme de l'avoir de gros blocs de texte en tant que distincte de la langue partiels peut être composite dans une page finale de rendu est une tactique utile pour l'OP.
OriginalL'auteur Andreas
Bien que l'auteur a créé son propre forfait pour la traduction, je voudrais en ajouter un autre:
laravel-gettext
Venant de CakePHP monde où la traduction est gérée avec .les fichiers po dans mon laravel projets je voudrais utiliser l'extension ci-dessus, parce que:
L'extension n'est pas le mien, et je ne l'ai pas utilisé jusqu'à présent, mais je le ferai dans un premier événement.
OriginalL'auteur Nik Chankov
Bien,
De grands sites internet probablement utiliser une sorte de CMS pour permettre l'édition des textes pour les différentes langues.
Je ne suis pas sûr de Laravel en particulier, mais vous voulez que l'utilisateur puisse modifier les textes. Il n'y a pas tellement de solutions pour cela vous aurez besoin:
Le format le plus courant pour ce qui est .po fichiers, certains logiciels vous permettent même d'importer /exporter des fichiers contenant des tableaux PHP directement. Cela ne fonctionnera pas avec votre format, parce que vos fichiers sont un tableau multi-dimensionnel.
Si vous allez de cette façon, cette PHP PoParser classe qui peut à la fois lire et écrire .les fichiers po.
Ya, profitez de la vue modifiable à l'aide de Démarque ou de base Wysiwyg et vous êtes tout à fait obtenir un CMS.
Je pouvais le faire, et c'est une option pour vous, mais alors il ya une chance que la page aura un aspect différent sur l'anglais et le français côté quand il y a deux points de vue différents édité en WYSIWYG. Je suis juste coincé sur la voie à suivre ici.
OriginalL'auteur Savageman