web-dev-qa-db-fra.com

Rendre un champ configurable traduisible

Je travaille actuellement sur un thème qui donne à l'administrateur la possibilité de définir différents textes utilisés dans le thème, en les configurant dans le panneau d'administration (par exemple, le texte affiché lorsqu'une erreur 404 se produit).

Je veux rendre ces champs de configuration traduisibles. Quelle est la meilleure façon de le faire ou que dois-je prendre en compte pour le faire?

Merci et salutations,
René

3
René Schubert

Ce que j'ai vu dans les plugins de traduction (qTranslate, WPML, Multilingual Press) sont deux approches.


On est (et le xLangu défunt) de qTranslate: utilisez un champ (un pour titre, autre pour le contenu, etc) pour contenir toutes les traductions. Et puis, au début, décodez sa sortie en fonction de la langue.

<!--en-->English<--:--><!--es-->Español<--:-->

En bout de ligne, le plugin décode/code cela dans différents champs de saisie. Ils se comportent comme des entités distinctes mais sont une seule dans la base de données. Si nécessaire, la notation [:en]English[:es]Español peut être appliquée directement par l'utilisateur.

Je le mentionne pour des raisons de documentation, mais cette approche est compliquée, problématique et le destin du plugin est imminent.


Et puis, WPML et MultilingualPress : utilisez différents champs, publications, sites pour chaque langue et reliez-les.

Dans un page d'options thème/plugin, cela signifierait deux champs: page_404_en et page_404_es.

Capture de l'idée d'interface qTrans pour the_content:
créer des onglets d’affichage CSS/jQuery, English|Español et montrer un champ dans chacun.

Dans l’interface, détectez la langue et affichez le champ correspondant:

$language = get_cookie_language(); // fake function
$the_text = get_option( 'page_404_' . $language );
2
brasofilo