web-dev-qa-db-fra.com

Un moyen simple d'obtenir deux langues WP site

J'essaye de faire un site avec deux langues. Je cherchais une solution et n'ai pas trouvé de réponse simple. De plus, je préfère ne pas utiliser de plugins quand c'est possible.

Ce que j'essaie de faire:

1) Avoir un domain.com/en et domain.com/ru pendant que la redirection par défaut est à domain.com/en.

2) Un WP installation du moteur, même panneau d'administration avec la même langue - anglais.

3) Manière de styliser les choses (cela inclut le HTML aussi, pas seulement le CSS). C'est la partie la plus problématique du cours.

Je n'arrive pas à comprendre comment faire ça. Je sais qu'il est possible d'appeler différents en-têtes et pieds de page, mais je ne sais pas comment gérer cela efficacement avec un site bilingue. Je peux par exemple utiliser différentes catégories pour différentes langues, mais s'agit-il d'une bonne pratique et cela fonctionnera-t-il correctement?

1
piot3rs

Vous pouvez utiliser le code ci-dessous pour traduire les chaînes:

add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');

function translate_text($translated) { 
    $translated = str_ireplace('Choose an option', 'Select', $translated); 
    $translated = str_ireplace('Original Text', 'Your Replacment Text', $translated); 
return $translated; 
}

Mais je n'ai aucune idée de la traduction de contenus complexes. Je sais que vous ne voulez pas utiliser de plugins, mais en tant que recherche, nous devons écrire du code php très lourd comme plugin pour fonctionner. Je recommande WPGLOBUS , Il crée une icône pour chaque message ou champ de page tel que le titre, le contenu ou les catégories, etc., pendant que vous cliquez sur l'icône. pouvez entrer votre traduction pour un nombre illimité de langues que vous avez défini auparavant dans les paramètres, le plugin génère une adresse yoursite.com/ru sans générer ou besoin de toute nouvelle feuille de style, js ou pages ou de charger un fichier supplémentaire.

1
Irandoust

Voici un moyen simple (donc non exhaustif) de:

  1. Créez deux types de publication personnalisés, 'en' et 'ru'. Cela garantira que tous vos messages auront des URLs www.example.com/en/post-slug et www.example.com/ru/post-slug

  2. Créez des fichiers .po et .mo pour les deux langues (ou uniquement pour le russe si l'anglais est déjà la langue par défaut de votre thème)

  3. Dans votre functions.php, assurez-vous que le domaine de texte approprié est chargé à l'aide du filtre de paramètres régionaux en fonction du type de publication:

    add_filter( 'locale', 'wpse210218_set_locale' ); function wpse210218_set_locale ($lang) { if ( 'ru' == get_post_type() ) { return 'ru_RU'; } else { return 'en_EN'; } }

En ce qui concerne html et css, vous pouvez avoir différents modèles pour différents types de publication, ce qui permet de le résoudre facilement.

1
cjbj