web-dev-qa-db-fra.com

Comment déclencher le WPLANG de base pour faire définir automatiquement une langue lorsque le thème est activé?

Je développe un thème spécialement pour la publication de blogs sur Bānglā, qui serait sous licenceGNU. Je me suis interrogé au sujet d'une traduction de widget de calendrier avec quelques problèmes aujourd'hui et j'ai reçu un commentaire en disant:

Je me demande simplement si cela n'est pas couvert dans la traduction en bengali ?

Et après la réponse de s_ha_dum , je pensais pouvoir créer un thème prêt à être traduit. Ensuite, je peux traduire tous les textes nécessaires pour mon thème. J'ai suivi:

  1. Internationaliser et localiser votre thème WordPress
    - de Konstantinos Kouratoras - WP.SmashingMagazine.com
  2. Traduction de votre thème
    - de Robert Treacy - WP.TutsPlus.com

Et maintenant, j'ai créé un thème complet prêt à être traduit et il fonctionne lorsque je change de WPLANG en wp-config.php dans ma langue. Mais à part cette étape, tout est automatique. Donc, si cette étape peut être automatique, ce serait bien pour moi.

Je veux placer un filtre qui peut accrocher le WPLANG et écraser avec bn_BD comme:

define('WPLANG', 'bn_BD');

quand le thème est activé.

Pour que je puisse simplement dire: "Installez le thème et il fera tout pour vous. Vous n'avez pas besoin d'avoir accès à votre cPanel pour effectuer la modification dans le wp-config.php." J'ai lu le fil de discussion WPSE du changement de langue de déclenchement dans Wordpress , mais si vous me comprenez maintenant, je suis sur une autre piste.

Alors, est-ce possible?

1
Mayeenul Islam

Yap, a obtenu la réponse de Réponse de toscho à partir d'un thread WPSE. Je le cite simplement. En utilisant le filtre : Paramètres régionaux , raccordez votre fonction:

add_filter( 'locale', 'wpse_52419_toscho_change_language' );

function wpse_52419_toscho_change_language( $locale ) {
    return 'bn_BD';
}

Placez le code dans votre functions.php.

1
Mayeenul Islam

Il n'est pas possible de le faire exactement comme vous le demandez, car une fois que vous avez define() une constante en php, vous ne pouvez pas redéfinir/remplacer la valeur. Mais ce que vous essayez de faire n’est pas nécessaire, cette constante est définie dans le cadre de l’installation d’une wordress localisée; elle est donc déjà présente et définie correctement pour les utilisateurs qui exécutent wordress.

Il existe un cas Edge de personnes qui veulent des langues différentes pour leur administrateur et leur serveur, et ont besoin de la possibilité de remplacer les paramètres de langue, mais il existe des plugins/extraits de code pour elles, et vous, en tant qu'auteur du thème, ne vous inquiétez pas.

ce que vous essayez de faire empêchera votre thème d’être utilisé dans des sites autres que l’anglais et le Bangladesh. pourquoi voudriez-vous limiter cela de cette façon?.

1
Mark Kaplun